componentInfo.py (2928B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\controls\componentInfo.py 2 from carbonui import Align, TextColor, uiconst 3 from carbonui.text.styles import TextHeadline, TextBody 4 from carbonui.primitives.container import Container 5 from carbonui.primitives.containerAutoSize import ContainerAutoSize 6 from carbonui.primitives.fill import Fill 7 from eve.client.script.ui import eveThemeColor 8 from eve.client.script.ui.cosmetics.ship.controls.numRunsIndicator import NumRunsIndicator 9 from eve.client.script.ui.cosmetics.ship.controls.rarityIndicator import RarityIndicator 10 from localization import GetByLabel 11 NAME_SIDE_PADDING = 16 12 13 class ComponentInfo(ContainerAutoSize): 14 15 def __init__(self, component_data, license_type, runs_remaining, *args, **kwargs): 16 super(ComponentInfo, self).__init__(*args, **kwargs) 17 self.component_data = component_data 18 self.license_type = license_type 19 self.runs_remaining = runs_remaining 20 self.construct_layout() 21 self.update() 22 23 def construct_layout(self): 24 self.name_and_icon_cont = Container(name='name_and_icon_cont', parent=self, align=Align.TOTOP, height=56) 25 self.construct_rarity_icon() 26 self.construct_label() 27 self.construct_runs() 28 29 def construct_rarity_icon(self): 30 icon_container = Container(name='icon_container', parent=self.name_and_icon_cont, align=Align.TOLEFT, pos=(0, 0, 56, 56), bgColor=(1, 1, 1, 0.1)) 31 RarityIndicator(name='rarity_indicator', parent=icon_container, align=Align.CENTER, rarity=self.component_data.rarity) 32 33 def construct_label(self): 34 name_container = Container(name='name_container', parent=self.name_and_icon_cont, align=Align.TOTOP, height=56) 35 label_container = Container(name='label_container', parent=name_container) 36 self.label = TextHeadline(name='name_label', parent=label_container, align=Align.CENTERLEFT, state=uiconst.UI_NORMAL, text=self.component_data.name, autoFadeSides=10, maxLines=1, padding=(NAME_SIDE_PADDING, 37 0, 38 NAME_SIDE_PADDING, 39 0)) 40 self.label_background_fill = Fill(parent=name_container, align=Align.TOLEFT, color=eveThemeColor.THEME_TINT, opacity=0.5) 41 42 def construct_runs(self): 43 runs_container = Container(name='runs_container', parent=self, align=Align.TOTOP, height=52) 44 NumRunsIndicator(parent=runs_container, licence_type=self.license_type, num_runs=self.runs_remaining, align=Align.CENTERLEFT, pos=(0, 0, 32, 32)) 45 TextBody(name='runs_label', parent=runs_container, align=Align.CENTERLEFT, left=40, text=GetByLabel('UI/Personalization/ShipSkins/SKINR/Sequencing/SequencingRuns'), color=TextColor.SECONDARY) 46 47 def update(self): 48 text_width, text_height = TextHeadline.MeasureTextSize(self.label.text) 49 self.label_background_fill.width = text_width + NAME_SIDE_PADDING * 2