Beispiel #1
0
 def testEmptyMenuItemInfo(self):
     mi = win32gui_struct.EmptyMENUINFO()
     dwStyle, cyMax, hbrBack, dwContextHelpID, dwMenuData = \
         win32gui_struct.UnpackMENUINFO(mi)
     self.failUnlessEqual(dwStyle, 0)
     self.failUnlessEqual(cyMax, 0)
     self.failUnlessEqual(hbrBack, 0)
     self.failUnlessEqual(dwContextHelpID, 0)
     self.failUnlessEqual(dwMenuData, 0)
Beispiel #2
0
 def testEmptyMenuItemInfo(self):
     mi = win32gui_struct.EmptyMENUINFO()
     dwStyle, cyMax, hbrBack, dwContextHelpID, dwMenuData = \
         win32gui_struct.UnpackMENUINFO(mi)
     assert dwStyle == 0
     assert cyMax == 0
     assert hbrBack == 0
     assert dwContextHelpID == 0
     assert dwMenuData == 0
Beispiel #3
0
    def testPackUnpack(self):
        vals = dict(dwStyle=1,
                    cyMax=2,
                    hbrBack=3,
                    dwContextHelpID=4,
                    dwMenuData=5)

        mi = win32gui_struct.PackMENUINFO(**vals)
        dwStyle, cyMax, hbrBack, dwContextHelpID, dwMenuData = \
            win32gui_struct.UnpackMENUINFO(mi)

        self.assertDictEquals(vals,
                              dwStyle=dwStyle,
                              cyMax=cyMax,
                              hbrBack=hbrBack,
                              dwContextHelpID=dwContextHelpID,
                              dwMenuData=dwMenuData)
Beispiel #4
0
    def __init__(self,
                 owner_ctrl,
                 menuhandle,
                 is_main_menu=True,
                 owner_item=None):
        """
        Initialize the class

        * **owner_ctrl** is the Control that owns this menu
        * **menuhandle** is the menu handle of the menu
        * **is_main_menu** we have to track whether it is the main menu
          or a popup menu
        * **owner_item** The item that contains this menu - this will be
          None for the main menu, it will be a MenuItem instance for a
          submenu.
        """
        self.ctrl = owner_ctrl
        self.handle = menuhandle
        self.is_main_menu = is_main_menu
        self.owner_item = owner_item

        self._as_parameter_ = self.handle
        self.accessible = True

        if self.is_main_menu:
            self.ctrl.send_message_timeout(win32defines.WM_INITMENU,
                                           self.handle)

        menu_info = MenuInfo()
        buf = win32gui_struct.EmptyMENUINFO()
        try:
            win32gui.GetMenuInfo(self.handle, buf)
        except win32gui.error:
            self.accessible = False
        else:
            menu_info.dwStyle, menu_info.cyMax, menu_info.hbrBack, menu_info.dwContextHelpID,\
            menu_info.dwMenuData = win32gui_struct.UnpackMENUINFO(buf)

            if menu_info.dwStyle & win32defines.MNS_NOTIFYBYPOS:
                self.COMMAND = win32defines.WM_MENUCOMMAND
            else:
                self.COMMAND = win32defines.WM_COMMAND