Exemple #1
0
    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
Exemple #2
0
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
Exemple #4
0
    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()
Exemple #5
0
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)
Exemple #7
0
 def add_separator(self):
     sep = SeparatorMenuItem()
     sep.show()
     self.append(sep)