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

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