def __init__(self):
		self.tray = gtk.StatusIcon()

		#app = gnomeapplet.Applet()
		#g = GnoMenu(app,"")
		self.tray.connect("activate", self.ShowMenu)
		self.tray.connect("popup-menu", self.show_menu)
		self.menu = gtk.Menu()
		self.m = gtk.Menu()
		add_image_menuitem(self.menu, gtk.STOCK_PROPERTIES, _("Preferences"), self.properties)
		add_image_menuitem(self.menu, gtk.STOCK_ABOUT, _("About"), self.about_info)
		add_image_menuitem(self.menu, gtk.STOCK_EDIT, _("Edit Menus"), self.edit_menus)
		add_image_menuitem(self.menu, gtk.STOCK_QUIT, _("Quit"), self.end)

		self.tray.set_tooltip("GnoMenu")
		self.tray.set_visible(True)

		from Menu_Main import Main_Menu
		self.hwg = Main_Menu(self.HideMenu)
		import Globals as Globals
		self.Globals = Globals
		if Globals.Settings['Distributor_Logo']:
			import IconFactory as iconfactory
			self.iconfactory = iconfactory
			self.applet_button = self.iconfactory.GetSystemIcon('distributor-logo')
		else: self.applet_button = self.Globals.Applogo
		pixbuf = gtk.gdk.pixbuf_new_from_file(self.applet_button)
		self.tray.set_from_pixbuf(pixbuf)
		self.show = False
		gtk.main()		
Beispiel #2
0
					def searchfolder(folder,me):
						dirs = os.listdir(folder)
						dirs.sort(key=str.upper)
						for item in dirs:
							if not item.startswith('.'):
								if os.path.isdir(os.path.abspath(folder) + '/'+item):
									add_image_menuitem(me,gtk.STOCK_DIRECTORY, item,self.launch_item, 	'"'+os.path.abspath(folder.replace('file://','')) + '/'+item +'"')
								else:
									submenu_item = gtk.MenuItem(item, use_underline=False)
									me.append(submenu_item)
									# "activate" doesn't seem to work on sub menus
									# so "button-press-event" is used instead.
									submenu_item.connect("button-press-event", self.launch_item, 	'"'+os.path.abspath(folder) + '/'+item +'"')
									submenu_item.show()
Beispiel #3
0
	def rightmenushow(self,i):
                favlist = backend.load_setting("favorites")

                self.sm =  gtk.Menu()

		if i == 0:
                	add_image_menuitem(self.sm, gtk.STOCK_OPEN, _("Open"),self.openhome)
		else:
                	add_image_menuitem(self.sm, gtk.STOCK_OPEN, _("Open"),self.opendir,i)

		#add_image_menuitem(self.sm, gtk.STOCK_OPEN,_("properties"))
		#add_menuitem(self.sm, "-")
		#self.Launcher.Launch(Globals.MenuButtonCommands[i])
		self.sm.show_all()                 
		self.sm.popup(None, None, None, 0,0)
		gc.collect()
Beispiel #4
0
	def menushow(self,folder,m):

		for entry in self.menu.GetMenuEntries(folder):
			self.menus[str(entry)] = gtk.Menu()
			if isinstance(entry, self.menu.MenuInstance):		#Folder
				name,icon, path ,comment = self.menu.GetDirProps(entry)	
				
				item = add_image_menuitem(m, "", name)
				item.set_submenu(self.menus[str(entry)])
				item.connect('activate',self.activatemenu,entry)
				if icon == None: icon = gtk.STOCK_MISSING_IMAGE
				item.set_image_from_pixbuf(self.IconFactory.geticonfile(icon))
				item.set_tooltip_text(comment)
				#self.menushow(entry,self.menus[str(entry)])

			elif isinstance(entry, self.menu.EntryInstance):	#Application
				name,icon, execute ,comment = self.menu.GetEntryProps(entry)
				item = add_image_menuitem(m, "", name,self.launch,m,name,icon,execute)
				item.set_tooltip_text(comment)
				if icon == None: icon = gtk.STOCK_MISSING_IMAGE
				item.set_image_from_pixbuf(self.IconFactory.geticonfile(icon))


		gc.collect()
