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)