예제 #1
0
def populate_menu():
    short_appname = app.config.get(prefs.SHORT_APP_NAME)

    menubar = menus.get_menu()

    # Application menu
    miroMenuItems = [
        extract_menu_item(menubar, "About"),
        menus.Separator(),
        extract_menu_item(menubar, "Donate")
    ]

    if not appstore_edition():
        miroMenuItems += [
            extract_menu_item(menubar, "CheckVersion")
        ]

    miroMenuItems += [
        menus.Separator(),
        extract_menu_item(menubar, "EditPreferences"),
        menus.Separator(),
        menus.Menu(_("Services"), "ServicesMenu", []),
        menus.Separator(),
        menus.MenuItem(_("Hide %(appname)s", {"appname": short_appname}),
                       "HideMiro", menus.Shortcut("h", MOD)),
        menus.MenuItem(_("Hide Others"), "HideOthers", 
                       menus.Shortcut("h", MOD, ALT)),
        menus.MenuItem(_("Show All"), "ShowAll"),
        menus.Separator(),
        extract_menu_item(menubar, "Quit")
    ]
    miroMenu = menus.Menu(short_appname, "Miro", miroMenuItems)
    miroMenu.get("EditPreferences").label = _("Preferences...")
    miroMenu.get("EditPreferences").shortcuts = (menus.Shortcut(",", MOD),)
    miroMenu.get("Quit").label = _("Quit %(appname)s", 
                                   {"appname": short_appname})

    # File menu
    closeWinItem = menus.MenuItem(_("Close Window"), "CloseWindow", 
                                  menus.Shortcut("w", MOD))
    menubar.get("FileMenu").append(closeWinItem)

    # Edit menu
    editMenuItems = [
        menus.MenuItem(_("Cut"), "Cut", menus.Shortcut("x", MOD)),
        menus.MenuItem(_("Copy"), "Copy", menus.Shortcut("c", MOD)),
        menus.MenuItem(_("Paste"), "Paste", menus.Shortcut("v", MOD)),
        menus.MenuItem(_("Delete"), "Delete"),
        menus.Separator(),
        menus.MenuItem(_("Select All"), "SelectAll", menus.Shortcut("a", MOD))
    ]
    editMenu = menus.Menu(_("Edit"), "Edit", editMenuItems)
    menubar.insert(1, editMenu)

    # Playback menu
    presentMenuItems = [
        menus.MenuItem(_("Present Half Size"), "PresentHalfSize", 
                       menus.Shortcut("0", MOD),
                       groups=["PlayingVideo", "PlayableVideosSelected"]),
        menus.MenuItem(_("Present Actual Size"), "PresentActualSize", 
                       menus.Shortcut("1", MOD),
                       groups=["PlayingVideo", "PlayableVideosSelected"]),
        menus.MenuItem(_("Present Double Size"), "PresentDoubleSize", 
                       menus.Shortcut("2", MOD),
                       groups=["PlayingVideo", "PlayableVideosSelected"]),
    ]
    playback_menu = menubar.get("PlaybackMenu")
    subtitlesMenu = playback_menu.get("SubtitlesMenu")
    audioMenu = playback_menu.get("AudioTrackMenu")
    playback_menu.remove("SubtitlesMenu")
    playback_menu.remove("AudioTrackMenu")
    presentMenu = menus.Menu(_("Present Video"), "Present", presentMenuItems)
    playback_menu.append(presentMenu)
    playback_menu.append(audioMenu)
    playback_menu.append(subtitlesMenu)
    fullscreen_menu_item = playback_menu.get("Fullscreen")
    fullscreen_menu_item.shortcuts = [ menus.Shortcut("f", MOD)]

    # Window menu
    windowMenuItems = [
        menus.MenuItem(_("Zoom"), "Zoom"),
        menus.MenuItem(_("Minimize"), "Minimize", menus.Shortcut("m", MOD)),
        menus.Separator(),
        menus.MenuItem(_("Main Window"), "ShowMain", 
                       menus.Shortcut("M", MOD, SHIFT)),
        menus.Separator(),
        menus.MenuItem(_("Bring All to Front"), "BringAllToFront"),
    ]
    windowMenu = menus.Menu(_("Window"), "Window", windowMenuItems)
    menubar.insert(6, windowMenu)

    # Help Menu
    helpItem = menubar.get("Help")
    helpItem.label = _("%(appname)s Help", {"appname": short_appname})
    helpItem.shortcuts = (menus.Shortcut("?", MOD),)

    # Now populate the main menu bar
    main_menu = NSApp().mainMenu()
    # XXX: should be using the tag to prevent interface and locale breakages
    appMenu = main_menu.itemAtIndex_(0).submenu()
    populate_single_menu(appMenu, miroMenu)
    servicesMenuItem = appMenu.itemWithTitle_(_("Services"))
    NSApp().setServicesMenu_(servicesMenuItem)

    for menu in menubar.menuitems:
        nsmenu = NSMenu.alloc().init()
        nsmenu.setTitle_(menu.label.replace("_", ""))
        populate_single_menu(nsmenu, menu)
        nsmenuitem = make_menu_item(menu)
        nsmenuitem.setSubmenu_(nsmenu)
        main_menu.addItem_(nsmenuitem)

    # we do this to get groups correct
    menubar.insert(0, miroMenu)

    menus.osx_menu_structure = menubar
    menus.osx_action_groups = menus.generate_action_groups(menubar)
    
    # Keep the updated structure around
    global _menu_structure
    _menu_structure = menubar
