home_page_section.py (3491B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\jobboard\client\features\seasons\home_page_section.py 2 import carbonui.text.styles 3 import eveui 4 import trinity 5 import carbonui 6 import localization 7 from carbonui import Align, PickState 8 from carbonui.primitives.container import Container 9 from carbonui.primitives.containerAutoSize import ContainerAutoSize 10 from carbonui.primitives.frame import Frame 11 from eve.client.script.ui import eveColor 12 from jobboard.client import get_provider, ProviderType, job_board_signals 13 from seasons.client.util import OpenSeasonsWindow 14 15 class SeasonHomePageSection(Container): 16 default_align = Align.TOTOP 17 default_height = 242 18 default_clipChildren = True 19 default_display = False 20 default_pickState = False 21 22 def __init__(self, *args, **kwargs): 23 super(SeasonHomePageSection, self).__init__(*args, **kwargs) 24 self._provider = get_provider(ProviderType.SEASONS) 25 self._refresh() 26 self._register() 27 28 def Close(self): 29 super(SeasonHomePageSection, self).Close() 30 self._unregister() 31 32 def _register(self): 33 job_board_signals.on_job_provider_state_changed.connect(self._on_job_provider_state_changed) 34 35 def _unregister(self): 36 job_board_signals.on_job_provider_state_changed.disconnect(self._on_job_provider_state_changed) 37 38 def _on_job_provider_state_changed(self, provider): 39 if self._provider.PROVIDER_ID == provider.PROVIDER_ID: 40 self._refresh() 41 42 def _refresh(self): 43 self.Flush() 44 if self._provider.is_hidden: 45 self.display = False 46 else: 47 SeasonAdvert(parent=self, align=Align.TOLEFT, header=localization.GetByMessageID(1056273), subheader=localization.GetByMessageID(1056274)) 48 self.display = True 49 50 51 class SeasonAdvert(Container): 52 default_state = carbonui.uiconst.UI_NORMAL 53 default_width = 700 54 default_height = 242 55 56 def __init__(self, header, subheader, *args, **kwargs): 57 super(SeasonAdvert, self).__init__(*args, **kwargs) 58 self._consruct_text(header, subheader) 59 self._construct_underlay() 60 61 def _consruct_text(self, header, subheader): 62 text_container = ContainerAutoSize(parent=self, align=Align.TOBOTTOM_NOPUSH, padding=(20, 20, 40, 20)) 63 carbonui.text.styles.TextHeadline(parent=text_container, align=Align.TOTOP, maxLines=1, text=header, bold=True, color=carbonui.TextColor.HIGHLIGHT) 64 if subheader: 65 carbonui.text.styles.TextBody(parent=text_container, align=Align.TOTOP, maxLines=2, text=subheader) 66 67 def _construct_underlay(self): 68 self._hover_frame = Frame(name='hover_frame', parent=self, texturePath='res:/UI/Texture/classes/Opportunities/advert_mask.png', cornerSize=16, color=eveColor.BLACK, opacity=0.25, pickState=PickState.OFF) 69 self._bg_sprite = eveui.Sprite(name='bg_image', parent=self, align=Align.TOALL, texturePath='res:/UI/Texture/classes/Opportunities/CH26_Air-Opportunities-Window_700x242.png', textureSecondaryPath='res:/UI/Texture/classes/Opportunities/advert_mask.png', spriteEffect=trinity.TR2_SFX_MODULATE, pickState=PickState.OFF) 70 71 def OnMouseEnter(self, *args): 72 eveui.Sound.entry_hover.play() 73 eveui.fade_in(self._hover_frame, end_value=0.05, duration=0.2) 74 75 def OnMouseExit(self, *args): 76 eveui.fade(self._hover_frame, end_value=0.25, duration=0.2) 77 78 def OnClick(self, *args): 79 OpenSeasonsWindow()