indication_message_standard.py (3287B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\shipHud\action_indication\indication_message_standard.py 2 import carbonui 3 import carbonui.text.styles 4 from carbonui import Align, TextColor, TextAlign, uiconst 5 from carbonui.primitives.container import Container 6 from carbonui.primitives.containerAutoSize import ContainerAutoSize 7 from carbonui.primitives.fill import Fill 8 from carbonui.primitives.layoutGrid import LayoutGrid 9 from carbonui.primitives.sprite import Sprite 10 from carbonui.uianimations import animations 11 from carbonui.uiconst import OutputMode 12 from eve.client.script.ui.inflight.shipHud.action_indication.indication_message_base import IndicationMessageBase 13 14 class IndicationMessageStandard(IndicationMessageBase): 15 default_alignMode = Align.TOTOP 16 17 def construct_layout(self): 18 self.construct_caption() 19 self.construct_text() 20 self.construct_progress_bar() 21 22 def construct_text(self): 23 self.text_label = carbonui.text.styles.TextBody(parent=self, name='indication_text', text='', align=Align.TOTOP, color=TextColor.NORMAL, textAlign=TextAlign.CENTER) 24 25 def construct_caption(self): 26 caption_cont = ContainerAutoSize(name='captionCont', parent=self, align=Align.TOTOP) 27 self.layout_grid = LayoutGrid(parent=caption_cont, align=Align.CENTERTOP, columns=2, cellSpacing=4) 28 self.icon = Sprite(parent=self.layout_grid, pos=(0, 0, 32, 32), align=Align.CENTERLEFT, display=False, outputMode=OutputMode.COLOR_AND_GLOW, glowBrightness=0.0) 29 self.caption = carbonui.text.styles.TextHeadline(name='indication_caption', parent=self.layout_grid, color=TextColor.HIGHLIGHT, align=Align.CENTERLEFT, outputMode=OutputMode.COLOR_AND_GLOW, glowBrightness=0.0) 30 31 def construct_progress_bar(self): 32 self.progress_bar = Container(name='captionProgressbar', parent=self, width=200, height=3, top=-10, align=Align.CENTERTOP, display=False) 33 Fill(parent=self.progress_bar, opacity=0.2) 34 self.captionProgressbar_fill = Fill(parent=self.progress_bar, align=Align.TOLEFT_PROP, width=0, opacity=0.5) 35 36 def _apply_indication_data(self, indication_data): 37 self.caption.text = indication_data.caption 38 self.text_label.text = indication_data.text 39 texture_path = indication_data.icon 40 self.icon.texturePath = texture_path 41 self.icon.display = bool(texture_path) 42 self.layout_grid.UpdateGridLayout() 43 self.layout_grid.UpdateAlignmentAsRoot() 44 45 def set_progress_bar_value(self, value): 46 if not value: 47 self.progress_bar.display = False 48 self.captionProgressbar_fill.width = 0.0 49 self.captionProgressbar_fill.StopAnimations() 50 return 51 self.progress_bar.display = True 52 width = min(1.0, max(0, value)) 53 animations.MorphScalar(self.captionProgressbar_fill, 'width', startVal=self.captionProgressbar_fill.width, endVal=width, duration=0.25, curveType=uiconst.ANIM_LINEAR) 54 55 @property 56 def caption_glow_brightness(self): 57 return self.caption.glowBrightness 58 59 @caption_glow_brightness.setter 60 def caption_glow_brightness(self, value): 61 self.caption.glowBrightness = value 62 self.icon.glowBrightness = value