[pywin32-checkins] pywin32/win32/Lib win32gui_struct.py,1.5,1.6
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Mark H. <mha...@us...> - 2005-01-20 06:49:17
|
Update of /cvsroot/pywin32/pywin32/win32/Lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8294 Modified Files: win32gui_struct.py Log Message: Add MENUINFO structures Index: win32gui_struct.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/Lib/win32gui_struct.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** win32gui_struct.py 26 May 2004 08:52:25 -0000 1.5 --- win32gui_struct.py 20 Jan 2005 06:49:08 -0000 1.6 *************** *** 142,147 **** win32con.MIIM_DATA | win32con.MIIM_FTYPE | \ win32con.MIIM_ID | win32con.MIIM_STATE | \ ! win32con.MIIM_STRING | win32con.MIIM_SUBMENU | \ ! win32con.MIIM_TYPE if mask & win32con.MIIM_STRING: --- 142,147 ---- win32con.MIIM_DATA | win32con.MIIM_FTYPE | \ win32con.MIIM_ID | win32con.MIIM_STATE | \ ! win32con.MIIM_STRING | win32con.MIIM_SUBMENU ! # Note: No MIIM_TYPE - this screws win2k/98. if mask & win32con.MIIM_STRING: *************** *** 169,172 **** --- 169,234 ---- return array.array("c", buf), extra + # MENUINFO struct + menuinfo_fmt = '7i' + + def PackMENUINFO(dwStyle = None, cyMax = None, + hbrBack = None, dwContextHelpID = None, dwMenuData = None, + fMask = 0): + if dwStyle is None: dwStyle = 0 + else: fMask |= win32con.MIM_STYLE + if cyMax is None: cyMax = 0 + else: fMask |= win32con.MIM_MAXHEIGHT + if hbrBack is None: hbrBack = 0 + else: fMask |= win32con.MIM_BACKGROUND + if dwContextHelpID is None: dwContextHelpID = 0 + else: fMask |= win32con.MIM_HELPID + if dwMenuData is None: dwMenuData = 0 + else: fMask |= win32con.MIM_MENUDATA + # Create the struct. + item = struct.pack( + menuinfo_fmt, + struct.calcsize(menuinfo_fmt), # cbSize + fMask, + dwStyle, + cyMax, + hbrBack, + dwContextHelpID, + dwMenuData) + return array.array("c", item) + + def UnpackMENUINFO(s): + (cb, + fMask, + dwStyle, + cyMax, + hbrBack, + dwContextHelpID, + dwMenuData) = struct.unpack(menuinfo_fmt, s) + assert cb==len(s) + if fMask & win32con.MIM_STYLE==0: dwStyle = None + if fMask & win32con.MIM_MAXHEIGHT==0: cyMax = None + if fMask & win32con.MIM_BACKGROUND==0: hbrBack = None + if fMask & win32con.MIM_HELPID==0: dwContextHelpID = None + if fMask & win32con.MIM_MENUDATA==0: dwMenuData = None + return dwStyle, cyMax, hbrBack, dwContextHelpID, dwMenuData + + def EmptyMENUINFO(mask = None): + if mask is None: + mask = win32con.MIM_STYLE | win32con.MIM_MAXHEIGHT| \ + win32con.MIM_BACKGROUND | win32con.MIM_HELPID | \ + win32con.MIM_MENUDATA + + buf = struct.pack( + menuinfo_fmt, + struct.calcsize(menuinfo_fmt), # cbSize + mask, + 0, #dwStyle + 0, #cyMax + 0, #hbrBack, + 0, #dwContextHelpID, + 0, #dwMenuData, + ) + return array.array("c", buf) + ########################################################################## # *************** *** 406,410 **** if not (mask & commctrl.LVCF_FMT): fmt = None if not (mask & commctrl.LVCF_WIDTH): cx = None ! if not (mask & commctrl.LVCF_TEXT): text_addr = test_size = None if not (mask & commctrl.LVCF_SUBITEM): subItem = None if not (mask & commctrl.LVCF_IMAGE): image = None --- 468,472 ---- if not (mask & commctrl.LVCF_FMT): fmt = None if not (mask & commctrl.LVCF_WIDTH): cx = None ! if not (mask & commctrl.LVCF_TEXT): text_addr = text_size = None if not (mask & commctrl.LVCF_SUBITEM): subItem = None if not (mask & commctrl.LVCF_IMAGE): image = None |