예제 #2
0
    def _modify_initial_menus(self):
        short_appname = app.config.get(prefs.SHORT_APP_NAME)
        # Application menu
        miroMenuItems = [self._extract_menu_item("About"), Separator(), self._extract_menu_item("Donate")]

        if not appstore_edition():
            miroMenuItems += [self._extract_menu_item("CheckVersion")]

        miroMenuItems += [
            Separator(),
            self._extract_menu_item("EditPreferences"),
            Separator(),
            Menu(_("Services"), "ServicesMenu", []),
            Separator(),
            MenuItem(_("Hide %(appname)s", {"appname": short_appname}), "HideMiro", Shortcut("h", MOD)),
            MenuItem(_("Hide Others"), "HideOthers", Shortcut("h", MOD, keyboard.ALT)),
            MenuItem(_("Show All"), "ShowAll"),
            Separator(),
            self._extract_menu_item("Quit"),
        ]
        for item in miroMenuItems:
            self._app_menu.append(item)
        self._app_menu.find("EditPreferences").set_label(_("Preferences..."))
        self._app_menu.find("EditPreferences")._change_shortcut(Shortcut(",", MOD))
        self._app_menu.find("Quit").set_label(_("Quit %(appname)s", {"appname": short_appname}))

        # File menu
        closeWinItem = MenuItem(_("Close Window"), "CloseWindow", Shortcut("w", MOD))
        self.find("FileMenu").append(closeWinItem)

        # Edit menu
        editMenuItems = [
            MenuItem(_("Cut"), "Cut", Shortcut("x", MOD)),
            MenuItem(_("Copy"), "Copy", Shortcut("c", MOD)),
            MenuItem(_("Paste"), "Paste", Shortcut("v", MOD)),
            MenuItem(_("Delete"), "Delete"),
            Separator(),
            MenuItem(_("Select All"), "SelectAll", Shortcut("a", MOD)),
        ]
        editMenu = Menu(_("Edit"), "Edit", editMenuItems)
        self.insert(2, editMenu)

        # Playback menu
        present_menu_items = [
            MenuItem(_("Present Half Size"), "PresentHalfSize", Shortcut("0", MOD)),
            MenuItem(_("Present Actual Size"), "PresentActualSize", Shortcut("1", MOD)),
            MenuItem(_("Present Double Size"), "PresentDoubleSize", Shortcut("2", MOD)),
        ]
        self.present_menu = Menu(_("Present Video"), "Present", present_menu_items)
        playback_menu = self.find("PlaybackMenu")
        playback_menu.insert(playback_menu.index("AudioTrackMenu"), self.present_menu)

        # Window menu
        windowMenuItems = [
            MenuItem(_("Zoom"), "Zoom"),
            MenuItem(_("Minimize"), "Minimize", Shortcut("m", MOD)),
            Separator(),
            MenuItem(_("Main Window"), "ShowMain", Shortcut("M", MOD, keyboard.SHIFT)),
            Separator(),
            MenuItem(_("Bring All to Front"), "BringAllToFront"),
        ]
        windowMenu = Menu(_("Window"), "Window", windowMenuItems)
        self.insert(self.index("HelpMenu"), windowMenu)

        # Help Menu
        helpItem = self.find("Help")
        helpItem.set_label(_("%(appname)s Help", {"appname": short_appname}))
        helpItem._change_shortcut(Shortcut("?", MOD))

        self._update_present_menu()
        self._connect_to_signals()
예제 #3
0
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
#
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.

from miro.plat.appstore import appstore_edition

