本文整理汇总了Python中sugar3.graphics.menuitem.MenuItem.get_submenu方法的典型用法代码示例。如果您正苦于以下问题:Python MenuItem.get_submenu方法的具体用法?Python MenuItem.get_submenu怎么用?Python MenuItem.get_submenu使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sugar3.graphics.menuitem.MenuItem
的用法示例。
在下文中一共展示了MenuItem.get_submenu方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ClipboardMenu
# 需要导入模块: from sugar3.graphics.menuitem import MenuItem [as 别名]
# 或者: from sugar3.graphics.menuitem.MenuItem import get_submenu [as 别名]
class ClipboardMenu(Palette):
def __init__(self, cb_object):
Palette.__init__(self, text_maxlen=100)
self._cb_object = cb_object
self.set_group_id('frame')
cb_service = clipboard.get_instance()
cb_service.connect('object-state-changed',
self._object_state_changed_cb)
self._remove_item = MenuItem(pgettext('Clipboard', 'Remove'),
'list-remove')
self._remove_item.connect('activate', self._remove_item_activate_cb)
self.menu.append(self._remove_item)
self._remove_item.show()
self._open_item = MenuItem(_('Open'), 'zoom-activity')
self._open_item.connect('activate', self._open_item_activate_cb)
self.menu.append(self._open_item)
self._open_item.show()
self._journal_item = MenuItem(_('Keep'))
client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
icon = Icon(icon_name='document-save', icon_size=Gtk.IconSize.MENU,
xo_color=color)
self._journal_item.set_image(icon)
self._journal_item.connect('activate', self._journal_item_activate_cb)
self.menu.append(self._journal_item)
self._journal_item.show()
self._update()
def _update_open_submenu(self):
activities = self._get_activities()
logging.debug('_update_open_submenu: %r', activities)
child = self._open_item.get_child()
if activities is None or len(activities) <= 1:
child.set_text(_('Open'))
if self._open_item.get_submenu() is not None:
self._open_item.set_submenu(None)
return
child.set_text(_('Open with'))
submenu = self._open_item.get_submenu()
if submenu is None:
submenu = Gtk.Menu()
self._open_item.set_submenu(submenu)
submenu.show()
else:
for item in submenu.get_children():
submenu.remove(item)
for service_name in activities:
registry = bundleregistry.get_registry()
activity_info = registry.get_bundle(service_name)
if not activity_info:
logging.warning('Activity %s is unknown.', service_name)
item = Gtk.MenuItem(activity_info.get_name())
item.connect('activate', self._open_submenu_item_activate_cb,
service_name)
submenu.append(item)
item.show()
def _update_items_visibility(self):
activities = self._get_activities()
installable = self._cb_object.is_bundle()
percent = self._cb_object.get_percent()
if percent == 100 and (activities or installable):
self._remove_item.props.sensitive = True
self._open_item.props.sensitive = True
self._journal_item.props.sensitive = True
elif percent == 100 and (not activities and not installable):
self._remove_item.props.sensitive = True
self._open_item.props.sensitive = False
self._journal_item.props.sensitive = True
else:
self._remove_item.props.sensitive = True
self._open_item.props.sensitive = False
self._journal_item.props.sensitive = False
def _get_activities(self):
mime_type = self._cb_object.get_mime_type()
if not mime_type:
return ''
registry = bundleregistry.get_registry()
activities = registry.get_activities_for_type(mime_type)
if activities:
return [info.get_bundle_id() for info in activities]
else:
return ''
#.........这里部分代码省略.........