def createMenuFile(self): menuFile = MenuItem('_File') menuFilePop = Menu() self.menuNew = ImageMenuItem(STOCK_NEW) self.menuOpen = ImageMenuItem(STOCK_OPEN) self.menuClose = ImageMenuItem(STOCK_CLOSE) self.menuSave = ImageMenuItem(STOCK_SAVE) self.menuSaveAs = ImageMenuItem(STOCK_SAVE_AS) self.menuConvert = ImageMenuItem(STOCK_CONVERT) self.menuQuit = ImageMenuItem(STOCK_QUIT) menuFilePop.append(self.menuNew) menuFilePop.append(self.menuOpen) menuFilePop.append(self.menuClose) menuFilePop.append(SeparatorMenuItem()) menuFilePop.append(self.menuSave) menuFilePop.append(self.menuSaveAs) menuFilePop.append(self.menuConvert) menuFilePop.append(SeparatorMenuItem()) menuFilePop.append(self.menuQuit) menuFile.set_submenu(menuFilePop) return menuFile
def menubar_osx(gtkui, osxapp): main_builder = gtkui.mainwindow.get_builder() menubar = main_builder.get_object('menubar') group = accel_groups_from_object(gtkui.mainwindow.window)[0] config = ConfigManager('gtkui.conf') # NOTE: accel maps doesn't work with glade file format # because of libglade not setting MenuItem accel groups # That's why we remove / set accelerators by hand... (dirty) # Clean solution: migrate glades files to gtkbuilder format file_menu = main_builder.get_object('menu_file').get_submenu() file_items = file_menu.get_children() accel_meta(file_items[0], group, 'o') accel_meta(file_items[1], group, 'n') quit_all_item = file_items[3] accel_swap( quit_all_item, group, 'q', SHIFT_MASK | CONTROL_MASK, 'q', SHIFT_MASK | META_MASK, ) for item in range(2, len(file_items)): # remove quits file_menu.remove(file_items[item]) menu_widget = main_builder.get_object('menu_edit') edit_menu = menu_widget.get_submenu() edit_items = edit_menu.get_children() pref_item = edit_items[0] accel_swap(pref_item, group, 'p', CONTROL_MASK, ',', META_MASK) edit_menu.remove(pref_item) conn_item = edit_items[1] accel_meta(conn_item, group, 'm') edit_menu.remove(conn_item) menubar.remove(menu_widget) help_menu = main_builder.get_object('menu_help').get_submenu() help_items = help_menu.get_children() about_item = help_items[4] help_menu.remove(about_item) help_menu.remove(help_items[3]) # separator menubar.hide() osxapp.set_menu_bar(menubar) # populate app menu osxapp.insert_app_menu_item(about_item, 0) osxapp.insert_app_menu_item(SeparatorMenuItem(), 1) osxapp.insert_app_menu_item(pref_item, 2) if not config['standalone']: osxapp.insert_app_menu_item(conn_item, 3) if quit_all_item.get_visible(): osxapp.insert_app_menu_item(SeparatorMenuItem(), 4) osxapp.insert_app_menu_item(quit_all_item, 5)
def __generate_menu(self, menu): if not self.__items: return False from gtk import SeparatorMenuItem menu.insert(SeparatorMenuItem(), 0) for menuitem in self.__items: if menuitem.props.name == "AboutMenuitem": menu.append(SeparatorMenuItem()) menu.append(menuitem) menuitem.show() else: menu.prepend(menuitem) menuitem.show() menu.show_all() return False
def generate_menu(self): """Generates the checklist menu for all the tabs and attaches it""" menu = Menu() # Create 'All' menuitem and a separator menuitem = CheckMenuItem(self.translate_tabs['All'], True) menuitem.set_name('All') all_tabs = True for key in self.tabs: if not self.tabs[key].is_visible: all_tabs = False break menuitem.set_active(all_tabs) menuitem.connect('toggled', self._on_menuitem_toggled) menu.append(menuitem) menuitem = SeparatorMenuItem() menu.append(menuitem) # Create a list in order of tabs to create menu menuitem_list = [] for tab_name in self.tabs: menuitem_list.append((self.tabs[tab_name].weight, tab_name)) menuitem_list.sort() for pos, name in menuitem_list: menuitem = CheckMenuItem(self.translate_tabs[name], True) menuitem.set_name(name) menuitem.set_active(self.tabs[name].is_visible) menuitem.connect('toggled', self._on_menuitem_toggled) menu.append(menuitem) self.menu_tabs.set_submenu(menu) self.menu_tabs.show_all()
def build_menu_radio_list( value_list, callback, pref_value=None, suffix=None, show_notset=False, notset_label='∞', notset_lessthan=0, show_other=False, ): """Build a menu with radio menu items from a list and connect them to the callback. Params: value_list [list]: List of values to build into a menu. callback (function): The function to call when menu item is clicked. pref_value (int): A preferred value to insert into value_list suffix (str): Append a suffix the the menu items in value_list. show_notset (bool): Show the unlimited menu item. notset_label (str): The text for the unlimited menu item. notset_lessthan (int): Activates the unlimited menu item if pref_value is less than this. show_other (bool): Show the `Other` menu item. The pref_value is what you would like to test for the default active radio item. Returns: gtk.Menu: The menu radio """ menu = Menu() group = None if pref_value > -1 and pref_value not in value_list: value_list.pop() value_list.append(pref_value) for value in sorted(value_list): item_text = str(value) if suffix: item_text += ' ' + suffix menuitem = RadioMenuItem(group=group, label=item_text) group = menuitem if pref_value and value == pref_value: menuitem.set_active(True) if callback: menuitem.connect('toggled', callback) menu.append(menuitem) if show_notset: menuitem = RadioMenuItem(group=group, label=notset_label) menuitem.set_name('unlimited') if pref_value and pref_value < notset_lessthan: menuitem.set_active(True) menuitem.connect('toggled', callback) menu.append(menuitem) if show_other: menuitem = SeparatorMenuItem() menu.append(menuitem) menuitem = MenuItem(_('Other...')) menuitem.set_name('other') menuitem.connect('activate', callback) menu.append(menuitem) return menu
def add_separator(self): sep = SeparatorMenuItem() sep.show() self.append(sep)