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

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()