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()
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()
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()
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()
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()
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()