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 OnRClick(self, params): menu = win32ui.CreatePopupMenu() flags=win32con.MF_STRING|win32con.MF_ENABLED lineno = self._obj_.LineFromChar(-1) #selection or current line line = self._obj_.GetLine(lineno) regexGrepResult = regexGrep.match(line) if regexGrepResult: self.fnm = regexGrepResult.group(1) self.lnnum = int(regexGrepResult.group(2)) menu.AppendMenu(flags, ID_OPEN_FILE, "&Open "+self.fnm) menu.AppendMenu(win32con.MF_SEPARATOR) menu.AppendMenu(flags, ID_TRYAGAIN, "&Try Again") charstart, charend = self._obj_.GetSel() if charstart != charend: linestart = self._obj_.LineIndex(lineno) self.sel = line[charstart-linestart:charend-linestart] menu.AppendMenu(flags, ID_GREP, "&Grep for "+self.sel) menu.AppendMenu(win32con.MF_SEPARATOR) menu.AppendMenu(flags, win32ui.ID_EDIT_CUT, 'Cu&t') menu.AppendMenu(flags, win32ui.ID_EDIT_COPY, '&Copy') menu.AppendMenu(flags, win32ui.ID_EDIT_PASTE, '&Paste') menu.AppendMenu(flags, win32con.MF_SEPARATOR); menu.AppendMenu(flags, win32ui.ID_EDIT_SELECT_ALL, '&Select all') menu.AppendMenu(flags, win32con.MF_SEPARATOR); menu.AppendMenu(flags, ID_SAVERESULTS, 'Sa&ve results') menu.TrackPopupMenu(params[5]) return 0
def SetToolsMenu(menu, menuPos=None): global tools global idPos # todo - check the menu does not already exist. # Create the new menu toolsMenu = win32ui.CreatePopupMenu() # Load from the ini file. items = LoadToolMenuItems() for menuString, cmd in items: tools[idPos] = (menuString, cmd, menuString) toolsMenu.AppendMenu(win32con.MF_ENABLED | win32con.MF_STRING, idPos, menuString) win32ui.GetMainFrame().HookCommand(HandleToolCommand, idPos) idPos = idPos + 1 # Find the correct spot to insert the new tools menu. if menuPos is None: menuPos = menu.GetMenuItemCount() - 2 if menuPos < 0: menuPos = 0 menu.InsertMenu( menuPos, win32con.MF_BYPOSITION | win32con.MF_ENABLED | win32con.MF_STRING | win32con.MF_POPUP, toolsMenu.GetHandle(), '&Tools')
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 OnItemRightClick(self, notify_data, extra): # First select the item we right-clicked on. pt = self.ScreenToClient(win32api.GetCursorPos()) flags, hItem = self.HitTest(pt) if hItem == 0 or commctrl.TVHT_ONITEM & flags == 0: return None self.Select(hItem, commctrl.TVGN_CARET) menu = win32ui.CreatePopupMenu() menu.AppendMenu( win32con.MF_STRING | win32con.MF_ENABLED, 1000, "Add Key") menu.AppendMenu( win32con.MF_STRING | win32con.MF_ENABLED, 1001, "Add Value") menu.AppendMenu( win32con.MF_STRING | win32con.MF_ENABLED, 1002, "Delete Key") self.HookCommand(self.OnAddKey, 1000) self.HookCommand(self.OnAddValue, 1001) self.HookCommand(self.OnDeleteKey, 1002) # track at mouse position. menu.TrackPopupMenu(win32api.GetCursorPos()) return None
def OnRClick(self, params): menu = win32ui.CreatePopupMenu() flags = win32con.MF_STRING | win32con.MF_ENABLED lineno = self._obj_.LineFromChar(-1) # selection or current line line = self._obj_.GetLine(lineno) regexGrepResult = regexGrep.match(line) charstart, charend = self._obj_.GetSel() if regexGrepResult: self.fnm = regexGrepResult.group(1) self.lnnum = int(regexGrepResult.group(2)) menu.AppendMenu(flags, ID_OPEN_FILE, "&Open " + self.fnm) menu.AppendMenu(flags, ID_ADDCOMMENT, "&Add to source: Comment Tag/#$pycheck_no ..") menu.AppendMenu( flags, ID_ADDPYCHECKNO2, "&Add to source: Specific #$pycheck_no=%(errtext)s ..") menu.AppendMenu(win32con.MF_SEPARATOR) menu.AppendMenu(flags, ID_TRYAGAIN, "&Try Again") menu.AppendMenu(flags, win32ui.ID_EDIT_CUT, 'Cu&t') menu.AppendMenu(flags, win32ui.ID_EDIT_COPY, '&Copy') menu.AppendMenu(flags, win32ui.ID_EDIT_PASTE, '&Paste') menu.AppendMenu(flags, win32con.MF_SEPARATOR) menu.AppendMenu(flags, win32ui.ID_EDIT_SELECT_ALL, '&Select all') menu.AppendMenu(flags, win32con.MF_SEPARATOR) menu.AppendMenu(flags, ID_SAVERESULTS, 'Sa&ve results') menu.TrackPopupMenu(params[5]) return 0
def __init__(self): window.Wnd.__init__(self, win32ui.CreateWnd()) self._obj_.CreateWindowEx(WS_EX_CLIENTEDGE, \ win32ui.RegisterWndClass(0, 0, COLOR_WINDOW + 1), \ 'MFC GUI', WS_OVERLAPPEDWINDOW, \ (10, 10, 800, 500), None, 0, None) # 捕获右键单击消息 submenu = win32ui.CreatePopupMenu() menu = win32ui.CreateMenu() submenu.AppendMenu(MF_STRING, 1051, '&Open') submenu.AppendMenu(MF_STRING, 1052, '&Close') submenu.AppendMenu(MF_STRING, 1053, '&Save') menu.AppendMenu(MF_STRING | MF_POPUP, submenu.GetHandle(), '&File') submenu = win32ui.CreateMenu() submenu.AppendMenu(MF_STRING, 1054, '&Copy') submenu.AppendMenu(MF_STRING, 1055, '&Paste') submenu.AppendMenu(MF_SEPARATOR, 1056, None) submenu.AppendMenu(MF_STRING, 1057, '&Cut') menu.AppendMenu(MF_STRING | MF_POPUP, submenu.GetHandle(), '&Edit') submenu = win32ui.CreateMenu() submenu.AppendMenu(MF_STRING, 1058, 'Tools') submenu.AppendMenu(MF_STRING | MF_GRAYED, 1059, 'Setting') m = win32ui.CreateMenu() m.AppendMenu(MF_STRING | MF_POPUP | MF_CHECKED, submenu.GetHandle(), 'Option') menu.AppendMenu(MF_STRING | MF_POPUP, m.GetHandle(), '&Other') self._obj_.SetMenu(menu)
def OnItemRightClick(self, notify_data, extra): # First select the item we right-clicked on. pt = self.ScreenToClient(win32api.GetCursorPos()) flags, hItem, subitem = self.HitTest(pt) if hItem == -1 or commctrl.TVHT_ONITEM & flags == 0: return None self.SetItemState( hItem, commctrl.LVIS_SELECTED, commctrl.LVIS_SELECTED) menu = win32ui.CreatePopupMenu() menu.AppendMenu( win32con.MF_STRING | win32con.MF_ENABLED, 1000, "Edit item") menu.AppendMenu( win32con.MF_STRING | win32con.MF_ENABLED, 1001, "Delete item") dockbar = self.GetParent() if dockbar.IsFloating(): hook_parent = win32ui.GetMainFrame() else: hook_parent = self.GetParentFrame() hook_parent.HookCommand(self.OnEditItem, 1000) hook_parent.HookCommand(self.OnDeleteItem, 1001) # track at mouse position. menu.TrackPopupMenu(win32api.GetCursorPos()) return None
def __init__(self,type='menu'): if type=='menu':m=win32ui.CreateMenu() else: m=win32ui.CreatePopupMenu() self.__dict__['_obj_'] = m self._dynamic_cascade_dict={} # dict holding dynamic menus, valid until next call self._toggles={} self._optional_flags = flags.curflags()
def OnRClick(self, param): submenu = win32ui.CreatePopupMenu() submenu.AppendMenu(MF_STRING, 1054, 'Copy') submenu.AppendMenu(MF_STRING, 1055, 'Paste') submenu.AppendMenu(MF_SEPARATOR, 1056, None) submenu.AppendMenu(MF_STRING, 1057, 'Cut') flag = TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON submenu.TrackPopupMenu(param[5], flag, self)
def OnRClick(self, param): submenu = win32ui.CreatePopupMenu() submenu.AppendMenu(MF_STRING, 1060, 'Copy') submenu.AppendMenu(MF_STRING, 1061, 'Paste') submenu.AppendMenu(MF_SEPARATOR, 1062, None) submenu.AppendMenu(MF_STRING, 1063, 'Cut') submenu.TrackPopupMenu( param[5], TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, self)
def OnRClick(self, params): paramsList = self.GetRightMenuItems() menu = win32ui.CreatePopupMenu() for appendParams in paramsList: if type(appendParams) != type(()): appendParams = (appendParams, ) apply(menu.AppendMenu, appendParams) menu.TrackPopupMenu(params[5]) # track at mouse position. return 0
def OnRClick(self,params): menu = win32ui.CreatePopupMenu() # look for a module name line=self._obj_.GetLine().strip() flags=win32con.MF_STRING|win32con.MF_ENABLED if patImport.match(line)==len(line): menu.AppendMenu(flags, ID_LOCATE_FILE, "&Locate %s.py"%patImport.group('name')) menu.AppendMenu(win32con.MF_SEPARATOR); menu.AppendMenu(flags, win32ui.ID_EDIT_UNDO, '&Undo') menu.AppendMenu(win32con.MF_SEPARATOR); menu.AppendMenu(flags, win32ui.ID_EDIT_CUT, 'Cu&t') menu.AppendMenu(flags, win32ui.ID_EDIT_COPY, '&Copy') menu.AppendMenu(flags, win32ui.ID_EDIT_PASTE, '&Paste') menu.AppendMenu(flags, win32con.MF_SEPARATOR); menu.AppendMenu(flags, win32ui.ID_EDIT_SELECT_ALL, '&Select all') menu.AppendMenu(flags, win32con.MF_SEPARATOR); menu.AppendMenu(flags, ID_GOTO_LINE, '&Goto line...') menu.TrackPopupMenu(params[5]) return 0
def __init__(self): window.Wnd.__init__(self, win32ui.CreateWnd()) self._obj_.CreateWindowEx(WS_EX_CLIENTEDGE,\ win32ui.RegisterWndClass(0, 0, COLOR_WINDOW+1),\ 'MFC GUI', WS_OVERLAPPEDWINDOW,\ (10, 10, 800, 500), None, 0, None) # create menu object submenu = win32ui.CreatePopupMenu() menu = win32ui.CreateMenu() # add sth into menu submenu.AppendMenu(MF_STRING, 1051, '&Open') submenu.AppendMenu(MF_STRING, 1052, '&Close') submenu.AppendMenu(MF_STRING, 1053, '&Save') menu.AppendMenu(MF_STRING | MF_POPUP, submenu.GetHandle(), '&File') # add menu into window self._obj_.SetMenu(menu) # set menu process message self.HookCommand(self.MenuClick, 1051) self.HookCommand(self.MenuClick, 1052) self.HookCommand(self.MenuClick, 1053)
def _create_menu(self,menu,list): from MenuTemplate import ENTRY, TOGGLE, SEP, CASCADE, DYNAMICCASCADE flags=win32con.MF_STRING|win32con.MF_ENABLED id=-1 for item in list: if type(item[0]) is type(()) or type(item[0]) is type([]): for flag in item[0]: if flag in features.feature_set: # ok break else: # no matching feature # special case for empty list # in that case, accept entry if item[0]: # list not empty, reject entry continue elif (item[0] & self._optional_flags) == 0: # old product-based flag continue if item[1]==ENTRY: if self._cb_obj2id:id=self._cb_obj2id(item[4]) else: id=item[4] menu.AppendMenu(flags, id, item[2]) elif item[1]==TOGGLE: if self._cb_obj2id:id=self._cb_obj2id(item[4]) else: id=item[4] menu.AppendMenu(flags|win32con.MF_UNCHECKED, id, item[2]) self._toggles[id]=1 elif item[1]==SEP: menu.AppendMenu(win32con.MF_SEPARATOR) elif item[1]==CASCADE: submenu=win32ui.CreatePopupMenu() menu.AppendMenu(flags|win32con.MF_POPUP,submenu.GetHandle(),item[2]) self._exec_list.append((submenu,item[3])) elif item[1]==DYNAMICCASCADE: submenu=Menu('popup') #win32ui.CreatePopupMenu() menu.AppendMenu(flags|win32con.MF_POPUP,submenu.GetHandle(),item[2]) self._dynamic_cascade_dict[item[3]]=submenu
def _clear_platform_menu(self): self._win_menu = ui.CreatePopupMenu()