NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

contractsWnd.py (6485B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\neocom\contracts\contractsWnd.py
      2 from carbonui import uiconst
      3 from carbonui.primitives.container import Container
      4 from carbonui.control.window import Window
      5 from carbonui.control.tabGroup import GetTabData
      6 from carbonui.window.header.tab_navigation import TabNavigationWindowHeader
      7 from eve.client.script.ui.shared.neocom.contracts.contractPanels import StartPagePanel, MyContractsPanel
      8 import eve.client.script.ui.shared.pointerTool.pointerToolConst as pConst
      9 from eve.common.lib import appConst
     10 from eve.client.script.ui.shared.neocom.contracts.contractsearch import ContractSearchPanel
     11 from localization import GetByLabel
     12 from player_messaging.client.ui_message import prompt_player_fsd_dialog
     13 
     14 class ContractsWindow(Window):
     15     __guid__ = 'form.ContractsWindow'
     16     __notifyevents__ = ['OnDeleteContracts', 'OnAddIgnore']
     17     default_width = 630
     18     default_height = 500
     19     default_windowID = 'contracts'
     20     default_captionLabelPath = 'Tooltips/Neocom/Contracts'
     21     default_descriptionLabelPath = 'Tooltips/Neocom/Contracts_description'
     22     default_iconNum = 'res:/ui/Texture/WindowIcons/contracts.png'
     23 
     24     def ApplyAttributes(self, attributes):
     25         super(ContractsWindow, self).ApplyAttributes(attributes)
     26         lookup = attributes.lookup
     27         idx = attributes.idx
     28         self.scope = uiconst.SCOPE_INGAME
     29         self.SetMinSize([700, 560])
     30         self.pages = {0: None}
     31         self.currPage = 0
     32         self.previousPageContractID = None
     33         self.currentPageContractID = None
     34         self.nextPageContractID = None
     35         self.parsingIssuers = False
     36         self.parsingType = False
     37         self.issuersByName = {}
     38         self.fetching = 0
     39         self.LoadTabs(lookup, idx)
     40         if lookup:
     41             setattr(self.myContractsParent, 'lookup', lookup)
     42             self.LookupOwner(lookup)
     43         else:
     44             self.SelectTab(idx)
     45 
     46     def MouseEnterHighlightOn(self, wnd, *args):
     47         wnd.SetRGB(1.0, 1.0, 0.0)
     48 
     49     def MouseExitHighlightOff(self, wnd, *args):
     50         wnd.SetRGB(1.0, 1.0, 1.0)
     51 
     52     def LookupOwner(self, ownerName):
     53         if self.IsMinimized():
     54             self.Maximize()
     55         setattr(self.myContractsParent, 'lookup', ownerName)
     56         settings.user.ui.Set('mycontracts_filter_status', appConst.conStatusFinished)
     57         self.tabGroup.SelectByIdx(1)
     58         self.myContractsParent.ShowOwner(ownerName)
     59 
     60     def ShowMyContractsPanel(self, status, forCorp = False):
     61         if self.IsMinimized():
     62             self.Maximize()
     63         self.tabGroup.SelectByIdx(1)
     64         if forCorp:
     65             self.myContractsParent.ShowRequireAttentionMyCorp(status)
     66         else:
     67             self.myContractsParent.ShowRequireAttention(status)
     68 
     69     def Prepare_Header_(self):
     70         self.header = TabNavigationWindowHeader()
     71 
     72     def LoadTabs(self, lookup = None, idx = None):
     73         self.startPageParent = StartPagePanel(name='startPageParent', parent=self.sr.main, align=uiconst.TOALL, state=uiconst.UI_HIDDEN, idx=1)
     74         self.myContractsParent = MyContractsPanel(name='myContractsParent', parent=self.sr.main, align=uiconst.TOALL, pos=(0, 0, 0, 0), state=uiconst.UI_HIDDEN, idx=1)
     75         self.contractSearchParent = Container(name='contractSearchParent', parent=self.sr.main, align=uiconst.TOALL, pos=(0, 0, 0, 0), state=uiconst.UI_HIDDEN, idx=1)
     76         self.contractSearchContent = ContractSearchPanel(parent=self.contractSearchParent, parentContentPadding=self.content_padding)
     77         self.privateContractsParent = Container(name='privateContractsParent', parent=self.sr.main, align=uiconst.TOALL, pos=(0, 0, 0, 0), state=uiconst.UI_HIDDEN, idx=1)
     78         self.tabGroup = self.header.tab_group
     79         startPageLabel = GetByLabel(self.default_captionLabelPath)
     80         tabList = (GetTabData(label=startPageLabel, panel=self.startPageParent, code=self, tabID='startPage'), GetTabData(label=GetByLabel('UI/Contracts/ContractsWindow/MyContracts'), panel=self.myContractsParent, code=self, tabID='myContracts'), GetTabData(label=GetByLabel('UI/Contracts/ContractsSearch/ContractSearch'), panel=self.contractSearchParent, code=self, tabID='contractSearch', uniqueName=pConst.UNIQUE_NAME_AVAILABLE_CONTRACTS_TAB))
     81         self.tabGroup.Startup(tabList, 'contractsTabs', autoselecttab=0)
     82 
     83     def SelectTab(self, idx):
     84         if idx:
     85             self.tabGroup.SelectByIdx(idx)
     86         else:
     87             h = getattr(sm.StartService('contracts'), 'hasContractWindowBeenOpened', False)
     88             if not h:
     89                 self.tabGroup.SelectByIdx(0)
     90                 setattr(sm.StartService('contracts'), 'hasContractWindowBeenOpened', True)
     91             else:
     92                 self.tabGroup.AutoSelect()
     93 
     94     def Load(self, key):
     95         doInit = self.TabNotInitiatedCheck(key)
     96         if key == 'myContracts':
     97             if doInit:
     98                 self.myContractsParent.Init()
     99         elif key == 'startPage':
    100             self.startPageParent.Init()
    101         elif key == 'contractSearch':
    102             self.contractSearchContent.Load(key)
    103             self.contractSearchContent.SetInitialFocus()
    104 
    105     def TabNotInitiatedCheck(self, key):
    106         doInit = not getattr(self, 'init_%s' % key, False)
    107         setattr(self, 'init_%s' % key, True)
    108         return doInit
    109 
    110     def Confirm(self, *etc):
    111         if self.tabGroup.GetSelectedArgs() == 'availableContracts':
    112             self.OnReturn_AvailableContracts()
    113 
    114     def GetError(self, checkNumber = 1):
    115         return ''
    116 
    117     def Error(self, error):
    118         if error:
    119             prompt_player_fsd_dialog('CustomInfo', {'info': error})
    120 
    121     def OnDeleteContracts(self, contractIDs, *args):
    122 
    123         def DeleteContractInList(list, contractID):
    124             nodes = list.GetNodes()
    125             for n in nodes:
    126                 if n.contractID == contractID:
    127                     list.RemoveEntries([n])
    128                     return
    129 
    130         list = self.sr.main.FindChild('mycontractlist')
    131         if list:
    132             for contractID in contractIDs:
    133                 DeleteContractInList(list, contractID)
    134 
    135     def OnAddIgnore(self, ignoreID, *args):
    136         if self.Get('contractlist'):
    137             list = self.contractlist
    138         else:
    139             cont = self.myContractsParent
    140             list = None
    141             for child in cont.children:
    142                 if hasattr(child, 'name') and child.name == 'mycontractlist':
    143                     list = child
    144                     break