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

alert_container.py (6670B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\control\alert_container.py
      2 import math
      3 import eveui
      4 from carbonui import Align, uiconst, PickState
      5 from carbonui import TextAlign, ButtonVariant, TextColor
      6 from carbonui.text.styles import TextHeader, TextBody
      7 from carbonui.button.const import ButtonFrameType
      8 from carbonui.control.button import Button
      9 from carbonui.primitives.container import Container
     10 from carbonui.primitives.fill import Fill
     11 from carbonui.primitives.sprite import Sprite
     12 from carbonui.primitives.stretchspritehorizontal import StretchSpriteHorizontal
     13 from carbonui.uiconst import BlendMode
     14 from eve.client.script.ui import eveColor, eveThemeColor
     15 
     16 class AlertContainer(eveui.ContainerAutoSize):
     17     default_pickState = PickState.CHILDREN
     18     default_alignMode = Align.TOTOP
     19     COLOR_OPACITY = 0.1
     20 
     21     def __init__(self, title = None, title_color = TextColor.HIGHLIGHT, description = None, button_label = None, button_icon = None, button_action = None, button_variant = ButtonVariant.NORMAL, *args, **kwargs):
     22         super(AlertContainer, self).__init__(*args, **kwargs)
     23         self._title = title
     24         self.button = None
     25         self._title_color = title_color
     26         self._description = description
     27         self._button_action = button_action
     28         self._button_label = button_label
     29         self._button_variant = button_variant
     30         self._button_icon = button_icon
     31         self._create_underlay()
     32         self._construct_alert()
     33 
     34     def _add_left_for_underlay(self):
     35         left_container = Container(align=Align.TOLEFT, parent=self, width=16)
     36         Sprite(parent=left_container, align=Align.TOTOP, height=16, texturePath='res:/UI/Texture/shared/corner_16px.png', opacity=self.COLOR_OPACITY, color=eveThemeColor.THEME_FOCUSDARK, blendMode=BlendMode.ADD)
     37         Fill(parent=left_container, color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, align=Align.TOTOP, height=53, width=8, blendMode=BlendMode.ADD)
     38         Sprite(parent=left_container, align=Align.TOBOTTOM, height=16, texturePath='res:/UI/Texture/shared/corner_16px.png', opacity=self.COLOR_OPACITY, rotation=math.radians(90), color=eveThemeColor.THEME_FOCUSDARK, blendMode=BlendMode.ADD)
     39         Fill(parent=left_container, color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, align=Align.TOBOTTOM, height=53, width=16, blendMode=BlendMode.ADD)
     40         Sprite(name='left_indent', parent=left_container, align=Align.TOALL, texturePath='res:/UI/Texture/classes/Opportunities/side_indent.png', color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, rotation=math.radians(90), leftEdgeSize=8, rightEdgeSize=8, blendMode=BlendMode.ADD)
     41 
     42     def _add_right_for_underlay(self):
     43         right_container = Container(align=Align.TORIGHT, parent=self, width=16)
     44         Sprite(parent=right_container, align=Align.TOTOP, height=16, texturePath='res:/UI/Texture/shared/corner_16px.png', opacity=self.COLOR_OPACITY, rotation=math.radians(270), color=eveThemeColor.THEME_FOCUSDARK, blendMode=BlendMode.ADD)
     45         Fill(parent=right_container, color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, align=Align.TOTOP, height=53, width=16, blendMode=BlendMode.ADD)
     46         Sprite(parent=right_container, align=Align.TOBOTTOM, height=16, texturePath='res:/UI/Texture/shared/corner_16px.png', opacity=self.COLOR_OPACITY, rotation=math.radians(180), color=eveThemeColor.THEME_FOCUSDARK, blendMode=BlendMode.ADD)
     47         Fill(parent=right_container, color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, align=Align.TOBOTTOM, height=53, width=16, blendMode=BlendMode.ADD)
     48         Sprite(name='right_indent', parent=right_container, align=Align.TOALL, texturePath='res:/UI/Texture/classes/Opportunities/side_indent.png', color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, leftEdgeSize=8, rightEdgeSize=8, rotation=math.radians(270), blendMode=BlendMode.ADD)
     49 
     50     def _add_top_for_underlay(self):
     51         top_container = Container(align=Align.TOTOP, parent=self, height=8)
     52         Fill(parent=top_container, color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, blendMode=BlendMode.ADD, align=Align.TOLEFT_PROP, width=0.4)
     53         Fill(parent=top_container, color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, blendMode=BlendMode.ADD, align=Align.TORIGHT_PROP, width=0.4)
     54         StretchSpriteHorizontal(name='top_indent', parent=top_container, align=Align.TOALL, texturePath='res:/UI/Texture/Shared/panel_cutout.png', color=eveThemeColor.THEME_FOCUSDARK, rotation=math.radians(180), opacity=self.COLOR_OPACITY, leftEdgeSize=8, rightEdgeSize=8, blendMode=BlendMode.ADD)
     55 
     56     def _add_bottom_for_underlay(self):
     57         container = Container(align=Align.TOBOTTOM, parent=self, height=8)
     58         Fill(parent=container, color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, blendMode=BlendMode.ADD, align=Align.TOLEFT_PROP, width=0.4)
     59         Fill(parent=container, color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, blendMode=BlendMode.ADD, align=Align.TORIGHT_PROP, width=0.4)
     60         StretchSpriteHorizontal(name='bottom_indent', parent=container, align=Align.TOALL, texturePath='res:/UI/Texture/Shared/panel_cutout.png', color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, leftEdgeSize=8, rightEdgeSize=8, blendMode=BlendMode.ADD)
     61 
     62     def _create_underlay(self):
     63         self._add_left_for_underlay()
     64         self._add_right_for_underlay()
     65         self._add_top_for_underlay()
     66         self._add_bottom_for_underlay()
     67         Fill(parent=self, color=eveThemeColor.THEME_FOCUSDARK, opacity=self.COLOR_OPACITY, blendMode=BlendMode.ADD)
     68 
     69     def _construct_alert(self):
     70         self.content_container = eveui.ContainerAutoSize(parent=self, align=Align.TOTOP, padTop=64, padBottom=64, padRight=32, padLeft=32)
     71         text_container = eveui.ContainerAutoSize(parent=self.content_container, align=Align.TOTOP, clipChildren=True)
     72         TextHeader(parent=text_container, textAlign=TextAlign.CENTER, align=Align.TOTOP, text=self._title.upper(), wrapMode=uiconst.WRAPMODE_FORCEWORD, padBottom=4, color=self._title_color)
     73         TextBody(parent=text_container, textAlign=TextAlign.CENTER, align=Align.TOTOP, text=self._description, wrapMode=uiconst.WRAPMODE_FORCEWORD, padBottom=16)
     74         button_container = eveui.ContainerAutoSize(parent=self.content_container, align=Align.TOTOP)
     75         self.button = Button(parent=button_container, align=Align.CENTER, label=self._button_label, func=self._button_action, frame_type=ButtonFrameType.CUT_BOTTOM_LEFT_RIGHT, variant=self._button_variant, texturePath=self._button_icon)