panelSkin.py (2840B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\info\shipInfoPanels\panelSkin.py 2 import carbonui.const as uiconst 3 import eveicon 4 import localization 5 import logging 6 import uthread2 7 from carbonui import Align 8 from carbonui.uianimations import animations 9 from eve.client.script.ui.control.eveLoadingWheel import LoadingWheel 10 from eve.client.script.ui.shared.info.shipInfoConst import TAB_SKINS, ANGLE_SKINS 11 from eve.client.script.ui.shared.info.shipInfoPanels.panelBase import PanelBase 12 from eve.client.script.ui.shared.skins.controller import ShipInfoSkinPanelController 13 from eve.client.script.ui.shared.skins.skinPanel import SkinPanel 14 logger = logging.getLogger(__name__) 15 PANEL_WIDTH = 416 16 17 class PanelSkins(PanelBase): 18 19 @classmethod 20 def get_name(cls): 21 return localization.GetByLabel('UI/InfoWindow/TabNames/Skins') 22 23 @classmethod 24 def get_icon(cls): 25 return eveicon.skins 26 27 def get_tab_type(self): 28 return TAB_SKINS 29 30 def get_camera_position(self): 31 return ANGLE_SKINS 32 33 def _construct_content(self): 34 uthread2.Yield() 35 self.skinPanel = ShipInfoSkinPanel(parent=self.rightCont, align=uiconst.TOALL, controller=self._controller.skin_controller, settingsPrefix='Preview_SkinPanel', logContext='PreviewWindow') 36 self.loadingWheel = LoadingWheel(parent=self.rightCont, align=Align.CENTER, opacity=0.0) 37 uthread2.StartTasklet(self._load_panel_task) 38 39 def _load_panel_task(self): 40 selectedSkin = None 41 if self._params: 42 selectedSkin = self._params.get('skin', None) 43 animations.FadeIn(self.loadingWheel) 44 self.skinPanel.SetPreviewType(self.typeID) 45 self.skinPanel.Load(selectedSkin) 46 if selectedSkin: 47 self._controller.skin_controller.SetPreviewed(selectedSkin) 48 animations.FadeOut(self.loadingWheel) 49 50 def _enable_expanded_view(self): 51 self.skinPanel.SetParent(self.rightCont) 52 self.skinPanel.SetCompactMode(False) 53 54 def show_minimized_view(self, is_compact): 55 super(PanelSkins, self).show_minimized_view(True) 56 self.skinPanel.SetParent(self.minimizedCont) 57 self.skinPanel.SetCompactMode(True) 58 59 def _construct_minimized_content_scroll(self): 60 pass 61 62 def on_reset(self, initialize): 63 if initialize: 64 return 65 self._controller.reset_skin() 66 67 def _on_skin_controller_on_change(self): 68 skin = self.skinController.previewed or self.skinController.pending or self.skinController.applied 69 self._controller.change_skin(skin) 70 71 def _get_compact_top_padding(self): 72 return 200 73 74 75 class ShipInfoSkinPanel(SkinPanel): 76 77 def Close(self): 78 super(SkinPanel, self).Close() 79 sm.UnregisterForNotifyEvent(self, 'OnDefaultSkinSet')