def create_menu(self, menu, menu_options):
     for option_text, option_icon, option_action, option_id in menu_options[::
                                                                            -1]:
         if option_icon:  # has icon
             if not callable(option_icon):
                 option_icon = self.prep_menu_icon(option_icon)
         if option_text == "-":  # separator
             win32gui.InsertMenu(menu, 0, win32con.MF_BYPOSITION,
                                 win32con.MF_SEPARATOR, None)
         elif option_id in self.menu_actions_by_id:  # normal item
             checked = False
             if callable(option_icon):  # checkbox item
                 checked = option_icon()
                 option_icon = None  # no icon
             if checked:
                 item, extras = win32gui_struct.PackMENUITEMINFO(
                     text=option_text,
                     fState=win32con.MFS_CHECKED,
                     wID=option_id)
             else:
                 item, extras = win32gui_struct.PackMENUITEMINFO(
                     text=option_text, hbmpItem=option_icon, wID=option_id)
             win32gui.InsertMenuItem(menu, 0, 1, item)
         else:  # submenu
             submenu = win32gui.CreatePopupMenu()
             self.create_menu(submenu, option_action)
             item, extras = win32gui_struct.PackMENUITEMINFO(
                 text=option_text, hbmpItem=option_icon, hSubMenu=submenu)
             win32gui.InsertMenuItem(menu, 0, 1, item)
Esempio n. 2
0
    def QueryContextMenu(self, hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags):
        s = LoadString(IDS_DISPLAY);
        win32gui.InsertMenu(hMenu, indexMenu, win32con.MF_BYPOSITION, idCmdFirst + MENUVERB_DISPLAY, s);
        indexMenu += 1
        # other verbs could go here...

        # indicate that we added one verb.
        return 1
Esempio n. 3
0
    def create_menu(self, menu):
        #        option_icon = self.prep_menu_icon(option_icon)
        item, extras = win32gui_struct.PackMENUITEMINFO(
            text=base.STR_EXIT,
            hbmpItem=None,
            wID=_ID_QUIT)

        win32gui.InsertMenuItem(menu, 0, 1, item)

        win32gui.InsertMenu(menu, 0, win32con.MF_BYPOSITION,
                            win32con.MF_SEPARATOR, None)

        win32gui.InsertMenu(menu, 0,
                            (win32con.MF_POPUP | win32con.MF_BYPOSITION),
                            self.notices_menu, base.STR_NOTICES_MENU)

        win32gui.InsertMenu(menu, 0, win32con.MF_BYPOSITION,
                            win32con.MF_SEPARATOR, None)

        win32gui.InsertMenu(menu, 0,
                            win32con.MF_POPUP | win32con.MF_BYPOSITION,
                            self.status_menu, base.STR_STATUS_MENU)

        win32gui.InsertMenu(menu, 0, win32con.MF_BYPOSITION,
                            win32con.MF_SEPARATOR, None)

        # item, extras = win32gui_struct.PackMENUITEMINFO(
        #     text=STR_OPEN_CONSOLE,
        #     hbmpItem=None,
        #     wID=_ID_OPEN_CONSOLE)
        # win32gui.InsertMenuItem(menu, 0, 1, item)

        item, extras = win32gui_struct.PackMENUITEMINFO(
            text=base.STR_OPEN_FOLDER,
            hbmpItem=None,
            wID=_ID_OPEN_FOLDER)

        win32gui.InsertMenuItem(menu, 0, 1, item)

        item, extras = win32gui_struct.PackMENUITEMINFO(
            text=base.STR_OPEN_WEBFRONT,
            hbmpItem=None,
            wID=_ID_OPEN_WEBFRONT)

        win32gui.InsertMenuItem(menu, 0, 1, item)
Esempio n. 4
0
    def create_menu(self, menu, menu_options):
        for option_text, option_icon, option_action, option_id in menu_options[::
                                                                               -1]:
            if option_icon:
                option_icon = self.prep_menu_icon(option_icon)

            if option_text == "-":
                win32gui.InsertMenu(menu, 0, win32con.MF_BYPOSITION,
                                    win32con.MF_SEPARATOR, None)
            else:
                item, extras = win32gui_struct.PackMENUITEMINFO(
                    text=option_text, hbmpItem=option_icon, wID=option_id)
                win32gui.InsertMenuItem(menu, 0, 1, item)
Esempio n. 5
0
    def show_menu(self):
        menu = win32gui.CreatePopupMenu()
        count = 0

        for count, (option_text, option_id) in enumerate(self.menu_entries):
            win32gui.AppendMenu(
                menu,
                win32con.MF_STRING | win32con.MF_GRAYED | win32con.MF_DISABLED,
                option_id, option_text)

        win32gui.InsertMenu(menu, count + 1, win32con.MF_BYPOSITION,
                            win32con.MF_SEPARATOR, None)
        win32gui.InsertMenuItem(
            menu, count + 2, 1,
            win32gui_struct.PackMENUITEMINFO(
                text="Quit", wID=0, hbmpItem=win32con.HBMMENU_MBAR_CLOSE)[0])

        pos = win32gui.GetCursorPos()
        # See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/menus_0hdi.asp
        win32gui.SetForegroundWindow(self.hwnd)
        win32gui.TrackPopupMenu(menu, win32con.TPM_LEFTALIGN, pos[0], pos[1],
                                0, self.hwnd, None)
        win32gui.PostMessage(self.hwnd, win32con.WM_NULL, 0, 0)