def metacontact_buddy_menu(menu, mc): lenmc = len(mc) for contact in mc: # add a service specific menu for each contact in the metacontact contact_menu = Menu(menu.Window) # search_bases = False means we'll get the actions specific to the buddy's service actions.menu(menu.Window, contact, contact_menu, search_bases = False) if contact_menu[0].IsSeparator(): contact_menu.RemoveItem(contact_menu[0]) if lenmc > 2: contact_menu.AddSep() contact_menu.AddItem(_('&Remove from Merged Contact'), callback = lambda contact=contact: mc.manager.remove(mc, contact)) # use the contact's service icon for the submenu (greyed out if offline) icon = contact.serviceicon if not contact.online: icon = icon.Greyed menu.AddSubMenu(contact_menu, contact.name, bitmap = icon)
def OnRightUp(self, event): """ Generate and open menu on right click """ if self.Selection >= 0: # populate the popup menu with actions self.menu.RemoveAllItems() acct = self.active[self.Selection] if hasattr(getattr(acct, 'menu_actions', None), '__call__'): acct.menu_actions(self.menu) elif isinstance(acct, EmailAccount): #HAX: an ugly hack until Email-specific actions are removed from EmailAccount. actions.menu(wx.FindWindowByName('Buddy List'), acct, menu=self.menu, search_bases=False, cls=EmailAccount) else: actions.menu(wx.FindWindowByName('Buddy List'), acct, menu=self.menu) self.menu.AddSep() # if self.prefkey is not None: # unlockitem = self.menu.AddCheckItem(_('Allow Rearrange'), callback = self.ToggleOrderLock) # unlockitem.Check(self.unlocked) self.menu.PopupMenu()
def im_account_menu(parent, menu, account): 'Builds a menu for an IM account.' menu.RemoveAllItems() # Sign On / Sign Off if account.connected: menu.AddItem(_('&Sign Off'), callback=account.disconnect) else: menu.AddItem(_('&Sign On'), callback=account.connect) # Edit Account menu.AddItem(_('&Edit Account...'), callback=lambda: profile.account_manager.edit(account)) # if connected, append more action menu items if account.connected: menu.AddSep() # grab actions for the connection (ignoring Connect and Disconnect methods, since # we already have "Sign On/Off" above) actions.menu(parent, account.connection, menu, filter=lambda func: func.__name__ not in ('Disconnect', 'Connect')) actions.menu(parent, account, menu)
def metacontact_buddy_menu(menu, mc): lenmc = len(mc) for contact in mc: # add a service specific menu for each contact in the metacontact contact_menu = Menu(menu.Window) # search_bases = False means we'll get the actions specific to the buddy's service actions.menu(menu.Window, contact, contact_menu, search_bases=False) if contact_menu[0].IsSeparator(): contact_menu.RemoveItem(contact_menu[0]) if lenmc > 2: contact_menu.AddSep() contact_menu.AddItem(_('&Remove from Merged Contact'), callback=lambda contact=contact: mc.manager. remove(mc, contact)) # use the contact's service icon for the submenu (greyed out if offline) icon = contact.serviceicon if not contact.online: icon = icon.Greyed menu.AddSubMenu(contact_menu, contact.name, bitmap=icon)
def on_context_menu(self, e): # ensure the selection is underneath the mouse cursor self.context_menu_event_selection(e) menu = self.context_menu menu.RemoveAllItems() i = self.GetSelection() if i != -1: obj = self.model[i] if hasattr(obj, '_disallow_actions'): return # The mouse is over a group or buddy import common.actions as actions actions.menu(self, self.model[i], self.context_menu) else: # The mouse is over an empty space in the buddylist # # Only show "Add Group" if you are connected to an IM account (other than Digsby) # OR if you have the "digsby.allow_add" preference set. if not any(x.allow_contact_add for x in profile.account_manager.connected_accounts): return from gui.protocols import add_group menu.AddItem(_('&Add Group'), callback=add_group) menu.PopupMenu()
def on_context_menu(self, e): # ensure the selection is underneath the mouse cursor self.context_menu_event_selection(e) menu = self.context_menu menu.RemoveAllItems() i = self.GetSelection() if i != -1: obj = self.model[i] if hasattr(obj, '_disallow_actions'): return # The mouse is over a group or buddy import common.actions as actions actions.menu(self, self.model[i], self.context_menu) else: # The mouse is over an empty space in the buddylist # # Only show "Add Group" if you are connected to an IM account (other than Digsby) # OR if you have the "digsby.allow_add" preference set. if not any(x.allow_contact_add for x in profile.account_manager.connected_accounts): return from gui.protocols import add_group menu.AddItem(_('&Add Group'), callback = add_group) menu.PopupMenu()
def update_menu(self, event=None): from common.emailaccount import EmailAccount self._menu.RemoveAllItems() actions.menu(wx.FindWindowByName('Buddy List'), self.acct, cls=EmailAccount, search_bases=False, menu=self._menu)
def popup(self): if hasattr(self, '_menu') and self._menu: self._menu.Destroy() menu = UMenu(self) menu.AddItem(_('&Edit'), callback = lambda: self.on_edit()) menu.AddItem(_('&Remove'), callback = lambda: self.on_delete()) menu.AddSep() actions.menu(self, self.data, menu) self._menu = menu return menu
def OnMenu(self, e = None): if e: e.Skip() menu = self.Parent.menu account = self.account menu.RemoveAllItems() menu.AddItem(_('&Edit'), callback = lambda: profile.account_manager.edit(account)) menu.AddSep() if account.connection: actions.menu(self, account.connection, menu) actions.menu(self, account, menu) else: menu.AddItem(_('&Connect'), callback = lambda: account.connect()) menu.PopupMenu()
def OnMenu(self, e=None): if e: e.Skip() menu = self.Parent.menu account = self.account menu.RemoveAllItems() menu.AddItem(_('&Edit'), callback=lambda: profile.account_manager.edit(account)) menu.AddSep() if account.connection: actions.menu(self, account.connection, menu) actions.menu(self, account, menu) else: menu.AddItem(_('&Connect'), callback=lambda: account.connect()) menu.PopupMenu()
def im_account_menu(parent, menu, account): 'Builds a menu for an IM account.' menu.RemoveAllItems() # Sign On / Sign Off if account.connected: menu.AddItem(_('&Sign Off'), callback = account.disconnect) else: menu.AddItem(_('&Sign On'), callback = account.connect) # Edit Account menu.AddItem(_('&Edit Account...'), callback = lambda: profile.account_manager.edit(account)) # if connected, append more action menu items if account.connected: menu.AddSep() # grab actions for the connection (ignoring Connect and Disconnect methods, since # we already have "Sign On/Off" above) actions.menu(parent, account.connection, menu, filter = lambda func: func.__name__ not in ('Disconnect', 'Connect')) actions.menu(parent, account, menu)
def OnRightUp(self, event): """ Generate and open menu on right click """ if self.Selection >= 0: # populate the popup menu with actions self.menu.RemoveAllItems() acct = self.active[self.Selection] if hasattr(getattr(acct, 'menu_actions', None), '__call__'): acct.menu_actions(self.menu) elif isinstance(acct, EmailAccount): #HAX: an ugly hack until Email-specific actions are removed from EmailAccount. actions.menu(wx.FindWindowByName('Buddy List'), acct, menu = self.menu, search_bases = False, cls = EmailAccount) else: actions.menu(wx.FindWindowByName('Buddy List'), acct, menu = self.menu) self.menu.AddSep() # if self.prefkey is not None: # unlockitem = self.menu.AddCheckItem(_('Allow Rearrange'), callback = self.ToggleOrderLock) # unlockitem.Check(self.unlocked) self.menu.PopupMenu()
def update_menu(self, event=None): self._menu.RemoveAllItems() actions.menu(wx.FindWindowByName('Buddy List'), self.acct, cls = type(self.acct), menu = self._menu)
def update_menu(self, event=None): from common.emailaccount import EmailAccount self._menu.RemoveAllItems() actions.menu(wx.FindWindowByName('Buddy List'), self.acct, cls = EmailAccount, search_bases = False, menu = self._menu)
def update_menu(self, event=None): self._menu.RemoveAllItems() actions.menu(wx.FindWindowByName('Buddy List'), self.acct, cls=type(self.acct), menu=self._menu)