def init_status_icon(self):
def on_status_icon_popup_menu(status_icon, event_button, event_time):
menu.popup(None, None,
lambda a,b: Gtk.StatusIcon.position_menu(menu, status_icon),
None, event_button, event_time)
def on_status_icon_activate(status_icon):
if self.window.props.visible:
self.window.hide()
else:
self.window.present()
if not self.profile or not self.profile['use-status-icon']:
self.status_icon = None
return
menu = Gtk.Menu()
show_item = Gtk.MenuItem.new_with_label(_('Show App'))
show_item.connect('activate', lambda item: self.window.present())
menu.append(show_item)
sep_item = Gtk.SeparatorMenuItem()
menu.append(sep_item)
pause_upload_item = Gtk.MenuItem.new_with_label(
_('Pause Upload Tasks'))
pause_upload_item.connect('activate',
lambda item: self.upload_page.pause_tasks())
menu.append(pause_upload_item)
pause_download_item = Gtk.MenuItem.new_with_label(
_('Pause Download Tasks'))
pause_download_item.connect('activate',
lambda item: self.download_page.pause_tasks())
menu.append(pause_download_item)
sep_item = Gtk.SeparatorMenuItem()
menu.append(sep_item)
quit_item = Gtk.MenuItem.new_with_label(_('Quit'))
quit_item.connect('activate', lambda item: self.quit())
menu.append(quit_item)
menu.show_all()
self.status_menu = menu
if 'AppIndicator' in globals():
self.status_icon = AppIndicator.Indicator.new(Config.NAME,
Config.NAME,
AppIndicator.IndicatorCategory.APPLICATION_STATUS)
self.status_icon.set_menu(menu)
self.status_icon.set_status(AppIndicator.IndicatorStatus.ACTIVE)
else:
self.status_icon = Gtk.StatusIcon()
self.status_icon.set_from_icon_name(Config.NAME)
# left click
self.status_icon.connect('activate', on_status_icon_activate)
# right click
self.status_icon.connect('popup_menu', on_status_icon_popup_menu)
# Open API
评论列表
文章目录