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

studioPageContainer.py (4142B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\pages\studio\studioPageContainer.py
      2 from carbonui import uiconst
      3 from carbonui.primitives.container import Container
      4 from carbonui.uianimations import animations
      5 from cosmetics.client.ships.skins.live_data import current_skin_design
      6 from eve.client.script.ui.cosmetics.ship.const import SkinrPage
      7 from eve.client.script.ui.cosmetics.ship.pages.studio import studioSignals
      8 from eve.client.script.ui.cosmetics.ship.pages import current_page
      9 from eve.client.script.ui.cosmetics.ship.pages.studio.nameAndTierContainer import NameAndTierContainer
     10 from eve.client.script.ui.cosmetics.ship.pages.studio.studioDesignerPage import StudioDesignerPage
     11 from eve.client.script.ui.cosmetics.ship.pages.homepage.studioHomePage import StudioHomePage
     12 from eve.client.script.ui.cosmetics.ship.pages.sequence.studioSequencePage import StudioSequencePage
     13 
     14 class StudioPageContainer(Container):
     15     is_loaded = False
     16     page_id = None
     17 
     18     def construct_layout(self):
     19         self.content = Container(name='content', parent=self)
     20         self.home_page = StudioHomePage(parent=self.content, state=uiconst.UI_HIDDEN)
     21         self.designer_page = StudioDesignerPage(parent=self.content, state=uiconst.UI_HIDDEN)
     22         self.name_and_tier_cont = NameAndTierContainer(parent=self.content, state=uiconst.UI_HIDDEN)
     23         self.sequence_page = StudioSequencePage(parent=self, state=uiconst.UI_HIDDEN)
     24 
     25     def load_panel(self, page_id = None, page_args = None):
     26         if not self.is_loaded:
     27             self.is_loaded = True
     28             self.construct_layout()
     29             self.connect_signals()
     30             self.show_page(page_id, page_args, animate=False)
     31 
     32     def Close(self):
     33         try:
     34             if self.is_loaded:
     35                 self.disconnect_signals()
     36         finally:
     37             super(StudioPageContainer, self).Close()
     38 
     39     def connect_signals(self):
     40         self.home_page.on_create_new_design_btn.connect(self.on_create_new_design_btn)
     41         self.designer_page.on_create_btn.connect(self.on_designer_create_btn)
     42         studioSignals.on_page_opened.connect(self.on_page_opened)
     43 
     44     def on_page_opened(self, page_id, page_args, last_page_id, animate = True):
     45         self.show_page(page_id, page_args, animate)
     46 
     47     def disconnect_signals(self):
     48         self.home_page.on_create_new_design_btn.disconnect(self.on_create_new_design_btn)
     49         self.designer_page.on_create_btn.disconnect(self.on_designer_create_btn)
     50         studioSignals.on_page_opened.disconnect(self.on_page_opened)
     51 
     52     def show_page(self, page_id, page_args = None, animate = True):
     53         if page_id == SkinrPage.STUDIO:
     54             self.show_home_page(page_args)
     55         elif page_id == SkinrPage.STUDIO_DESIGNER:
     56             self.show_designer_page()
     57         elif page_id == SkinrPage.STUDIO_SEQUENCING:
     58             self.show_sequence_page()
     59         self.update_content_right_padding(animate)
     60 
     61     def on_designer_create_btn(self):
     62         current_page.set_page_id(SkinrPage.STUDIO_SEQUENCING)
     63 
     64     def on_create_new_design_btn(self):
     65         current_page.set_page_id(SkinrPage.STUDIO_DESIGNER)
     66 
     67     def show_home_page(self, page_args = None, animate = True):
     68         self.home_page.LoadPanel(page_args)
     69         self.designer_page.UnloadPanel()
     70         self.sequence_page.UnloadPanel()
     71         self.name_and_tier_cont.UnloadPanel()
     72 
     73     def show_sequence_page(self, animate = True):
     74         self.sequence_page.LoadPanel()
     75         self.designer_page.UnloadPanel()
     76         self.home_page.UnloadPanel()
     77         self.name_and_tier_cont.LoadPanel()
     78 
     79     def update_content_right_padding(self, animate = True):
     80         width = current_page.get_content_right_padding()
     81         if animate:
     82             animations.MorphScalar(self.content, 'padRight', self.content.padRight, width, duration=0.6)
     83         else:
     84             self.content.padRight = width
     85 
     86     def show_designer_page(self, animate = True):
     87         self.designer_page.LoadPanel()
     88         self.home_page.UnloadPanel()
     89         self.sequence_page.UnloadPanel()
     90         self.name_and_tier_cont.LoadPanel()