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)