def GetItemMenu(self, typeID): m = [] m.append((MenuLabel('UI/Commands/ShowInfo'), sm.GetService('info').ShowInfo, (typeID,))) if cfg.invtypes.Get(typeID).marketGroupID is not None: m.append((MenuLabel('UI/Inventory/ItemActions/ViewTypesMarketDetails'), sm.GetService('marketutils').ShowMarketDetails, (typeID, None))) m.append((MenuLabel('UI/Inventory/ItemActions/AddTypeToMarketQuickbar'), sm.GetService('marketutils').AddTypeToQuickBar, (typeID,))) return m
def GetCombatMenu(entry, *args): m = [(MenuLabel( 'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/CopyKillInfo'), GetCombatText, (entry.sr.node.kill, 1)), (MenuLabel('UI/Control/Entries/CopyExternalKillLink'), GetCrestUrl, (entry.sr.node.kill, ))] return m
def GetPlanetEntryMenu(self, entry): node = entry.sr.node menu = [] menuSvc = sm.GetService('menu') if node.solarSystemID != session.solarsystemid: mapItem = sm.StartService('map').GetItem(node.solarSystemID) if eve.session.role & (service.ROLE_GML | service.ROLE_WORLDMOD): gmExtrasLabel = MenuLabel('UI/ScienceAndIndustry/ScienceAndIndustryWindow/GMWMExtrasCommand') menu += [(gmExtrasLabel, ('isDynamic', menuSvc.GetGMMenu, (node.planetID, None, None, None, mapItem)))] menu += menuSvc.MapMenu([node.solarSystemID]) isOpen = sm.GetService('viewState').IsViewActive('planet') and sm.GetService('planetUI').planetID == node.planetID if isOpen: menu += [[MenuLabel('UI/PI/Common/ExitPlanetMode'), sm.GetService('viewState').CloseSecondaryView, ()]] else: openPlanet = lambda planetID: sm.GetService('viewState').ActivateView('planet', planetID=planetID) menu += [(MenuLabel('UI/PI/Common/ViewInPlanetMode'), sm.GetService('planetUI').Open, (node.planetID,))] menu += [(MenuLabel('UI/Commands/ShowInfo'), menuSvc.ShowInfo, (node.typeID, node.planetID, 0, None, None))] else: menu += menuSvc.CelestialMenu(node.planetID) return menu
def GetFittingMenu(self, entry): node = entry.sr.node node.scroll.SelectNode(node) selectedNodes = node.scroll.GetSelectedNodes(node) multiSelected = len(selectedNodes) > 1 fittingID = entry.sr.node.fittingID ownerID = entry.sr.node.ownerID maxShipsAllowed = int( sm.GetService('machoNet').GetGlobalConfig().get( 'bulkFit_maxShips', 30)) m = [] if not multiSelected: m += [('Simulate Fitting', self.OnFittingClicked, [entry])] m += [(MenuLabel( 'UI/Fitting/FittingWindow/FittingManagement/LoadFitting'), self.fittingSvc.LoadFittingFromFittingID, [ownerID, fittingID])] if maxShipsAllowed and IsDocked() and not IsModularShip( entry.sr.node.fitting.shipTypeID): m += [(MenuLabel( 'UI/Fitting/FittingWindow/FittingManagement/OpenMultifit'), self.DoBulkFit, [entry])] m += [None] m += [(GetByLabel( 'UI/Fitting/FittingWindow/FittingManagement/DeleteFitting'), self.DeleteFitting, [entry, selectedNodes])] return m
def GetMenu(self): selectedNodes = self.sr.node.scroll.GetSelectedNodes(self.sr.node) numSelectedNodes = len(selectedNodes) itemID = self.controller.GetItemID() typeID = self.controller.GetTypeID() m = [] if numSelectedNodes == 1: if self.controller.CanUnanchor(): m.append([ MenuLabel('UI/StructureBrowser/Decommission'), sm.GetService('structureDeployment').Unanchor, [itemID, typeID] ]) elif self.controller.CanCancelUnanchor(): m.append([ MenuLabel('UI/StructureBrowser/CancelDecommission'), sm.GetService('structureDeployment').CancelUnanchor, [itemID, typeID] ]) numOptions = self._GetModifyMenuOptions(selectedNodes) m += numOptions if numSelectedNodes > 1: setProfileMenu = MenuLabel('UI/StructureBrowser/SetProfileMany', {'numSelected': numSelectedNodes}) else: setProfileMenu = MenuLabel('UI/StructureBrowser/SetProfile') m += self.GetMenuToFindProfile(itemID) m += [[ setProfileMenu, ('isDynamic', self._GetProfilesMenu, (selectedNodes, )) ]] m += sm.GetService('menu').GetMenuFormItemIDTypeID(itemID=itemID, typeID=typeID) return m
def GetItemMenu(self, itemID): item = self.mapSvc.GetItem(itemID, retall=True) if not item: return [] m = [] mm = [] universeID, regionID, constellationID, solarSystemID, celestialID = self.mapSvc.GetParentLocationID( item.itemID) if solarSystemID: mm.append((MenuLabel('UI/Common/LocationTypes/System'), self.ViewInSovDashboard, (solarSystemID, constellationID, regionID))) if constellationID: mm.append( (MenuLabel('UI/Common/LocationTypes/Constellation'), self.ViewInSovDashboard, (None, constellationID, regionID))) mm.append((MenuLabel('UI/Common/LocationTypes/Region'), self.ViewInSovDashboard, (None, None, regionID))) m.append((MenuLabel('UI/Sovereignty/ViewInSovDashboard'), mm)) m.append(None) filterFunc = [MenuLabel('UI/Commands/ShowLocationOnMap')] m += sm.GetService('menu').CelestialMenu(itemID, noTrace=1, mapItem=item, filterFunc=filterFunc) return m
def GetLinkMenu(self, parent, url): m = [] if url.startswith('showinfo:'): ids = url[9:].split('//') try: typeID = int(ids[0]) itemID = None bookmark = None filterFunc = None if len(ids) > 1: itemID = int(ids[1]) if len(ids) > 2: invtype = cfg.invtypes.Get(typeID) if invtype.categoryID == const.categoryBlueprint: filterFunc = { localization.GetByLabel('UI/Commands/ShowInfo') } else: bookmark = self.GetBookmark(ids, itemID, typeID) m += sm.GetService('menu').GetMenuFormItemIDTypeID( itemID, typeID, bookmark, ignoreMarketDetails=0, filterFunc=filterFunc) m += sm.GetService('menu').GetGMTypeMenu(typeID, divs=True) for item in m: if item is not None: if item[0] == localization.GetByLabel( 'UI/Inventory/ItemActions/SetNewPasswordForContainer' ): m.remove(item) except: log.LogTraceback( 'failed to convert string to ids in Browser:ShowInfo') return [] else: if url.startswith('preview:'): return [] if url.startswith('contract:'): m += [(MenuLabel('UI/Contracts/ShowContract'), self.Contract, (url[9:], ))] return m for eachUrlOption in HINTLABELS.keys(): if url.startswith(eachUrlOption): return m if self.ValidateURL(url): url = url.replace('&', '&') url = self.GetFixedURL(parent, url) m += [(MenuLabel('UI/Browser/OpenLinkInNewTab'), self.UrlHandlerDelegate, (parent, 'NewView', url, True))] m += [(MenuLabel('UI/Common/Open'), self.UrlHandlerDelegate, (parent, 'GoTo', url, False))] if url.lower().startswith('http'): m += [(MenuLabel('/Carbon/UI/Commands/CopyURL'), self.CopyUrl, (url, ))] return m
def GetLinkMenu(self, parent, url): m = [] if self.ValidateURL(url): url = url.replace('&', '&') m += [(MenuLabel('/Carbon/UI/Commands/OpenInNewView'), self.UrlHandlerDelegate, (parent, 'NewView', url))] m += [(MenuLabel('/Carbon/UI/Commands/Open'), self.UrlHandlerDelegate, (parent, 'GoTo', url))] if url.lower().startswith('http'): m += [(MenuLabel('/Carbon/UI/Commands/CopyURL'), self.CopyUrl, (url,))] return m
def GetMenuFunction(self, *args): m = [] if self.disabled: return m if not sm.GetService('calendar').IsInPast(self.year, self.month, self.monthday, allowToday=1): m += [(MenuLabel('/Carbon/UI/Calendar/CreateNewEvent'), self.OpenNewEventWnd)] if not self.disabled: m += [(MenuLabel('/Carbon/UI/Calendar/ViewDay'), self.OpenSingleDayWnd)] return m
def GetMenu(self, *args): m = [(MenuLabel('UI/StructureBrowser/EditNameAndDescription'), self.EditNameAndDescription, ()), (MenuLabel('UI/StructureBrowser/DeleteProfile'), self.DeleteProfile, ())] if session.role & ROLEMASK_ELEVATEDPLAYER: profileID = self.profileController.GetProfileID() m.append(('GM: profileID: ' + str(profileID), blue.pyos.SetClipboardData, (str(profileID), ))) return m
def GetStructureMenu(item): entries = [] if item.categoryID == const.categoryStructure: state = getattr(item, 'state', structures.STATE_UNKNOWN) isElevatedPlayer = session.role & service.ROLEMASK_ELEVATEDPLAYER checkIsMyCorps = item.ownerID == session.corpid checkAmDirector = session.corprole & const.corpRoleDirector > 0 checkOnline = state not in structures.OFFLINE_STATES if checkOnline and checkIsMyCorps and checkAmDirector: entries.append([ MenuLabel('UI/Inflight/POS/TransferSovStructureOwnership'), menuFunctions.TransferCorporationOwnership, [item.itemID] ]) if session.shipid == item.itemID: entries.append([ MenuLabel('UI/Inflight/HUDOptions/ReleaseControl'), sm.GetService('structureControl').Alight, [item.itemID] ]) elif session.structureid == item.itemID: entries.append([ MenuLabel('UI/Neocom/UndockBtn'), sm.GetService('structureDocking').Undock, [item.itemID] ]) if isElevatedPlayer: entries.append([ MenuLabel('UI/Commands/TakeStructureControl'), sm.GetService('structureControl').Board, [item.itemID] ]) if isElevatedPlayer: entries.append([ 'GM: Vulnerability Schedule', OpenVulnerabilityScheduleWnd, [item.itemID, item.typeID] ]) states = [[name, GMSetStructureState, [item.itemID, value]] for value, name in structures.STATES.iteritems()] entries.append(['GM: Set State', states]) times = [[ '{} seconds'.format(time), GMSetStructureTimer, [item.itemID, time] ] for time in [5, 15, 60, 600, 6000]] entries.append(['GM: Set Timer', times]) unanchoring = [[ 'Start Unanchoring', GMSetStructureUnanchoring, [item.itemID] ], [ 'Cancel Unanchoring', GMSetStructureUnanchoring, [item.itemID, 'cancel'] ]] unanchoring += [[ '{} seconds'.format(time), GMSetStructureUnanchoring, [item.itemID, time] ] for time in [5, 15, 60, 600, 6000]] entries.append(['GM: Set Unanchoring', unanchoring]) return entries
def GetMenu(self, *args): m = [(MenuLabel('UI/StructureSettingWnd/RemoveGroup'), self.RemoveGroup, ()), (MenuLabel('UI/StructureSettingWnd/ShowGroupInfo'), self.ShowGroupInfo, ())] accessGroupsController = sm.GetService( 'structureControllers').GetAccessGroupController() myGroups = accessGroupsController.GetMyGroups() if self.groupID in myGroups: m += [(MenuLabel('UI/StructureSettingWnd/ViewGroup'), self.ViewGroup, ())] return m
def GetMenu(self, *args): m = [] if CanHaveGroups(self.settingID): accessGroupsController = sm.GetService( 'structureControllers').GetAccessGroupController() myGroups = accessGroupsController.GetMyGroups() if myGroups: m += [[ MenuLabel('UI/StructureSettingWnd/AddGroupToSetting'), ('isDynamic', self._GetMyGroupsMenu, (myGroups, )) ]] m += [(MenuLabel('UI/StructureSettingWnd/ManageAccessGroups'), uicore.cmd.OpenAccessGroupsWindow, ())] return m
def GetMenu(self): menu = sm.GetService('menu').GetMenuFormItemIDTypeID( None, self.materialData.typeID, ignoreMarketDetails=False) menu.insert(0, (MenuLabel('UI/Inventory/ItemActions/BuyThisType'), sm.GetService('menu').QuickBuy, (self.materialData.typeID, self.materialData.missing))) return menu
def GetMenuFunction(self, *args): """ This is the menu function. For some reason it's possible to overwrite this function but it's not possible to overwrite the GetMenu """ m = [] if self.disabled: return m if not sm.GetService('calendar').IsInPast( self.year, self.month, self.monthday, allowToday=1): m += [(MenuLabel('/Carbon/UI/Calendar/CreateNewEvent'), self.OpenNewEventWnd)] if not self.disabled: m += [(MenuLabel('/Carbon/UI/Calendar/ViewDay'), self.OpenSingleDayWnd)] return m
def GetMenu(self): m = [] node = self.sr.node if not node.get('showmenu', True): return m if not node.open: m += [(MenuLabel('/Carbon/UI/Common/Expand'), self.Toggle, ())] else: m += [(MenuLabel('/Carbon/UI/Common/Collapse'), self.Toggle, ())] if node.get('state', None) != 'locked': m += [(MenuLabel('/Carbon/UI/Controls/ScrollEntries/ChangeLabel'), self.ChangeLabel)] m += [(MenuLabel('/Carbon/UI/Controls/ScrollEntries/DeleteFolder'), self.DeleteFolder)] if node.get('MenuFunction', None): cm = node.MenuFunction(node) m += cm return m
def GetMenu(self): scanSvc = sm.GetService('scanSvc') menu = [(MenuLabel(uicore.cmd.OpenScanner.nameLabelPath), uicore.cmd.OpenScanner, [])] menu.extend(scanSvc.GetScanResultMenuWithIgnore( self, self.scanGroupID)) return menu
def GetMenu(self): menu = [] if self.IsKillable(): menu.append( (MenuLabel('/Carbon/UI/Controls/Window/CloseWindowStack'), self.CloseByUser)) if not self.sr.stack and self.IsMinimizable(): if self.state == uiconst.UI_NORMAL: menu.append((MenuLabel( '/Carbon/UI/Controls/Window/MinimizeWindowStack'), self.ToggleVis)) else: menu.append((MenuLabel( '/Carbon/UI/Controls/Window/MaximizeWindowStack'), self.ToggleVis)) return menu
def GetMenu(self, entry, *args): celestialID = entry.id[1] note = '' for typeID, quantity in entry.groupItems.iteritems(): note += '%s [%s]<br>' % (cfg.invtypes.Get(typeID).name, quantity) celestialMenu = sm.GetService('menu').CelestialMenu(celestialID, hint=note) return celestialMenu + [None] + [(MenuLabel('UI/Common/Delete'), self.ClearEntry, (celestialID,))]
def GetEventMenu(self, eventInfo, myResponse=None, getJumpOption=True, *args): m = [] m.append((MenuLabel('/Carbon/UI/Calendar/ViewEvent'), self.OpenEventWnd, (eventInfo, ))) if getattr(eventInfo, 'isDeleted', None): return m canDelete = 0 if not self.IsInPastFromBlueTime(then=eventInfo.eventDateTime): if eventInfo.ownerID != session.charid: if eventInfo.flag in [ const.calendarTagCorp, const.calendarTagAlliance ]: if eventInfo.ownerID in [ session.corpid, session.allianceid ] and session.corprole & const.corpRoleChatManager == const.corpRoleChatManager: canDelete = 1 m.append((MenuLabel('/Carbon/UI/Calendar/EditEvent'), self.OpenEditEventWnd, (eventInfo, ))) if myResponse is None: iconPath, myResponse = self.GetMyResponseIconFromID( eventInfo.eventID) m.append(None) if eventInfo.flag is not const.calendarTagCCP: if myResponse != const.eventResponseAccepted: m.append((MenuLabel('/Carbon/UI/Calendar/Accept'), self.RespondToEvent, (eventInfo.eventID, eventInfo, const.eventResponseAccepted))) if myResponse != const.eventResponseMaybe: m.append((MenuLabel('/Carbon/UI/Calendar/MaybeReply'), self.RespondToEvent, (eventInfo.eventID, eventInfo, const.eventResponseMaybe))) if myResponse != const.eventResponseDeclined: m.append((MenuLabel('/Carbon/UI/Calendar/Decline'), self.RespondToEvent, (eventInfo.eventID, eventInfo, const.eventResponseDeclined))) elif eventInfo.flag == const.calendarTagPersonal: canDelete = 1 m.append((MenuLabel('/Carbon/UI/Calendar/EditEvent'), self.OpenEditEventWnd, (eventInfo, ))) if getJumpOption: m.append(None) m.append((MenuLabel('/Carbon/UI/Calendar/GotoDay'), self.JumpToDay, (eventInfo, ))) if canDelete: m.append(None) m.append( (MenuLabel('/Carbon/UI/Calendar/DeleteEvent'), self.DeleteEvent, (eventInfo.eventID, eventInfo.ownerID))) return m
def GetMenuForGroupID(self, node, parentController): groupID = node.groupInfo.groupID accessRight = node.groupInfo.membershipType ownedByCorp = node.groupInfo.creatorID == session.corpid m = [] if not ownedByCorp: m += [(MenuLabel('UI/Structures/AccessGroups/AddMembers'), uicore.cmd.OpenPeopleAndPlaces, ())] if accessRight == MEMBERSHIP_TYPE_ADMIN and not ownedByCorp: m += [(MenuLabel('UI/Structures/AccessGroups/EditGroup'), self._EditGroup, (parentController, groupID)), None, (MenuLabel('UI/Structures/AccessGroups/DeleteGroup'), parentController.Delete, (groupID, ))] if session.role & ROLEMASK_ELEVATEDPLAYER: m.append(('GM: groupID: ' + str(groupID), blue.pyos.SetClipboardData, (str(groupID), ))) return m
def GetMenu(ballpark, itemTraderItemId): itemTrader = ballpark.componentRegistry.GetComponentForItem( itemTraderItemId, ITEM_TRADER) menu = [[ MenuLabel('UI/Inflight/SpaceComponents/ItemTrader/Access'), itemTrader.RequestTrade ]] return menu
def GetMenuLocationMenu(self, node): locationID = node.location.locationID solarSystemID, stationTypeID = self.GetStationSolarSystemIDAndTypeID( node) menu = sm.StartService('menu').CelestialMenu(node.location.locationID, typeID=stationTypeID, parentID=solarSystemID) if not util.IsStation(locationID): if session.structureid != locationID: if util.IsWormholeSystem(solarSystemID): label = MenuLabel( 'UI/Inventory/AssetSafety/MoveItemsToSpace') else: label = MenuLabel( 'UI/Inventory/AssetSafety/MoveItemsToSafety') menu.append((label, self.MoveItemsInStructureToAssetSafety, (solarSystemID, locationID))) return menu
def GetMenu(self): m = [] if getattr(self, 'attrs', None) and getattr(self.attrs, 'src', None) and self.attrs.src: src = self.attrs.src m += [(MenuLabel('UI/Common/ReloadImage'), self.Reload)] if getattr(self.attrs, 'a', None): m += self.GetLinkMenu(self, self.attrs.a.href) return m
def GetBookmarkMenu(self, startAt=0): m = [] if startAt < 1: m.append((MenuLabel('UI/Browser/AddRemove'), self.EditBookmarks)) allMarks = sm.GetService('sites').GetBookmarks() myMarks = allMarks[startAt:startAt + 20] if len(myMarks) >= 20 and len(allMarks) > startAt + 20: m.append((MenuLabel('UI/Common/More'), ('isDynamic', self.GetBookmarkMenu, (startAt + 20, )))) if len(m) > 0: m.append(None) for each in myMarks: if each is not None: if each.url.find(':/') == -1: each.url = 'http://' + each.url m.append((each.name, self.BrowseTo, (each.url, ))) return m
def GetDeployMenu(invItem): itemIsInMyShip = invItem.locationID == session.shipid if itemIsInMyShip: return [[ MenuLabel('UI/Inventory/ItemActions/LaunchForSelf'), DeployAction, [invItem] ]] else: return []
def GetMenu(self): eventInfo = self.node.eventInfo if eventInfo.actionID == GROUP_NAME_CHANGED: labelPath = 'UI/Structures/LoggedChanges/CopyOldName' elif eventInfo.actionID == GROUP_DESCRIPTION_CHANGED: labelPath = 'UI/Structures/LoggedChanges/CopyOldDescription' else: return [] m = [(MenuLabel(labelPath), self.CopyOldText, ())] return m
def GetMenu(self): m = sm.GetService('menu').GetMenuFormItemIDTypeID( self.bpData.blueprintID, self.bpData.blueprintTypeID, ignoreMarketDetails=False, invItem=self.item) label = MenuLabel('UI/Industry/Facility') m.append((label, sm.GetService('menu').CelestialMenu( itemID=self.bpData.facilityID))) return m
def GetMenu(self): m = [] start, end = self.GetSelectionBounds() if start is not None: start = start[0] if end is not None: end = end[0] m += [(MenuLabel('/Carbon/UI/Controls/Common/Copy'), self.Copy, (start, end))] if not self.readonly: if uicore.imeHandler: uicore.imeHandler.GetMenuDelegate(self, None, m) paste = GetClipboardData() if paste: m += [(MenuLabel('/Carbon/UI/Controls/Common/Paste'), self.Paste, (paste, start, end, True))] if self.displayHistory and self.passwordchar is None: m += [(MenuLabel('/Carbon/UI/Controls/Common/ClearHistory'), self.ClearHistory, (None,))] return m
def _GetGenericMemberMenuOptions(self, nodesByMemberID): if len(nodesByMemberID) != 1: return [] node = nodesByMemberID.values()[0] if node.ownerInfo is None: return [] memberID = node.memberID typeID = node.ownerInfo.typeID if typeID == const.typeAlliance: menuLabel = MenuLabel('UI/Common/Alliance') elif typeID == const.typeCorporation: menuLabel = MenuLabel('UI/Common/Corporation') else: menuLabel = MenuLabel('UI/Common/Pilot') memberMenuOptions = [ (menuLabel, ('isDynamic', sm.GetService('menu').GetMenuFormItemIDTypeID, (memberID, typeID))) ] return memberMenuOptions