expanded_bracket.py (3650B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\bracketsAndTargets\expanded_bracket.py 2 import carbonui.text.styles 3 from carbonui.primitives.sprite import Sprite 4 import carbonui 5 import evetypes 6 import uthread2 7 from carbon.common.script.util.format import FmtDist 8 from carbonui import Align, uiconst, PickState, TextColor 9 from carbonui.primitives.containerAutoSize import ContainerAutoSize 10 from carbonui.primitives.frame import Frame 11 from carbonui.primitives.layoutGrid import LayoutGrid 12 from carbonui.primitives.stretchspritehorizontal import StretchSpriteHorizontal 13 from carbonui.uianimations import animations 14 from chroma import Color 15 from eve.client.script.remote.michelle import GetMichelle 16 from eve.client.script.ui import eveColor 17 from eve.client.script.ui.inflight.bracketsAndTargets.bracket_attachment_mixin import BracketAttachmentMixin 18 from localization import GetByLabel 19 20 def get_label_and_value_formatted(label, value): 21 label_color = Color(*eveColor.WHITE) 22 a = TextColor.HIGHLIGHT.a 23 text_color = Color(a, a, a, 1.0) 24 return u'<color={}><b>{}</b></color> <color={}>{}</color>'.format(label_color.hex_argb, label, text_color.hex_argb, value) 25 26 27 class ExpandedBracket(BracketAttachmentMixin, ContainerAutoSize): 28 default_alignMode = Align.TOPLEFT 29 default_state = uiconst.UI_PICKCHILDREN 30 31 def __init__(self, item_id, bracket, **kwargs): 32 super(ExpandedBracket, self).__init__(bracket=bracket, **kwargs) 33 self.x_offset = 118 34 self.y_offset = 60 35 self.item_id = item_id 36 self.slim_item = GetMichelle().GetBallpark().GetSlimItem(item_id) 37 self.construct_layout() 38 self.main_label.DelegateEvents(bracket) 39 uthread2.start_tasklet(self.initialize) 40 41 def initialize(self): 42 self.update() 43 self.anim_entry() 44 45 def anim_entry(self): 46 animations.FadeTo(self.callout_line, 0.0, 0.5, duration=0.2) 47 animations.SpMaskIn(self.callout_line, duration=0.2) 48 for i, c in enumerate(self.layout_grid.children): 49 animations.FadeTo(c, 0.0, c.opacity, duration=0.1, timeOffset=0.1 + i * 0.02) 50 51 def construct_layout(self): 52 self.layout_grid = LayoutGrid(parent=self, align=Align.TOPLEFT, columns=1, cellSpacing=(0, 4), top=8) 53 self.construct_main_label() 54 self.construct_labels() 55 self.callout_line = Sprite(parent=self, name='calloutLine', align=Align.TOPLEFT, texturePath='res:/UI/Texture/classes/Bracket/callout_line_diagonal.png', pos=(-100, -46, 95, 65), opacity=0.0) 56 57 def construct_main_label(self): 58 label_cont = ContainerAutoSize(name='main_label_cont', parent=self.layout_grid, align=Align.CENTERLEFT) 59 self.main_label = carbonui.text.styles.TextBody(parent=label_cont, align=uiconst.CENTERLEFT, color=eveColor.WHITE, shadowOffset=(1, 1), text=evetypes.GetName(self.slim_item.typeID), padBottom=4, pickState=PickState.ON) 60 Frame(bgParent=label_cont, texturePath='res:/UI/Texture/Shared/DarkStyle/panel1CornerTopRight.png', cornerSize=10, opacity=0.2, padding=(-8, -4, -8, 0)) 61 62 def construct_labels(self): 63 self.distance_label = carbonui.text.styles.TextDetail(name='distance_label', parent=self.layout_grid, pickState=PickState.OFF) 64 65 def update(self, is_bracket_floating = True): 66 self.distance_label.text = self.get_distance_text() 67 self.display = is_bracket_floating 68 69 def get_distance_text(self): 70 ball = GetMichelle().GetBall(self.item_id) 71 if ball: 72 return get_label_and_value_formatted(GetByLabel('UI/Common/Distance'), FmtDist(ball.surfaceDist))