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

fleetJoinRequestWnd.py (2613B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\fleet\fleetJoinRequestWnd.py
      2 import localization
      3 from carbonui import const as uiconst
      4 from carbonui.control.button import Button
      5 from carbonui.util.various_unsorted import SortListOfTuples
      6 from eve.client.script.ui.control import eveScroll
      7 from eve.client.script.ui.control.entries.util import GetFromClass
      8 from carbonui.control.window import Window
      9 from eve.client.script.ui.control.eveLabel import EveLabelMedium
     10 from eve.client.script.ui.shared.fleet.entries import JoinRequestField
     11 MIN_WINDOW_WIDTH = 310
     12 
     13 def get_character_name_width(charID):
     14     return EveLabelMedium(text=localization.GetByLabel('UI/Common/CharacterNameLabel', charID=charID)).width
     15 
     16 
     17 class FleetJoinRequestWindow(Window):
     18     default_windowID = 'FleetJoinRequestWindow'
     19     default_iconNum = 'res:/ui/Texture/WindowIcons/fleet.png'
     20     default_captionLabelPath = 'UI/Fleet/FleetWindow/JoinRequests'
     21     default_iconNum = 'res:/ui/Texture/WindowIcons/fleet.png'
     22 
     23     def ApplyAttributes(self, attributes):
     24         super(FleetJoinRequestWindow, self).ApplyAttributes(attributes)
     25         self.join_request = EveLabelMedium(text=localization.GetByLabel('UI/Fleet/FleetWindow/JoinRequestsHelp'), parent=self.content, align=uiconst.TOTOP, padBottom=uiconst.defaultPadding)
     26         self.sr.scroll = eveScroll.Scroll(parent=self.content)
     27         self.sr.scroll.multiSelect = 0
     28         self.LoadJoinRequests()
     29 
     30     def LoadJoinRequests(self):
     31         scrolllist = []
     32         fleet_svc = sm.GetService('fleet')
     33         for joinRequest in fleet_svc.GetJoinRequests().itervalues():
     34             if joinRequest is None:
     35                 continue
     36             name = localization.GetByLabel('UI/Common/CharacterNameLabel', charID=joinRequest.charID)
     37             scrolllist.append((name, GetFromClass(JoinRequestField, {'label': name,
     38               'height': Button.default_height,
     39               'props': None,
     40               'checked': False,
     41               'charID': joinRequest.charID,
     42               'retval': None,
     43               'hint': None})))
     44 
     45         join_requests = filter(None, fleet_svc.GetJoinRequests().values())
     46         character_name_widths = [ get_character_name_width(request.charID) for request in join_requests ]
     47         max_text_width = max(character_name_widths or [0])
     48         window_min_width = max(MIN_WINDOW_WIDTH, max_text_width + Button.default_width * 2)
     49         self.SetMinSize(size=(window_min_width, 145), refresh=True)
     50         scrolllist = SortListOfTuples(scrolllist)
     51         self.sr.scroll.Load(contentList=scrolllist)