Пример #1
0
	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
Пример #2
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
Пример #3
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')
Пример #4
0
    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",
        )
Пример #5
0
    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
Пример #6
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)
     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
Пример #7
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)
Пример #8
0
    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
Пример #9
0
 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()
Пример #10
0
 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)
Пример #11
0
 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)
Пример #12
0
 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
Пример #13
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
Пример #14
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)
Пример #15
0
 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
Пример #16
0
 def _clear_platform_menu(self):
     self._win_menu = ui.CreatePopupMenu()