def __init__(self):
self.main_loop = gobject.MainLoop()
# Create a window with a horizontal scale.
self.wnd = gtk.Window()
self.wnd.set_default_size(640, 480)
self.wnd.set_title('Have fun with the transparency slider')
hscale = gtk.HScale()
hscale.set_digits(0)
hscale.set_increments(1, 10)
hscale.set_range(0, 100)
hscale.set_value(100)
hscale.connect('value_changed', self.set_window_alpha)
self.wnd.add(hscale)
# Note: gtk window must be realized before installing extensions.
self.wnd.realize()
self.wnd.show_all()
self.win32ext = GTKWin32Ext(self.wnd)
self.win32ext.add_notify_icon()
# GTK menus from the notify icon!
menu = gtk.Menu()
menu_item = gtk.MenuItem('Baloons!')
menu_item.connect_object('activate', self.menu_cb, self.wnd)
menu.append(menu_item)
menu_item = gtk.MenuItem('Fadeout Window')
menu_item.connect('activate', self.fadeoutwindow)
menu.append(menu_item)
menu_item = gtk.MenuItem('Window Disappeared?')
menu_item.connect('activate', self.fadeinwindow)
menu.append(menu_item)
menu.show_all()
self.win32ext.notify_icon.menu = menu
# Set up the callback messages
self.win32ext.message_map({
WM_TRAYMESSAGE: self.on_notifyicon_activity
})
python类Menu()的实例源码
def __init__(self, app_engine, gui):
menu = gtk.Menu()
# show main application
main_application_menu_item = gtk.MenuItem("Main Application")
main_application_menu_item.show()
menu.append(main_application_menu_item)
main_application_menu_item.connect('activate', self.show_main_gui, gui)
#separator
sep0 = gtk.SeparatorMenuItem()
sep0.show()
menu.append(sep0)
for collector in app_engine.collectors:
if isinstance(collector, engine.collector.ManualCollector):
menu_item_collector = gtk.MenuItem(collector.command_description)
menu.append(menu_item_collector)
menu_item_collector.connect('activate', self.run_collector, collector)
#separator
sep1 = gtk.SeparatorMenuItem()
sep1.show()
menu.append(sep1)
# show about_menu_item dialog
self.startall_menu_item = gtk.MenuItem("Start All Collectors")
self.startall_menu_item.show()
menu.append(self.startall_menu_item)
self.startall_menu_item.connect('activate', gui.startall_collectors)
# show about_menu_item dialog
self.stopall_menu_item = gtk.MenuItem("Stop All Collectors")
self.stopall_menu_item.show()
menu.append(self.stopall_menu_item)
self.stopall_menu_item.connect('activate', gui.stopall_collectors)
self.stopall_menu_item.set_sensitive(False)
#separator
sep2 = gtk.SeparatorMenuItem()
sep2.show()
menu.append(sep2)
# show about_menu_item dialog
about_menu_item = gtk.MenuItem("About")
about_menu_item.show()
menu.append(about_menu_item)
about_menu_item.connect('activate', self.show_about_dialog)
# add quit_menu_item item
quit_menu_item = gtk.MenuItem("Quit")
quit_menu_item.show()
menu.append(quit_menu_item)
quit_menu_item.connect('activate', self.kill_me, app_engine)
self.tray_ind = appindicator.Indicator("ECEL", gtk.STOCK_NO, appindicator.CATEGORY_SYSTEM_SERVICES)
self.tray_ind.set_status(appindicator.STATUS_ACTIVE)
self.tray_ind.set_menu(menu)
menu.show_all()
def add_catalog_items(self, menu_add):
def add_to_menu(grp_menu, path) :
for ptr in range(len(path)) :
try :
p = path[ptr]
if p.tag.lower() in ["menu", "menuitem", "group", "sub"] :
name = p.get("name") if "name" in p.keys() else ""
a_menu_item = gtk.ImageMenuItem(_(name))
tooltip = _(p.get("tool_tip")) if "tool_tip" in p.keys() else None
if (tooltip is not None) and (tooltip != '') :
a_menu_item.set_tooltip_markup(_(tooltip))
icon = p.get('icon')
if icon is not None :
img = gtk.Image()
img.set_from_pixbuf(get_pixbuf(icon, add_menu_icon_size))
a_menu_item.set_image(img)
src = p.get('src')
if src is not None :
a_menu_item.connect("activate", self.add_feature, src)
grp_menu.append(a_menu_item)
if p.tag.lower() in ['menu', "group"] :
a_menu = gtk.Menu()
a_menu_item.set_submenu(a_menu)
add_to_menu(a_menu, p)
elif p.tag.lower() == "separator":
grp_menu.append(gtk.SeparatorMenuItem())
except:
pass
if self.catalog.tag != 'ncam_ui' :
mess_dlg(_('Menu is old format, no toolbar defined.\nUpdate to new format'))
add_to_menu(menu_add, self.catalog)
else :
for _ptr in range(len(self.catalog)) :
_p = self.catalog[_ptr]
if _p.tag.lower() in ["menu", "group"] :
add_to_menu(menu_add, _p)
gnome_connection_manager.py 文件源码
项目:gnome-connection-manager
作者: mjun
项目源码
文件源码
阅读 17
收藏 0
点赞 0
评论 0
def updateTree(self):
for grupo in dict(groups):
if len(groups[grupo])==0:
del groups[grupo]
if conf.COLLAPSED_FOLDERS == None:
conf.COLLAPSED_FOLDERS = ','.join(self.get_collapsed_nodes())
self.menuServers.foreach(self.menuServers.remove)
self.treeModel.clear()
iconHost = self.treeServers.render_icon("gtk-network", size=gtk.ICON_SIZE_BUTTON, detail=None)
iconDir = self.treeServers.render_icon("gtk-directory", size=gtk.ICON_SIZE_BUTTON, detail=None)
grupos = groups.keys()
grupos.sort(lambda x,y: cmp(y,x))
for grupo in grupos:
group = None
path = ""
menuNode = self.menuServers
for folder in grupo.split("/"):
path = path + '/' + folder
row = self.get_folder(self.treeModel, '', path)
if row == None:
group = self.treeModel.prepend(group, [folder, None, iconDir])
else:
group = row.iter
menu = self.get_folder_menu(self.menuServers, '', path)
if menu == None:
menu = gtk.ImageMenuItem(folder)
#menu.set_image(gtk.image_new_from_stock(gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_MENU))
menuNode.prepend(menu)
menuNode = gtk.Menu()
menu.set_submenu(menuNode)
menu.show()
else:
menuNode = menu
groups[grupo].sort(key=operator.attrgetter('name'))
for host in groups[grupo]:
self.treeModel.append(group, [host.name, host, iconHost])
mnuItem = gtk.ImageMenuItem(host.name)
mnuItem.set_image(gtk.image_new_from_stock(gtk.STOCK_NETWORK, gtk.ICON_SIZE_MENU))
mnuItem.show()
mnuItem.connect("activate", lambda arg, nb, h: self.addTab(nb, h), self.nbConsole, host)
menuNode.append(mnuItem)
self.set_collapsed_nodes()
conf.COLLAPSED_FOLDERS = None