Beispiel #5
0
    def ButtonClick(self, index, event=0):
        """Callback when buttons are clicked"""
        # 0 Subfolder
        # 1 Application
        # 2 places, settings, back.
        # 3,4 Recents
        self.etype = self.L_Types[index]
        if event == 0:
            event_button = 1
        else:
            if event.type == gtk.gdk.KEY_PRESS:
                event_button = 1
            elif event.type == gtk.gdk.BUTTON_PRESS:
                event_button = event.button
            elif event.type == gtk.gdk.BUTTON_RELEASE:
                event_button = event.button
        if event_button == 1:
            if self.etype == 0:  # Subfolder
                self.PrevMenu.append(self.Menu)
                if self.menuparser.has_matemenu:
                    self.Menu = self.L_Paths[index]
                else:
                    self.Menu = self.BaseMenu.getMenu(self.L_Paths[index])
                self.ConstructMenu()
            elif self.etype == 1 or self.etype == 3 or self.etype == 4:  # Application
                self.Launcher.Launch(self.L_Execs[index], self.etype)
                self.Restart("previous")
                return 1
            elif self.etype == 2:  # Menu special buttons places, settings, back.
                if self.L_Names[index] == _("Back"):
                    try:
                        self.Menu = self.PrevMenu.pop()
                    except:
                        self.Menu = self.BaseMenu = self.menuparser.CacheApplications
                    if self.Menu == self.menuparser.CacheApplications:
                        self.BaseMenu = self.Menu
                    self.ConstructMenu()
                elif self.L_Names[index] == _("System"):
                    self.PrevMenu.append(self.Menu)
                    self.Restart("settings")
                elif self.L_Names[index] == _("Places"):
                    self.PrevMenu.append(self.Menu)
                    self.Restart("places")
            elif self.etype == 5 or self.etype == 6:  # Items in the menu have changed
                self.Launcher.Launch(self.L_Execs[index], self.etype)
            elif self.etype == 7:  # Properties of the menu have changed
                self.Launcher.Launch(self.L_Execs[index], self.etype)
                Globals.ReloadSettings()
            elif self.etype == 10:  # Clear Recent
                self.recent_manager.purge_items()
                self.Restart("previous")
        elif event_button == 3:
            self.m = gtk.Menu()
            name = self.L_Names[index]
            favlist = backend.load_setting("favorites")
            try:
                thismenu = add_image_menuitem(self.m, self.L_Icons_menu[index], name, self.dummy, "1")
            except:
                return
            if zg and self.allgio is not None:
                self.recent_files = None
                self.most_used_files = None
                for z in self.allgio:
                    if z.get_name() == name:
                        desk = z.get_id()
                        self.recent_files = zg.get_recent_for_app(desk, Globals.RI_numberofitems)
                        self.most_used_files = zg.get_most_used_for_app(desk, Globals.RI_numberofitems)
                        break
                if self.recent_files or self.most_used_files:
                    self.menuitem = add_menuitem(self.m, "-")
                for files, menu_name in (
                    (self.recent_files, _("Recently Used")),
                    (self.most_used_files, _("Most Used")),
                ):
                    if files:
                        self.submenu = gtk.Menu()
                        menu_item = gtk.MenuItem(menu_name)
                        menu_item.set_submenu(self.submenu)
                        self.m.append(menu_item)
                        menu_item.show()
                        for ev in files:
                            for subject in ev.get_subjects():
                                label = subject.text or subject.uri
                                submenu_item = gtk.MenuItem(label, use_underline=False)
                                self.submenu.append(submenu_item)
                                # "activate" doesn't seem to work on sub menus
                                # so "button-press-event" is used instead.
                                submenu_item.connect("button-press-event", self.launch_item, subject.uri)
                                submenu_item.show()
            if self.etype != 0 and name != _("Back"):
                if self.etype != 3:
                    self.menuitem = add_menuitem(self.m, "-")
                    self.menuitem = add_image_menuitem(
                        self.m,
                        gtk.STOCK_DIALOG_AUTHENTICATION,
                        _("Open as Administrator"),
                        self.runasadmin,
                        name,
                        self.L_Execs[index],
                        self.L_Icons_menu[index],
                        self.L_Types[index],
                    )
                else:

                    def searchfolder(folder, me):
                        dirs = os.listdir(folder)
                        dirs.sort(key=str.upper)
                        for item in dirs:
                            if not item.startswith("."):
                                if os.path.isdir(os.path.abspath(folder) + "/" + item):
                                    add_image_menuitem(
                                        me,
                                        gtk.STOCK_DIRECTORY,
                                        item,
                                        self.launch_item,
                                        '"' + os.path.abspath(folder.replace("file://", "")) + "/" + item + '"',
                                    )
                                else:
                                    submenu_item = gtk.MenuItem(item, use_underline=False)
                                    me.append(submenu_item)
                                    # "activate" doesn't seem to work on sub menus
                                    # so "button-press-event" is used instead.
                                    submenu_item.connect(
                                        "button-press-event",
                                        self.launch_item,
                                        '"' + os.path.abspath(folder) + "/" + item + '"',
                                    )
                                    submenu_item.show()

                    f = os.path.abspath(urllib.url2pathname(self.L_Execs[index]).replace("file://", ""))
                    if os.path.exists(f):
                        if os.path.isdir(f):
                            self.submenu = gtk.Menu()
                            thismenu.set_submenu(self.submenu)

                            searchfolder(f, self.submenu)
                        elif os.path.isfile(f):
                            if isgio:
                                add_menuitem(self.m, "-")
                                self.openwith = add_image_menuitem(self.m, gtk.STOCK_OPEN, _("Open with"))
                                Gfile = gio.File(f)
                                tuble = [Gfile, Gfile.query_info("standard::*"), []]
                                name = tuble[1].get_name()
                                # ff =  gio.file_parse_name(f)
                                apps = gio.app_info_get_all_for_type(tuble[1].get_content_type())
                                self.submenu = gtk.Menu()
                                self.openwith.set_submenu(self.submenu)
                                for app in apps:
                                    self.menuitem = add_menuitem(
                                        self.submenu,
                                        app.get_name(),
                                        self.custom_launch,
                                        "'" + f + "'",
                                        app.get_executable(),
                                    )

                    if name == _("Trash"):
                        self.menuitem = add_menuitem(self.m, "-")
                        self.menuitem = add_image_menuitem(self.m, gtk.STOCK_CLEAR, _("Empty Trash"), self.emptytrash)
                if (
                    "%s::%s::%s::%s" % (name, self.L_Execs[index], self.L_Icons_menu[index], str(self.L_Types[index]))
                    not in favlist
                ):
                    self.menuitem = add_menuitem(self.m, "-")
                    self.menuitem = add_image_menuitem(
                        self.m,
                        gtk.STOCK_ADD,
                        _("Add to Favorites"),
                        self.addfav,
                        name,
                        self.L_Execs[index],
                        self.L_Icons_menu[index],
                        self.L_Types[index],
                    )
                else:
                    self.menuitem = add_menuitem(self.m, "-")
                    self.menuitem = add_image_menuitem(
                        self.m,
                        gtk.STOCK_REMOVE,
                        _("Remove from Favorites"),
                        self.removefav,
                        name,
                        self.L_Execs[index],
                        self.L_Icons_menu[index],
                        self.L_Types[index],
                    )
                self.menuitem = add_menuitem(self.m, "-")
                self.menuitem = add_image_menuitem(
                    self.m,
                    gtk.STOCK_HOME,
                    _("Create Desktop Shortcut"),
                    self.addshort,
                    name,
                    self.L_Execs[index],
                    self.L_Icons_menu[index],
                    self.L_Types[index],
                )
                self.menuitem = add_menuitem(self.m, "-")
                if ("%s.desktop" % name) in os.listdir(Globals.AutoStartDirectory):
                    self.menuitem = add_image_menuitem(
                        self.m,
                        gtk.STOCK_REMOVE,
                        _("Remove from System Startup"),
                        self.remove_autostarter,
                        name,
                        self.L_Execs[index],
                        self.L_Icons_menu[index],
                        self.L_Types[index],
                    )
                else:
                    self.menuitem = add_image_menuitem(
                        self.m,
                        gtk.STOCK_ADD,
                        _("Add to System Startup"),
                        self.create_autostarter,
                        name,
                        self.L_Execs[index],
                        self.L_Icons_menu[index],
                        self.L_Types[index],
                    )
            self.m.show_all()
            self.m.popup(None, None, None, event.button, event.time)
            self.submenu = None
            self.menuitem = None
            gc.collect()
