def menu_item(self, item): tooltip = None submenu = None function = None args = () if isstr(item): text = item else: length = len(item) text = item[0] if length >= 2: if islist(item[1]): submenu = item[1] if length == 3: tooltip = item[2] elif isstr(item[1]): tooltip = item[1] elif iscallable(item[1]): function = item[1] if length >= 3: if istuple(item[2]): args = item[2] if length >= 4: tooltip = item[3] else: tooltip = item[2] if text == '-': menu_item_gtk = GtkSeparatorMenuItem() return menu_item_gtk if self.regex.ignore(text): return None text = wrap(self.regex.alias(text), self.menu_wrap) menu_item_gtk = GtkMenuItem(text) if tooltip != None and not self.regex.ignore(tooltip): tooltip = self.regex.alias(tooltip) tooltip = wrap(tooltip, self.tooltip_wrap) tooltip = self.markup_escape(tooltip) menu_item_gtk.set_tooltip_markup(tooltip) if submenu != None: menu_item_gtk.set_submenu(self.menu(submenu)) if function != None: menu_item_gtk.connect('activate', lambda g, f=function, a=args: IdleAdd(f,*a)) return menu_item_gtk
def tooltip(self, markup=None): if markup == None: return self.tooltip_markup if self.regex.ignore(markup): return elif self.icon_gtk == None: self.icon_init() markup = self.regex.alias(markup) markup = wrap(markup, self.icon_tooltip_wrap) markup = self.markup_escape(markup) self.tooltip_markup = markup self.icon_gtk.set_tooltip_markup(markup)