def GetWndMenu(self): if uicore.registry.GetModalWindow(): return import menu if not getattr( self, 'chooseWndMenu', None ) or self.chooseWndMenu.destroyed or self.chooseWndMenu.state == uiconst.UI_HIDDEN: menu.KillAllMenus() wnds = [ each for each in uicore.registry.GetWindows() if not getattr(each, 'defaultExcludeFromWindowMenu', 0) ] showhide = uicore.layer.main.state == uiconst.UI_PICKCHILDREN m = [] for each in wnds: if not hasattr(each, 'Maximize'): continue if hasattr(each, 'GetCaption'): label = each.GetCaption() else: label = each.name m.append((label, each.Maximize)) if m: mv = menu.CreateMenuView(menu.CreateMenuFromList(m), None, None) mv.left, mv.top = (uicore.desktop.width - mv.width) // 2, ( uicore.desktop.height - mv.height) // 2 uicore.layer.menu.children.insert(0, mv) self.chooseWndMenu = mv self.wmTimer = base.AutoTimer(10, self._CheckWndMenu) else: self.chooseWndMenu = None return self.chooseWndMenu
def MakeMenu(self, list = None, anchor = None): if list is None: return if anchor is None: return mv = menu.CreateMenuView(menu.CreateMenuFromList(list), None, None) anchorwindow = self x = max(uiutil.GetChild(anchorwindow, anchor).GetAbsolute()[0], 0) y = anchorwindow.top + anchorwindow.height if anchorwindow.top + anchorwindow.height + mv.height > uicore.desktop.height: mv.top = min(form.InsiderWnd.GetIfOpen().top - mv.height, y) else: mv.top = min(uicore.desktop.width - mv.height, y) mv.left = min(uicore.desktop.width - mv.width, x) uicontrols.Frame(parent=mv, color=(1.0, 1.0, 1.0, 0.2)) uicore.layer.menu.children.insert(0, mv)
def ExportMenu(*args): exportMenu = [] exportMenu.append(('Generate List Dump', self.Dump)) exportMenu.append(('Generate POSer', self.DumpPOSer)) mv = menu.CreateMenuView(menu.CreateMenuFromList(exportMenu), None, None) anchorwindow = DestroyableItemsWindow.GetIfOpen() anchor = u'Export' anchoritem = uiutil.GetChild(anchorwindow, anchor) x, y, w, h = anchoritem.GetAbsolute() x = max(x, 0) y = y + h if y + mv.height > uicore.desktop.height: mv.top = anchoritem.GetAbsolute()[1] - mv.height else: mv.top = y mv.left = min(uicore.desktop.width - mv.width, x) uicontrols.Frame(parent=mv, color=(1.0, 1.0, 1.0, 0.2)) uicore.layer.menu.children.insert(0, mv)
def AppOnOpenContextMenu(self, nodeType, linkUrl, imageUrl, pageUrl, frameUrl, editFlags): menuData = [] eventHandlerCanTab = hasattr(self.browserEventHandler, 'AddTab') if nodeType & browserConst.selectedPage and not self.isViewSourceMode: if len(menuData) > 0: menuData.append(None) pageUrl = str(pageUrl) menuData.append((localization.GetByLabel('UI/Browser/Back'), self.HistoryBack, [])) menuData.append((localization.GetByLabel('UI/Browser/Forward'), self.HistoryForward, [])) menuData.append((localization.GetByLabel('UI/Browser/ReloadPage'), self.ReloadPage, [])) menuData.append((localization.GetByLabel('UI/Browser/Stop'), self.StopLoading, [])) menuData.append(None) menuData.append( (localization.GetByLabel('UI/Browser/ViewPageSource'), self.ViewSourceOfUrl, [pageUrl])) if nodeType & browserConst.selectedFrame and not self.isViewSourceMode: if len(menuData) > 0: menuData.append(None) menuData.append((localization.GetByLabel('UI/Browser/Back'), self.HistoryBack, [])) menuData.append((localization.GetByLabel('UI/Browser/Forward'), self.HistoryForward, [])) menuData.append((localization.GetByLabel('UI/Browser/Stop'), self.StopLoading, [])) menuData.append(None) frameUrl = str(frameUrl) if eventHandlerCanTab: menuData.append( (localization.GetByLabel('UI/Browser/OpenFrameInNewTab'), self.LaunchNewTab, [frameUrl])) menuData.append( (localization.GetByLabel('UI/Browser/ViewFrameSource'), self.ViewSourceOfUrl, [frameUrl])) menuData.append(None) menuData.append( (localization.GetByLabel('UI/Browser/ViewPageSource'), self.ViewSourceOfUrl, [pageUrl])) if nodeType & browserConst.selectedLink: if len(menuData) > 0: menuData.append(None) linkUrl = str(linkUrl) if not self.isViewSourceMode: menuData.append( (localization.GetByLabel('UI/Browser/OpenLink'), self.BrowseTo, [linkUrl])) if eventHandlerCanTab: menuData.append(( localization.GetByLabel('UI/Browser/OpenLinkInNewTab'), self.LaunchNewTab, [linkUrl])) menuData.append( (localization.GetByLabel('UI/Browser/CopyLinkLocation'), self.CopyText, [linkUrl])) if nodeType & browserConst.selectedImage and not self.isViewSourceMode: if len(menuData) > 0: menuData.append(None) imageUrl = str(imageUrl) menuData.append((localization.GetByLabel('UI/Browser/ViewImage'), self.BrowseTo, [imageUrl])) menuData.append( (localization.GetByLabel('UI/Browser/CopyImageLocation'), self.CopyText, [imageUrl])) tempMenu = [] if editFlags & browserConst.flagCanCut: tempMenu.append((uiutil.MenuLabel('UI/Common/Cut'), self.PerformCommand, [browserConst.commandCut])) if editFlags & browserConst.flagCanCopy: tempMenu.append((uiutil.MenuLabel('UI/Common/Copy'), self.PerformCommand, [browserConst.commandCopy])) if editFlags & browserConst.flagCanPaste: tempMenu.append((uiutil.MenuLabel('UI/Common/Paste'), self.PerformCommand, [browserConst.commandPaste])) if editFlags & browserConst.flagCanDelete: tempMenu.append( (uiutil.MenuLabel('UI/Common/Delete'), self.PerformCommand, [browserConst.commandDelete])) if len(tempMenu) > 0: if len(menuData) > 0: menuData.append(None) menuData.extend(tempMenu) tempMenu = [] if editFlags & browserConst.flagCanSelectAll: tempMenu.append( (uiutil.MenuLabel('UI/Common/SelectAll'), self.PerformCommand, [browserConst.commandSelectAll])) if len(tempMenu) > 0: if len(menuData) > 0: menuData.append(None) menuData.extend(tempMenu) tempMenu = [] if len(menuData) > 0: mv = menu.CreateMenuView(menu.CreateMenuFromList(menuData), None, None) x, y = uicore.uilib.x + 10, uicore.uilib.y x, y = min(uicore.desktop.width - mv.width, x), min(uicore.desktop.height - mv.height, y) mv.left, mv.top = x, y uicore.layer.menu.children.insert(0, mv)