collapseGroup.py (3262B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\info\collapseGroup.py 2 import eveicon 3 from carbonui.primitives.container import Container 4 from carbonui.primitives.containerAutoSize import ContainerAutoSize 5 from carbonui.primitives.sprite import Sprite 6 from carbonui.primitives.fill import Fill 7 from carbonui import Align, uiconst, TextColor 8 from carbonui.text.styles import TextBody 9 from carbonui.control.buttonIcon import ButtonIcon 10 from eveui import fade 11 12 class CollapseGroup(ContainerAutoSize): 13 default_icon = None 14 default_label = '' 15 default_align = Align.TOTOP 16 icon = None 17 text = None 18 header_color = None 19 20 def ApplyAttributes(self, attributes): 21 super(CollapseGroup, self).ApplyAttributes(attributes) 22 self.icon = attributes.Get('icon', self.default_icon) 23 self.text = attributes.Get('text', self.default_label) 24 self._construct_layout() 25 26 def _construct_layout(self): 27 self._construct_header() 28 self._construct_main_cont() 29 30 def _construct_header(self): 31 self.headerCont = Container(name='headerCont', parent=self, state=uiconst.UI_NORMAL, align=Align.TOTOP, height=32) 32 self.headerBG = Fill(bgParent=self.headerCont, opacity=0.05) 33 self.headerCont.OnClick = self._on_click 34 self.headerCont.OnMouseEnter = self._on_mouse_enter 35 self.headerCont.OnMouseExit = self._on_mouse_exit 36 if self.icon: 37 self.iconCont = Container(name='iconCont', parent=self.headerCont, align=Align.TOLEFT, width=24, state=uiconst.UI_DISABLED) 38 self.icon = Sprite(name='icon', parent=self.iconCont, align=Align.CENTERRIGHT, texturePath=self.icon, color=TextColor.SECONDARY, width=16, height=16, state=uiconst.UI_DISABLED) 39 self.expanderCont = Container(name='expanderCont', parent=self.headerCont, align=Align.TORIGHT, width=32, state=uiconst.UI_PICKCHILDREN) 40 self.expanderIcon = ButtonIcon(name='expander', parent=self.expanderCont, align=Align.CENTER, texturePath=eveicon.chevron_up, iconSize=18, func=self._on_click) 41 self._construct_label() 42 43 def _construct_main_cont(self): 44 self.mainCont = ContainerAutoSize(name='mainCont', parent=self, align=Align.TOTOP, state=uiconst.UI_PICKCHILDREN, padTop=2) 45 46 def _construct_label(self): 47 self.labelCont = ContainerAutoSize(name='labelCont', parent=self.headerCont, align=Align.TOALL, state=uiconst.UI_DISABLED, clipChildren=True, padTop=6) 48 self.label = TextBody(name='label', parent=self.labelCont, align=Align.TOLEFT, text=self.text, padLeft=8, color=TextColor.NORMAL, state=uiconst.UI_DISABLED, bold=True, autoFadeSides=16) 49 50 def SetCollapsed(self, collapsed): 51 if collapsed: 52 self.mainCont.Hide() 53 self.expanderIcon.SetTexturePath(eveicon.chevron_down) 54 else: 55 self.mainCont.Show() 56 self.expanderIcon.SetTexturePath(eveicon.chevron_up) 57 58 def Toggle(self): 59 self.SetCollapsed(self.mainCont.display) 60 61 def _on_click(self, *args): 62 self.Toggle() 63 64 def _on_mouse_enter(self, *args): 65 fade(self.headerBG, end_value=0.1) 66 67 def _on_mouse_exit(self, *args): 68 fade(self.headerBG, end_value=0.05)