def CheckIDLEMenus(self, idle):
if self.bSetMenus: return
self.bSetMenus = 1
submenu = win32ui.CreatePopupMenu()
newitems = idle.GetMenuItems("edit")
flags=win32con.MF_STRING|win32con.MF_ENABLED
for text, event in newitems:
id = bindings.event_to_commands.get(event)
if id is not None:
keyname = pywin.scintilla.view.configManager.get_key_binding( event, ["editor"] )
if keyname is not None:
text = text + "\t" + keyname
submenu.AppendMenu(flags, id, text)
mainMenu = self.GetSharedMenu()
editMenu = mainMenu.GetSubMenu(1)
editMenu.AppendMenu(win32con.MF_SEPARATOR, 0, "")
editMenu.AppendMenu(win32con.MF_STRING | win32con.MF_POPUP | win32con.MF_ENABLED, submenu.GetHandle(), "&Source Code")
python类MF_POPUP的实例源码
def CheckIDLEMenus(self, idle):
if self.bSetMenus: return
self.bSetMenus = 1
submenu = win32ui.CreatePopupMenu()
newitems = idle.GetMenuItems("edit")
flags=win32con.MF_STRING|win32con.MF_ENABLED
for text, event in newitems:
id = bindings.event_to_commands.get(event)
if id is not None:
keyname = pywin.scintilla.view.configManager.get_key_binding( event, ["editor"] )
if keyname is not None:
text = text + "\t" + keyname
submenu.AppendMenu(flags, id, text)
mainMenu = self.GetSharedMenu()
editMenu = mainMenu.GetSubMenu(1)
editMenu.AppendMenu(win32con.MF_SEPARATOR, 0, "")
editMenu.AppendMenu(win32con.MF_STRING | win32con.MF_POPUP | win32con.MF_ENABLED, submenu.GetHandle(), "&Source Code")
def _SetupMenu(self):
menu = win32ui.CreateMenu()
flags=win32con.MF_STRING|win32con.MF_ENABLED
menu.AppendMenu(flags, win32ui.ID_FILE_OPEN, "&Open...")
menu.AppendMenu(flags, win32con.IDCANCEL, "&Close")
mainMenu = win32ui.CreateMenu()
mainMenu.AppendMenu(flags|win32con.MF_POPUP, menu.GetHandle(), "&File")
self.SetMenu(mainMenu)
self.HookCommand(self.OnFileOpen,win32ui.ID_FILE_OPEN)
def _SetupMenu(self):
menu = win32ui.CreateMenu()
flags=win32con.MF_STRING|win32con.MF_ENABLED
menu.AppendMenu(flags, win32ui.ID_FILE_OPEN, "&Open...")
menu.AppendMenu(flags, win32con.IDCANCEL, "&Close")
mainMenu = win32ui.CreateMenu()
mainMenu.AppendMenu(flags|win32con.MF_POPUP, menu.GetHandle(), "&File")
self.SetMenu(mainMenu)
self.HookCommand(self.OnFileOpen,win32ui.ID_FILE_OPEN)
def OnRClick(self,params):
menu = win32ui.CreatePopupMenu()
self.AppendMenu(menu, "&Locate module", "LocateModule")
self.AppendMenu(menu, flags=win32con.MF_SEPARATOR)
self.AppendMenu(menu, "&Undo", "EditUndo")
self.AppendMenu(menu, '&Redo', 'EditRedo')
self.AppendMenu(menu, flags=win32con.MF_SEPARATOR)
self.AppendMenu(menu, 'Cu&t', 'EditCut')
self.AppendMenu(menu, '&Copy', 'EditCopy')
self.AppendMenu(menu, '&Paste', 'EditPaste')
self.AppendMenu(menu, flags=win32con.MF_SEPARATOR)
self.AppendMenu(menu, '&Select all', 'EditSelectAll')
self.AppendMenu(menu, 'View &Whitespace', 'ViewWhitespace', checked=self.SCIGetViewWS())
self.AppendMenu(menu, "&Fixed Font", "ViewFixedFont", checked = self._GetColorizer().bUseFixed)
self.AppendMenu(menu, flags=win32con.MF_SEPARATOR)
self.AppendMenu(menu, "&Goto line...", "GotoLine")
submenu = win32ui.CreatePopupMenu()
newitems = self.idle.GetMenuItems("edit")
for text, event in newitems:
self.AppendMenu(submenu, text, event)
flags=win32con.MF_STRING|win32con.MF_ENABLED|win32con.MF_POPUP
menu.AppendMenu(flags, submenu.GetHandle(), "&Source code")
flags = win32con.TPM_LEFTALIGN|win32con.TPM_LEFTBUTTON|win32con.TPM_RIGHTBUTTON
menu.TrackPopupMenu(params[5], flags, self)
return 0
def _SetupMenu(self):
menu = win32ui.CreateMenu()
flags=win32con.MF_STRING|win32con.MF_ENABLED
menu.AppendMenu(flags, win32ui.ID_FILE_OPEN, "&Open...")
menu.AppendMenu(flags, win32con.IDCANCEL, "&Close")
mainMenu = win32ui.CreateMenu()
mainMenu.AppendMenu(flags|win32con.MF_POPUP, menu.GetHandle(), "&File")
self.SetMenu(mainMenu)
self.HookCommand(self.OnFileOpen,win32ui.ID_FILE_OPEN)
def OnRClick(self,params):
menu = win32ui.CreatePopupMenu()
self.AppendMenu(menu, "&Locate module", "LocateModule")
self.AppendMenu(menu, flags=win32con.MF_SEPARATOR)
self.AppendMenu(menu, "&Undo", "EditUndo")
self.AppendMenu(menu, '&Redo', 'EditRedo')
self.AppendMenu(menu, flags=win32con.MF_SEPARATOR)
self.AppendMenu(menu, 'Cu&t', 'EditCut')
self.AppendMenu(menu, '&Copy', 'EditCopy')
self.AppendMenu(menu, '&Paste', 'EditPaste')
self.AppendMenu(menu, flags=win32con.MF_SEPARATOR)
self.AppendMenu(menu, '&Select all', 'EditSelectAll')
self.AppendMenu(menu, 'View &Whitespace', 'ViewWhitespace', checked=self.SCIGetViewWS())
self.AppendMenu(menu, "&Fixed Font", "ViewFixedFont", checked = self._GetColorizer().bUseFixed)
self.AppendMenu(menu, flags=win32con.MF_SEPARATOR)
self.AppendMenu(menu, "&Goto line...", "GotoLine")
submenu = win32ui.CreatePopupMenu()
newitems = self.idle.GetMenuItems("edit")
for text, event in newitems:
self.AppendMenu(submenu, text, event)
flags=win32con.MF_STRING|win32con.MF_ENABLED|win32con.MF_POPUP
menu.AppendMenu(flags, submenu.GetHandle(), "&Source code")
flags = win32con.TPM_LEFTALIGN|win32con.TPM_LEFTBUTTON|win32con.TPM_RIGHTBUTTON
menu.TrackPopupMenu(params[5], flags, self)
return 0
def _SetupMenu(self):
menu = win32ui.CreateMenu()
flags=win32con.MF_STRING|win32con.MF_ENABLED
menu.AppendMenu(flags, win32ui.ID_FILE_OPEN, "&Open...")
menu.AppendMenu(flags, win32con.IDCANCEL, "&Close")
mainMenu = win32ui.CreateMenu()
mainMenu.AppendMenu(flags|win32con.MF_POPUP, menu.GetHandle(), "&File")
self.SetMenu(mainMenu)
self.HookCommand(self.OnFileOpen,win32ui.ID_FILE_OPEN)
winGuiAuto_bak.py 文件源码
项目:Automation-Framework-for-devices
作者: tok-gogogo
项目源码
文件源码
阅读 23
收藏 0
点赞 0
评论 0
def getMenuInfo(hMenu, uIDItem):
'''Get various info about a menu item.
Arguments:
hMenu The menu in which the item is to be found.
uIDItem The item's index
Returns: Menu item information object. This object is basically
a 'bunch'
(see http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52308).
It will have useful attributes: name, itemCount,
submenu, isChecked, isDisabled, isGreyed, and
isSeperator
Raises:
WinGuiAutoError When the requested menu option isn't found.
Usage example: submenuInfo = getMenuInfo(hMenu, submenu)
hMenu, hMenuItemCount = submenuInfo.submenu, submenuInfo.itemCount'''
# An object to hold the menu info
class MenuInfo(Bunch):
pass
menuInfo = MenuInfo()
# Menu state
menuState = ctypes.windll.user32.GetMenuState(hMenu,
uIDItem,
win32con.MF_BYPOSITION)
if menuState == -1:
raise WinGuiAutoError("No such menu item, hMenu=" +
str(hMenu) +
" uIDItem=" +
str(uIDItem))
menuInfo.isChecked = bool(menuState & win32con.MF_CHECKED)
menuInfo.isDisabled = bool(menuState & win32con.MF_DISABLED)
menuInfo.isGreyed = bool(menuState & win32con.MF_GRAYED)
menuInfo.isSeperator = bool(menuState & win32con.MF_SEPARATOR)
# ... there are more, but these are the ones I'm interested in
# Menu name
menuName = ctypes.c_buffer("\000" * 32)
ctypes.windll.user32.GetMenuStringA(ctypes.c_int(hMenu),
ctypes.c_int(uIDItem),
menuName, ctypes.c_int(len(menuName)),
win32con.MF_BYPOSITION)
menuInfo.name = menuName.value
# Sub menu info
menuInfo.itemCount = menuState >> 8
if bool(menuState & win32con.MF_POPUP):
menuInfo.submenu = ctypes.windll.user32.GetSubMenu(hMenu, uIDItem)
else:
menuInfo.submenu = None
return menuInfo
winGuiAuto.py 文件源码
项目:Automation-Framework-for-devices
作者: tok-gogogo
项目源码
文件源码
阅读 28
收藏 0
点赞 0
评论 0
def getMenuInfo(hMenu, uIDItem):
'''Get various info about a menu item.
Arguments:
hMenu The menu in which the item is to be found.
uIDItem The item's index
Returns: Menu item information object. This object is basically
a 'bunch'
(see http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52308).
It will have useful attributes: name, itemCount,
submenu, isChecked, isDisabled, isGreyed, and
isSeperator
Raises:
WinGuiAutoError When the requested menu option isn't found.
Usage example: submenuInfo = getMenuInfo(hMenu, submenu)
hMenu, hMenuItemCount = submenuInfo.submenu, submenuInfo.itemCount'''
# An object to hold the menu info
class MenuInfo(Bunch):
pass
menuInfo = MenuInfo()
# Menu state
menuState = ctypes.windll.user32.GetMenuState(hMenu,
uIDItem,
win32con.MF_BYPOSITION)
if menuState == -1:
raise WinGuiAutoError("No such menu item, hMenu=" +
str(hMenu) +
" uIDItem=" +
str(uIDItem))
menuInfo.isChecked = bool(menuState & win32con.MF_CHECKED)
menuInfo.isDisabled = bool(menuState & win32con.MF_DISABLED)
menuInfo.isGreyed = bool(menuState & win32con.MF_GRAYED)
menuInfo.isSeperator = bool(menuState & win32con.MF_SEPARATOR)
# ... there are more, but these are the ones I'm interested in
# Menu name
menuName = ctypes.c_buffer("\000" * 32)
ctypes.windll.user32.GetMenuStringA(ctypes.c_int(hMenu),
ctypes.c_int(uIDItem),
menuName, ctypes.c_int(len(menuName)),
win32con.MF_BYPOSITION)
menuInfo.name = menuName.value
# Sub menu info
menuInfo.itemCount = menuState >> 8
if bool(menuState & win32con.MF_POPUP):
menuInfo.submenu = ctypes.windll.user32.GetSubMenu(hMenu, uIDItem)
else:
menuInfo.submenu = None
return menuInfo
def getMenuInfo(hMenu, uIDItem):
#print "getMenuInfo fuction,hMenu,uIDItem",hMenu,uIDItem
'''Get various info about a menu item.
Arguments:
hMenu The menu in which the item is to be found.
uIDItem The item's index
Returns: Menu item information object. This object is basically
a 'bunch'
(see http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52308).
It will have useful attributes: name, itemCount,
submenu, isChecked, isDisabled, isGreyed, and
isSeperator
Raises:
WinGuiAutoError When the requested menu option isn't found.
Usage example: submenuInfo = getMenuInfo(hMenu, submenu)
hMenu, hMenuItemCount = submenuInfo.submenu, submenuInfo.itemCount'''
# An object to hold the menu info
class MenuInfo(Bunch):
pass
menuInfo = MenuInfo()
# Menu state
menuState = ctypes.windll.user32.GetMenuState(hMenu,
uIDItem,
win32con.MF_BYPOSITION)
#print "menuState_MF_BYPOSITION:",ctypes.windll.user32.GetMenuState(hMenu,uIDItem,win32con.MF_BYPOSITION)
#print "menuState_MF_BYCOMMAND:",ctypes.windll.user32.GetMenuState(hMenu,uIDItem,win32con.MF_BYCOMMAND)
if menuState == -1:
raise WinGuiAutoError("No such menu item, hMenu=" +
str(hMenu) +
" uIDItem=" +
str(uIDItem))
menuInfo.isChecked = bool(menuState & win32con.MF_CHECKED)
menuInfo.isDisabled = bool(menuState & win32con.MF_DISABLED)
menuInfo.isGreyed = bool(menuState & win32con.MF_GRAYED)
menuInfo.isSeperator = bool(menuState & win32con.MF_SEPARATOR)
# ... there are more, but these are the ones I'm interested in
# Menu name
menuName = ctypes.c_buffer("\000" * 32)
ctypes.windll.user32.GetMenuStringA(ctypes.c_int(hMenu),
ctypes.c_int(uIDItem),
menuName, ctypes.c_int(len(menuName)),
win32con.MF_BYPOSITION)
menuInfo.name = menuName.value
# Sub menu info
menuInfo.itemCount = menuState >> 8
if bool(menuState & win32con.MF_POPUP):
menuInfo.submenu = ctypes.windll.user32.GetSubMenu(hMenu, uIDItem)
else:
menuInfo.submenu = None
#print "menuInfo",menuInfo
return menuInfo