Beispiel #6
0
	def submenushow(self,parent,name,ico,exe):
		favlist = backend.load_setting("favorites")
		#try:
		#add_image_menuitem(menu,ico, name, None,'1')
		#except:return
		self.sm =  gtk.Menu()
		
		add_menuitem(self.sm,name)
		add_menuitem(self.sm, "-")
		add_image_menuitem(self.sm, gtk.STOCK_DIALOG_AUTHENTICATION, _("Open as Administrator"), self.runasadmin,name, exe,ico,'1')
	
		if ('%s::%s::%s::1' %(name, exe, ico)) not in favlist:
			add_menuitem(self.sm, "-")
			add_image_menuitem(self.sm, gtk.STOCK_ADD, _("Add to Favorites"), self.addfav,name,exe, ico, '1')
	
		else:
			add_menuitem(self.sm, "-")
			add_image_menuitem(self.sm, gtk.STOCK_REMOVE, _("Remove from Favorites"), self.removefav,name, exe, ico, '1')

		add_menuitem(self.sm, "-")
		add_image_menuitem(self.sm, gtk.STOCK_HOME, _("Create Desktop Shortcut"), self.addshort,name, exe, ico, '1')
	
		add_menuitem(self.sm, "-")
		if ('%s.desktop' % name) in os.listdir(Globals.AutoStartDirectory):
			add_image_menuitem(self.sm, gtk.STOCK_REMOVE, _("Remove from System Startup"), self.remove_autostarter,name,  exe, ico, '1')
		else:
			add_image_menuitem(self.sm, gtk.STOCK_ADD, _("Add to System Startup"), self.create_autostarter,name, exe, ico, '1')
		self.sm.show_all()
		
		self.sm.popup(None, None, None, 0,0)
		gc.collect()