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