if appstore_edition():
    AUTOUPDATE = False
else:
    AUTOUPDATE = True
FRONTEND = "None"
PLATFORMNAME = "osx"
예제 #4
0
    def _modify_initial_menus(self):
        short_appname = app.config.get(prefs.SHORT_APP_NAME)
        # Application menu
        miroMenuItems = [
            self._extract_menu_item("About"),
            Separator(),
            self._extract_menu_item("Donate")
        ]

        if not appstore_edition():
            miroMenuItems += [self._extract_menu_item("CheckVersion")]

        miroMenuItems += [
            Separator(),
            self._extract_menu_item("EditPreferences"),
            Separator(),
            Menu(_("Services"), "ServicesMenu", []),
            Separator(),
            MenuItem(_("Hide %(appname)s", {"appname": short_appname}),
                     "HideMiro", Shortcut("h", MOD)),
            MenuItem(_("Hide Others"), "HideOthers",
                     Shortcut("h", MOD, keyboard.ALT)),
            MenuItem(_("Show All"), "ShowAll"),
            Separator(),
            self._extract_menu_item("Quit")
        ]
        for item in miroMenuItems:
            self._app_menu.append(item)
        self._app_menu.find("EditPreferences").set_label(_("Preferences..."))
        self._app_menu.find("EditPreferences")._change_shortcut(
            Shortcut(",", MOD))
        self._app_menu.find("Quit").set_label(
            _("Quit %(appname)s", {"appname": short_appname}))

        # File menu
        closeWinItem = MenuItem(_("Close Window"), "CloseWindow",
                                Shortcut("w", MOD))
        self.find("FileMenu").append(closeWinItem)

        # Edit menu
        editMenuItems = [
            MenuItem(_("Cut"), "Cut", Shortcut("x", MOD)),
            MenuItem(_("Copy"), "Copy", Shortcut("c", MOD)),
            MenuItem(_("Paste"), "Paste", Shortcut("v", MOD)),
            MenuItem(_("Delete"), "Delete"),
            Separator(),
            MenuItem(_("Select All"), "SelectAll", Shortcut("a", MOD))
        ]
        editMenu = Menu(_("Edit"), "Edit", editMenuItems)
        self.insert(2, editMenu)

        # Playback menu
        present_menu_items = [
            MenuItem(_("Present Half Size"), "PresentHalfSize",
                     Shortcut("0", MOD)),
            MenuItem(_("Present Actual Size"), "PresentActualSize",
                     Shortcut("1", MOD)),
            MenuItem(_("Present Double Size"), "PresentDoubleSize",
                     Shortcut("2", MOD)),
        ]
        self.present_menu = Menu(_("Present Video"), "Present",
                                 present_menu_items)
        playback_menu = self.find("PlaybackMenu")
        playback_menu.insert(playback_menu.index('AudioTrackMenu'),
                             self.present_menu)

        # Window menu
        windowMenuItems = [
            MenuItem(_("Zoom"), "Zoom"),
            MenuItem(_("Minimize"), "Minimize", Shortcut("m", MOD)),
            Separator(),
            MenuItem(_("Main Window"), "ShowMain",
                     Shortcut("M", MOD, keyboard.SHIFT)),
            Separator(),
            MenuItem(_("Bring All to Front"), "BringAllToFront"),
        ]
        windowMenu = Menu(_("Window"), "Window", windowMenuItems)
        self.insert(self.index("HelpMenu"), windowMenu)

        # Help Menu
        helpItem = self.find("Help")
        helpItem.set_label(_("%(appname)s Help", {"appname": short_appname}))
        helpItem._change_shortcut(Shortcut("?", MOD))

        self._update_present_menu()
        self._connect_to_signals()
