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

info_container.py (3633B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\ui\window\page\rewards\info_container.py
      2 import threadutils
      3 from carbonui import Align, Density, uiconst
      4 from carbonui.control.button import Button
      5 from carbonui.primitives.container import Container
      6 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      7 from carbonui.primitives.frame import Frame
      8 from carbonui.primitives.sprite import Sprite
      9 from carbonui.text.styles import TextBody
     10 from eve.client.script.ui import eveThemeColor, eveColor
     11 from eve.client.script.ui.shared.neocom.characterSheetWindow import CharacterSheetWindow
     12 from localization import GetByLabel
     13 
     14 class InfoContainer(Container):
     15 
     16     def __init__(self, text, *args, **kwargs):
     17         super(InfoContainer, self).__init__(*args, **kwargs)
     18         self.text = text
     19         self.construct_layout()
     20         self.update()
     21 
     22     def construct_layout(self):
     23         content_container = Container(name='content_container', parent=self, align=Align.VERTICALLY_CENTERED, height=16)
     24         icon_container = Container(name='icon_container', parent=content_container, align=Align.TOLEFT, pos=(0, 0, 16, 16), padLeft=8)
     25         self.icon_circle = Sprite(name='icon_circle', parent=icon_container, align=Align.CENTER, texturePath='res:/UI/Texture/classes/Achievements/info_container/info_icon_circle.png', outputMode=uiconst.OUTPUT_COLOR_AND_GLOW, pos=(0, 0, 16, 16))
     26         Sprite(name='icon_symbol', parent=icon_container, align=Align.CENTER, texturePath='res:/UI/Texture/classes/Achievements/info_container/info_icon_symbol.png', pos=(0, 0, 2, 6))
     27         button_container = ContainerAutoSize(name='button_container', parent=content_container, align=Align.TORIGHT, height=24, padding=(8, 0, 8, 0))
     28         Button(name='character_sheet_button', parent=button_container, align=Align.VERTICALLY_CENTERED, label=GetByLabel('UI/Achievements/Window/Rewards/OpenCharacterSheet'), density=Density.COMPACT, func=self.open_character_sheet)
     29         self.label_container = Container(name='label_container', parent=content_container, align=Align.VERTICALLY_CENTERED, padLeft=8)
     30         self.label = TextBody(name='label', parent=self.label_container, align=Align.TOLEFT, shadowColor=eveColor.BLACK, maxLines=1, autoFadeSides=16)
     31         self.corner = Sprite(name='corner', parent=self, align=Align.TOPLEFT, texturePath='res:/UI/Texture/classes/Achievements/info_container/info_corner.png', pos=(0, 0, 8, 8))
     32         self.frame = Frame(name='frame', parent=self, texturePath='res:/UI/Texture/classes/Achievements/info_container/info_frame.png', cornerSize=13)
     33 
     34     @threadutils.highlander_threaded
     35     def update(self):
     36         self.update_background()
     37         self.update_icon()
     38         self.update_label()
     39 
     40     def update_background(self):
     41         self.corner.color = eveThemeColor.THEME_FOCUS
     42         self.frame.color = eveThemeColor.THEME_FOCUSDARK
     43         self.frame.opacity = 0.6
     44 
     45     def update_icon(self):
     46         self.icon_circle.color = eveThemeColor.THEME_FOCUS
     47         self.icon_circle.glowBrightness = 0.5
     48 
     49     def update_label(self):
     50         self.label.text = self.text
     51         _, h = TextBody.MeasureTextSize(self.text, maxLines=1)
     52         self.label_container.height = h
     53 
     54     @threadutils.highlander_threaded
     55     def open_character_sheet(self, *args):
     56         CharacterSheetWindow.OpenDecorationsToTitles()
     57 
     58     def OnColorThemeChanged(self):
     59         super(InfoContainer, self).OnColorThemeChanged()
     60         self.update()
     61 
     62     def OnGlobalFontSizeChanged(self):
     63         super(InfoContainer, self).OnGlobalFontSizeChanged()
     64         self.update()