def insert_icon(self, pageview):
'''Create widget to choose an icon and insert an icon shortcode.'''
def _insert(item):
'''Insert an icon shortcode to the cursor position.'''
buffer = pageview.view.get_buffer()
text = '{0}{1}{2}{3}{0}'.format(STRONG_MARKUP, PREFIX, item, POSTFIX)
buffer.insert_at_cursor(text)
menu = gtk.Menu()
icons = sorted([(a, render_icon(b)) for (a,b) in ICONS.iteritems()
if a not in RESERVED_ICON_NAMES])
for name, icon in icons:
image = gtk.Image()
image.set_from_pixbuf(icon)
item = gtk.ImageMenuItem(name)
item.set_image(image)
item.set_use_underline(False)
item.connect('button-release-event', lambda item, _:
_insert(item.get_label()))
menu.append(item)
menu.popup(None, None, None, 3, 0)
menu.show_all()
python类Menu()的实例源码
def __init__(self, ttrss):
self.ttrss = ttrss
self.menu = gtk.Menu()
quitter = gtk.ImageMenuItem(gtk.STOCK_QUIT)
quitter.set_always_show_image(True)
self.menu.append(quitter)
quitter.show()
quitter.connect("activate", gtk.main_quit)
self.viewer = ArticleViewer()
self.viewer.on_hide = self.update_articles
self.status_icon = gtk.StatusIcon()
self.status_icon.set_from_icon_name("mail-read")
self.update_headlines()
self.to = gtk.timeout_add(1000 * 60, self.update_headlines)
self.status_icon.connect("activate", self.toggle_viewer)
self.status_icon.connect("popup-menu", self.show_menu)
bookmarks-indicator.py 文件源码
项目:bookmarks-indicator
作者: antoniocoratelli
项目源码
文件源码
阅读 15
收藏 0
点赞 0
评论 0
def onhover(self, widget, path, submenu):
'''
When the user hovers a folder item replace the dummy separator with the
actual content of the folder.
'''
submenu = gtk.Menu()
widget.set_submenu(submenu)
self.append_item(submenu, os.path.join(path, "."))
list_dirs = get_subdirs(path)
list_files = get_subfiles(path)
if len(list_dirs) or len(list_files):
self.append_separator(submenu)
for d in sorted(list_dirs):
self.append_item(submenu, os.path.join(path, d))
if len(list_dirs) and len(list_files):
self.append_separator(submenu)
for f in sorted(list_files):
self.append_item(submenu, os.path.join(path, f))
def popup_node_menu(self, node, event):
menu = gtk.Menu()
self.emit("populate-node-menu", node, menu)
menu.popup(None, None, None, event.button, event.time)
def make_menu(self):
menu = gtk.Menu()
itemlist = [(u'Config', self.on_show),
('restart gae_proxy', self.on_restart_gae_proxy),
(u'Quit', self.on_quit)]
for text, callback in itemlist:
item = gtk.MenuItem(text)
item.connect('activate', callback)
item.show()
menu.append(item)
menu.show()
return menu
def make_menu(self):
menu = gtk.Menu()
itemlist = [(u'Config', self.on_show),
('restart gae_proxy', self.on_restart_gae_proxy),
(u'Quit', self.on_quit)]
for text, callback in itemlist:
item = gtk.MenuItem(text)
item.connect('activate', callback)
item.show()
menu.append(item)
menu.show()
return menu
def build_Menu(self):
menu1 = gtk.Menu();
menu2 = gtk.Menu();
menuItem1_1 = gtk.MenuItem("1:1");
menuItem1_2 = gtk.MenuItem("1:2");
menuItem1_3 = gtk.MenuItem("1:3");
menuItem2_1 = gtk.MenuItem("??");
menuItem2_2 = gtk.MenuItem("??");
menuItem2_3 = gtk.MenuItem("????");
menuItem2_4 = gtk.MenuItem("?????");
menuItem2_5 = gtk.MenuItem("????");
menuItem2_6 = gtk.MenuItem("?????");
menuItem2_7 = gtk.MenuItem("????")
menu1.append(menuItem1_1)
menu1.append(menuItem1_2)
menu1.append(menuItem1_3)
menu2.append(menuItem2_1)
menu2.append(menuItem2_2)
menu2.append(menuItem2_3)
menu2.append(menuItem2_4)
menu2.append(menuItem2_5)
menu2.append(menuItem2_6)
menu2.append(menuItem2_7)
first_menu = gtk.MenuItem("First Menu")
second_menu = gtk.MenuItem("?????")
first_menu.set_submenu(menu1)
second_menu.set_submenu(menu2)
menuItem2_1.connect("button-press-event",self.select_Server,1);
menuItem2_2.connect("button-press-event",self.select_Server,2);
menuItem2_3.connect("button-press-event",self.select_Server,3);
menuItem2_4.connect("button-press-event",self.add_Server);
menuItem2_5.connect("button-press-event",self.create_Excel);
menuItem2_7.connect("button-press-event",self.load_information);
menu_bar = gtk.MenuBar()
menu_bar.append (first_menu)
menu_bar.append (second_menu)
return menu_bar
def on_populate_popup(self, treeview, menu):
'''Add popup menu options.'''
menu.prepend(gtk.SeparatorMenuItem())
# Add menu with view options.
view_menu = gtk.Menu()
# Add options to show tags and tagged pages.
items = ( (_('Show only Pages with Tags'), self._show_tagged,
lambda o: self.toggle_show_tagged()),
(_('Show Tags'), self.uistate['show tags'],
lambda o: self.toggle_show_tags()) )
for name, active, func in items:
item = gtk.CheckMenuItem(name)
item.set_active(active)
item.connect('activate', func)
view_menu.append(item)
view_menu.append(gtk.SeparatorMenuItem())
# Add options to switch between views.
def _change_view(item, event):
self.uistate['Open pages'] = item.zim_view
self.treeview.change_view(self.uistate['Open pages'])
items = ( (_('Default'), 'default'),
(_('Collapse other Pages'), 'collapse'),
(_('Disable'), 'disable') )
item = None
for name, view in items:
item = gtk.RadioMenuItem(group = item, label = name)
if view == self.uistate['Open pages']:
item.set_active(True)
item.zim_view = view
item.connect('button-release-event', _change_view)
view_menu.append(item)
item = gtk.MenuItem('View')
item.set_submenu(view_menu)
menu.prepend(item)
menu.show_all()
def row_activated(self, path, column):
if column.get_sort_column_id() != self.ICON_NAME:
return False
def set_icon(path, icon_name = None):
iter = self.model.get_iter(path)
tag = self.model.get_value(iter, self.TAG_COL)
tag = unicode(tag) # to use with non latin characters
if icon_name:
self.icons_for_tags[tag] = icon_name
else:
self.icons_for_tags.pop(tag, None)
self.refill_model()
return True
menu = gtk.Menu()
item = gtk.MenuItem('None')
item.connect('activate', lambda item: set_icon(path))
menu.append(item)
icons = sorted([(a, render_icon(b)) for (a,b) in ICONS.iteritems()
if a not in RESERVED_ICON_NAMES])
for name, icon in icons:
image = gtk.Image()
image.set_from_pixbuf(icon)
item = gtk.ImageMenuItem(name)
item.set_use_underline(False)
item.set_image(image)
item.zim_icon_name = name
item.connect('activate', lambda item: set_icon(path, item.zim_icon_name))
menu.append(item)
menu.show_all()
menu.popup(None, None, None, 3, 0)
def row_activated(self, path, column):
if column.get_sort_column_id() != self.ICON_NAME:
return False
def set_icon(path, icon_name = None):
tag = self.model.get_value(self.model.get_iter(path), self.TAG_COL)
tag = unicode(tag) # to use with non latin characters
if icon_name:
self.icons_for_tags[tag] = icon_name
else:
self.icons_for_tags.pop(tag, None)
self.refill_model()
return True
menu = gtk.Menu()
item = gtk.MenuItem('None')
item.connect('activate', lambda item: set_icon(path))
menu.append(item)
icons = sorted([(a, render_icon(b)) for (a,b) in ICONS.iteritems()
if a not in RESERVED_ICON_NAMES])
for name, icon in icons:
image = gtk.Image()
image.set_from_pixbuf(icon)
item = gtk.ImageMenuItem(name)
item.set_use_underline(False)
item.set_image(image)
item.zim_icon_name = name
item.connect('activate', lambda item: set_icon(path, item.zim_icon_name))
menu.append(item)
menu.show_all()
menu.popup(None, None, None, 3, 0)
def on_populate_popup(self, treeview, menu):
'''Add popup menu options.'''
menu.prepend(gtk.SeparatorMenuItem())
# Add menu with view options.
view_menu = gtk.Menu()
# Add options to show tags and tagged pages.
items = ( (_('Show only Pages with Tags'), self._show_tagged,
lambda o: self.toggle_show_tagged()),
(_('Show Tags'), self.uistate['show tags'],
lambda o: self.toggle_show_tags()) )
for name, active, func in items:
item = gtk.CheckMenuItem(name)
item.set_active(active)
item.connect('activate', func)
view_menu.append(item)
view_menu.append(gtk.SeparatorMenuItem())
# Add options to switch between views.
def _change_view(item, event):
self.uistate['Open pages'] = item.zim_view
self.treeview.change_view(self.uistate['Open pages'])
items = ( (_('Default'), 'default'),
(_('Collapse other Pages'), 'collapse'),
(_('Disable'), 'disable') )
item = None
for name, view in items:
item = gtk.RadioMenuItem(group = item, label = name)
if view == self.uistate['Open pages']:
item.set_active(True)
item.zim_view = view
item.connect('button-release-event', _change_view)
view_menu.append(item)
item = gtk.MenuItem('View')
item.set_submenu(view_menu)
menu.prepend(item)
menu.show_all()
def _setup_menus(self):
menu = gtk.Menu()
item = gtk.MenuItem("Player")
menu.append(item)
item.show()
submenu = gtk.Menu()
if self.current_engine.menu_items:
for wid in self.current_engine.menu_items:
submenu.append(wid)
item.set_submenu(submenu)
submenu.show_all()
def add_action(name):
item = self.actions[name].create_menu_item()
menu.append(item)
item.show()
item = gtk.MenuItem("Source")
menu.append(item)
item.show()
submenu = gtk.Menu()
for o in self.sources:
if o.pretty_name:
subitem = gtk.MenuItem(o.pretty_name)
submenu.append(subitem)
subitem.connect("activate", self._source_activated, o)
item.set_submenu(submenu)
submenu.show_all()
add_action("Preferences")
item = gtk.SeparatorMenuItem()
menu.append(item)
item.show()
add_action("Quit")
self.set_menu(menu)
menu.show()
# _setup_menus()
def __init__(self):
self.tray = gtk.StatusIcon()
self.tray.connect('activate', self.refresh)
# Create menu
menu = gtk.Menu()
i = gtk.MenuItem("Configure")
i.show()
i.connect("activate", self.ConfigurePiJuice)
menu.append(i)
i = gtk.MenuItem("About...")
i.show()
i.connect("activate", self.show_about)
menu.append(i)
self.tray.connect('popup-menu', self.show_menu, menu)
self.pijuice = PiJuice(1,0x14)
# Initalise and start battery display
self.refresh(None)
self.tray.set_visible(True)
gobject.timeout_add(REFRESH_INTERVAL, self.refresh, False)
def __init__(self):
self.tray = gtk.StatusIcon()
self.tray.connect('activate', self.refresh)
# Create menu
menu = gtk.Menu()
i = gtk.MenuItem("Configure")
i.show()
i.connect("activate", self.ConfigurePiJuice)
menu.append(i)
i = gtk.MenuItem("About...")
i.show()
i.connect("activate", self.show_about)
menu.append(i)
self.tray.connect('popup-menu', self.show_menu, menu)
self.pijuice = PiJuice(1,0x14)
# Initalise and start battery display
self.refresh(None)
self.tray.set_visible(True)
gobject.timeout_add(REFRESH_INTERVAL, self.refresh, False)
def __init__(self):
self.tray = gtk.StatusIcon()
self.tray.connect('activate', self.refresh)
# Create menu
menu = gtk.Menu()
i = gtk.MenuItem("Configure")
i.show()
i.connect("activate", self.ConfigurePiJuice)
menu.append(i)
i = gtk.MenuItem("About...")
i.show()
i.connect("activate", self.show_about)
menu.append(i)
self.tray.connect('popup-menu', self.show_menu, menu)
self.pijuice = PiJuice(1,0x14)
# Initalise and start battery display
self.refresh(None)
self.tray.set_visible(True)
gobject.timeout_add(REFRESH_INTERVAL, self.refresh, False)
def __init__(self):
self.tray = gtk.StatusIcon()
self.tray.connect('activate', self.refresh)
# Create menu
menu = gtk.Menu()
i = gtk.MenuItem("Configure")
i.show()
i.connect("activate", self.ConfigurePiJuice)
menu.append(i)
i = gtk.MenuItem("About...")
i.show()
i.connect("activate", self.show_about)
menu.append(i)
self.tray.connect('popup-menu', self.show_menu, menu)
self.pijuice = PiJuice(1,0x14)
# Initalise and start battery display
self.refresh(None)
self.tray.set_visible(True)
gobject.timeout_add(REFRESH_INTERVAL, self.refresh, False)
def __init__(self):
self.tray = gtk.StatusIcon()
self.tray.connect('activate', self.refresh)
# Create menu
menu = gtk.Menu()
i = gtk.MenuItem("Configure")
i.show()
i.connect("activate", self.ConfigurePiJuice)
menu.append(i)
i = gtk.MenuItem("About...")
i.show()
i.connect("activate", self.show_about)
menu.append(i)
self.tray.connect('popup-menu', self.show_menu, menu)
self.pijuice = PiJuice(1,0x14)
# Initalise and start battery display
self.refresh(None)
self.tray.set_visible(True)
gobject.timeout_add(REFRESH_INTERVAL, self.refresh, False)
def _showTrayIconMenu(self, event_button, event_time, icon):
menu = gtk.Menu()
if not self.get_property('visible'):
showItem = gtk.MenuItem('Show main window')
showItem.connect('activate', self._trayIconClick)
showItem.show()
menu.append(showItem)
item = gtk.MenuItem('Quit')
item.connect('activate', gtk.main_quit)
item.show()
menu.append(item)
menu.popup(None, None, gtk.status_icon_position_menu, event_button,event_time, icon)
def make_menu(self):
menu = gtk.Menu()
itemlist = [(u'Config', self.on_show),
('restart gae_proxy', self.on_restart_gae_proxy),
(u'Quit', self.on_quit)]
for text, callback in itemlist:
item = gtk.MenuItem(text)
item.connect('activate', callback)
item.show()
menu.append(item)
menu.show()
return menu
def _menu_setup(self):
self.items = {}
self.menu = gtk.Menu()
self._create_menu_from_config()
def _add_menu_item(self, item='item', label='Menu item',
sensitive=False,
op=None, args=None,
**ignored_kwarg):
menu_item = gtk.MenuItem(label)
menu_item.set_sensitive(sensitive)
if op:
def activate(o, a):
return lambda d: self._do(o, a)
menu_item.connect("activate", activate(op, args or []))
menu_item.show()
self.items[item] = menu_item
self.menu.append(menu_item)
def on_gremlin_clicked(self, widget, event, data=None):
if event.type == gtk.gdk._2BUTTON_PRESS:
self.clear_live_plotter()
# Settings
if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
menu = gtk.Menu()
program_alpha = gtk.CheckMenuItem("Program alpha")
program_alpha.set_active(self.program_alpha)
program_alpha.connect("activate", self.toggle_program_alpha)
menu.append(program_alpha)
show_limits = gtk.CheckMenuItem("Show limits")
show_limits.set_active(self.show_limits)
show_limits.connect("activate", self.toggle_show_limits)
menu.append(show_limits)
show_extents = gtk.CheckMenuItem("Show extents")
show_extents.set_active(self.show_extents_option)
show_extents.connect("activate", self.toggle_show_extents_option)
menu.append(show_extents)
live_plot = gtk.CheckMenuItem("Show live plot")
live_plot.set_active(self.show_live_plot)
live_plot.connect("activate", self.toggle_show_live_plot)
menu.append(live_plot)
# lathe = gtk.CheckMenuItem("Lathe mode")
# lathe.set_active(self.lathe_option )
# lathe.connect("activate", self.toggle_lathe_option)
# menu.append(lathe)
menu.popup(None, None, None, event.button, event.time)
menu.show_all()
gnome_connection_manager.py 文件源码
项目:gnome-connection-manager
作者: mjun
项目源码
文件源码
阅读 19
收藏 0
点赞 0
评论 0
def get_folder_menu(self, obj, folder, path):
if not obj or not (isinstance(obj,gtk.Menu) or isinstance(obj,gtk.MenuItem)):
return None
for item in obj.get_children():
if path == folder+'/'+item.get_label():
return item.get_submenu()
i = self.get_folder_menu(item.get_submenu(), folder+'/'+item.get_label(), path)
if i:
return i
bookmarks-indicator.py 文件源码
项目:bookmarks-indicator
作者: antoniocoratelli
项目源码
文件源码
阅读 16
收藏 0
点赞 0
评论 0
def init_indicator(self):
'''
Set the basic properties (icon, label, ...) of the indicator.
'''
self.menu = gtk.Menu()
self.indicator = ai.Indicator(self.title, self.icon, ai.CATEGORY_APPLICATION_STATUS)
self.indicator.set_label(self.label)
self.indicator.set_status(ai.STATUS_ACTIVE)
self.indicator.set_menu(self.menu)
bookmarks-indicator.py 文件源码
项目:bookmarks-indicator
作者: antoniocoratelli
项目源码
文件源码
阅读 22
收藏 0
点赞 0
评论 0
def append_dummy(self, widget):
'''
Insert a dummy separator in the submenu of a folder item.
Thanks to this function item representing folders always have an arrow,
and it is possible to expand the folder content only when the user
actually hovers the item.
'''
submenu = gtk.Menu()
self.append_separator(submenu)
widget.set_submenu(submenu)
return submenu
def make_menu(self):
menu = gtk.Menu()
itemlist = [(u'Config', self.on_show),
('restart gae_proxy', self.on_restart_gae_proxy),
(u'Quit', self.on_quit)]
for text, callback in itemlist:
item = gtk.MenuItem(text)
item.connect('activate', callback)
item.show()
menu.append(item)
menu.show()
return menu
def setup_menu(self, mnu_items, mnu_pixmaps, activate_cb):
"""returns a gtk menu object
Parameters:
mnu_items : List of menu item names (either a string, a gtk stock item or '_sep_' for a separator)
mnu_pixmaps : List of pixmaps (filename, a gtk stock icon or None)
activate_cb : Callback function for menu activation
Returns:
Reference to the constructed gtk.Menu
"""
mnu = gtk.Menu()
for i in range(len(mnu_items)):
#separator or menu item?
if mnu_items[i] != '_sep_':
#menu item
mnuItem = gtk.ImageMenuItem(stock_id=mnu_items[i])
img = gtk.Image()
if mnu_pixmaps[i]:
if mnu_pixmaps[i][:4] == 'gtk-' and '.' not in mnu_pixmaps[i]:
#stock icon
img.set_from_stock(mnu_pixmaps[i], gtk.ICON_SIZE_MENU)
else:
#file icon
img.set_from_pixbuf(self.get_pixbuf(mnu_pixmaps[i], gtk.ICON_SIZE_MENU))
img.show()
mnuItem.set_image(img)
mnuItem.connect('activate', activate_cb)
mnuItem.set_name(mnu_items[i])
else:
#separator
mnuItem = gtk.SeparatorMenuItem()
#add item to menu
mnuItem.show()
mnu.append(mnuItem)
#done
return mnu
def make_menu(self):
menu = gtk.Menu()
itemlist = [(u'\u663e\u793a', self.on_show),
(u'\u9690\u85cf', self.on_hide),
(u'\u505c\u6b62', self.on_stop),
(u'\u91cd\u65b0\u8f7d\u5165', self.on_reload),
(u'\u9000\u51fa', self.on_quit)]
for text, callback in itemlist:
item = gtk.MenuItem(text)
item.connect('activate', callback)
item.show()
menu.append(item)
menu.show()
return menu
def make_menu(self):
menu = gtk.Menu()
itemlist = [(u'\u663e\u793a', self.on_show),
(u'\u9690\u85cf', self.on_hide),
(u'\u505c\u6b62', self.on_stop),
(u'\u91cd\u65b0\u8f7d\u5165', self.on_reload),
(u'\u9000\u51fa', self.on_quit)]
for text, callback in itemlist:
item = gtk.MenuItem(text)
item.connect('activate', callback)
item.show()
menu.append(item)
menu.show()
return menu
def create_menu(self):
menu = gtk.Menu()
self.add_menu_item("_Pause f.lux", self._toggle_pause,
menu, MenuItem=gtk.CheckMenuItem)
self.add_menu_item("Prefere_nces", self._open_preferences, menu)
self.add_menu_separator(menu)
self.add_menu_item("Quit", self._quit, menu)
return menu