예제 #5
0
def populate_menu():
    short_appname = app.config.get(prefs.SHORT_APP_NAME)

    menubar = menus.get_menu()

    # Application menu
    miroMenuItems = [
        extract_menu_item(menubar, "About"),
        menus.Separator(),
        extract_menu_item(menubar, "Donate")
    ]

    if not appstore_edition():
        miroMenuItems += [
            extract_menu_item(menubar, "CheckVersion")
        ]

    miroMenuItems += [
        menus.Separator(),
        extract_menu_item(menubar, "EditPreferences"),
        menus.Separator(),
        menus.Menu(_("Services"), "ServicesMenu", []),
        menus.Separator(),
        menus.MenuItem(_("Hide %(appname)s", {"appname": short_appname}),
                       "HideMiro", menus.Shortcut("h", MOD)),
        menus.MenuItem(_("Hide Others"), "HideOthers", 
                       menus.Shortcut("h", MOD, ALT)),
        menus.MenuItem(_("Show All"), "ShowAll"),
        menus.Separator(),
        extract_menu_item(menubar, "Quit")
    ]
    miroMenu = menus.Menu(short_appname, "Miro", miroMenuItems)
    miroMenu.get("EditPreferences").label = _("Preferences...")
    miroMenu.get("EditPreferences").shortcuts = (menus.Shortcut(",", MOD),)
    miroMenu.get("Quit").label = _("Quit %(appname)s", 
                                   {"appname": short_appname})

    # File menu
    closeWinItem = menus.MenuItem(_("Close Window"), "CloseWindow", 
                                  menus.Shortcut("w", MOD))
    menubar.get("FileMenu").append(closeWinItem)

    # Edit menu
    editMenuItems = [
        menus.MenuItem(_("Cut"), "Cut", menus.Shortcut("x", MOD)),
        menus.MenuItem(_("Copy"), "Copy", menus.Shortcut("c", MOD)),
        menus.MenuItem(_("Paste"), "Paste", menus.Shortcut("v", MOD)),
        menus.MenuItem(_("Delete"), "Delete"),
        menus.Separator(),
        menus.MenuItem(_("Select All"), "SelectAll", menus.Shortcut("a", MOD))
    ]
    editMenu = menus.Menu(_("Edit"), "Edit", editMenuItems)
    menubar.insert(1, editMenu)

    # Playback menu
    presentMenuItems = [
        menus.MenuItem(_("Present Half Size"), "PresentHalfSize", 
                       menus.Shortcut("0", MOD),
                       groups=["PlayingVideo", "PlayableVideosSelected"]),
        menus.MenuItem(_("Present Actual Size"), "PresentActualSize", 
                       menus.Shortcut("1", MOD),
                       groups=["PlayingVideo", "PlayableVideosSelected"]),
        menus.MenuItem(_("Present Double Size"), "PresentDoubleSize", 
                       menus.Shortcut("2", MOD),
                       groups=["PlayingVideo", "PlayableVideosSelected"]),
    ]
    playback_menu = menubar.get("PlaybackMenu")
    subtitlesMenu = playback_menu.get("SubtitlesMenu")
    playback_menu.remove("SubtitlesMenu")
    presentMenu = menus.Menu(_("Present Video"), "Present", presentMenuItems)
    playback_menu.append(presentMenu)
    playback_menu.append(subtitlesMenu)
    fullscreen_menu_item = playback_menu.get("Fullscreen")
    fullscreen_menu_item.shortcuts = [ menus.Shortcut("f", MOD)]

    # Window menu
    windowMenuItems = [
        menus.MenuItem(_("Zoom"), "Zoom"),
        menus.MenuItem(_("Minimize"), "Minimize", menus.Shortcut("m", MOD)),
        menus.Separator(),
        menus.MenuItem(_("Main Window"), "ShowMain", 
                       menus.Shortcut("M", MOD, SHIFT)),
        menus.Separator(),
        menus.MenuItem(_("Bring All to Front"), "BringAllToFront"),
    ]
    windowMenu = menus.Menu(_("Window"), "Window", windowMenuItems)
    menubar.insert(6, windowMenu)

    # Help Menu
    helpItem = menubar.get("Help")
    helpItem.label = _("%(appname)s Help", {"appname": short_appname})
    helpItem.shortcuts = (menus.Shortcut("?", MOD),)

    # Now populate the main menu bar
    main_menu = NSApp().mainMenu()
    # XXX: should be using the tag to prevent interface and locale breakages
    appMenu = main_menu.itemAtIndex_(0).submenu()
    populate_single_menu(appMenu, miroMenu)
    servicesMenuItem = appMenu.itemWithTitle_(_("Services"))
    NSApp().setServicesMenu_(servicesMenuItem)

    for menu in menubar.menuitems:
        nsmenu = NSMenu.alloc().init()
        nsmenu.setTitle_(menu.label.replace("_", ""))
        populate_single_menu(nsmenu, menu)
        nsmenuitem = make_menu_item(menu)
        nsmenuitem.setSubmenu_(nsmenu)
        main_menu.addItem_(nsmenuitem)

    # we do this to get groups correct
    menubar.insert(0, miroMenu)

    menus.osx_menu_structure = menubar
    menus.osx_action_groups = menus.generate_action_groups(menubar)
    
    # Keep the updated structure around
    global _menu_structure
    _menu_structure = menubar