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

nebulaSelector.py (2221B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\pages\studio\nebulaSelector.py
      2 import localization
      3 from carbonui import Align
      4 from carbonui.primitives.container import Container
      5 from carbonui.control.combo import Combo
      6 from eve.client.script.ui.cosmetics.ship.pages.studio import studioSignals
      7 from eve.client.script.ui.cosmetics.ship.pages.studio import nebulaConsts
      8 
      9 class NebulaSelector(Container):
     10     default_width = 400
     11     default_height = 400
     12 
     13     def __init__(self, *args, **kwargs):
     14         super(NebulaSelector, self).__init__(*args, **kwargs)
     15         self.nebula_combo = None
     16         self.connect_signals()
     17         if nebulaConsts.skinr_nebula_backgrounds_enabled():
     18             self.create_and_apply_background()
     19 
     20     def Close(self):
     21         try:
     22             self.disconnect_signals()
     23         finally:
     24             super(NebulaSelector, self).Close()
     25 
     26     def connect_signals(self):
     27         studioSignals.on_backgrounds_enabled.connect(self.toggle_nebula_selector)
     28 
     29     def disconnect_signals(self):
     30         studioSignals.on_backgrounds_enabled.disconnect(self.toggle_nebula_selector)
     31 
     32     def toggle_nebula_selector(self, backgrounds_enabled):
     33         if backgrounds_enabled():
     34             if self.nebula_combo is None:
     35                 self.create_and_apply_background()
     36         else:
     37             self.disable_background()
     38 
     39     def create_and_apply_background(self):
     40         self.create_combo()
     41         self.nebula_combo.SetValue(nebulaConsts.SELECTED_SKINR_BACKGROUND.get())
     42 
     43     def disable_background(self):
     44         self.nebula_combo.Close()
     45         self.nebula_combo = None
     46         nebulaConsts.SELECTED_SKINR_BACKGROUND.set(nebulaConsts.BackgroundEnum.Empty)
     47 
     48     def create_combo(self):
     49         self.nebula_combo = Combo(parent=self, name='nebula_combo', callback=self.on_combo, options=self.get_nebula_combo_options(), padding=(55, 0, 16, 0), align=Align.TOTOP)
     50 
     51     def get_nebula_combo_options(self):
     52         return [ (localization.GetByLabel(value), key) for key, value in nebulaConsts.SKINR_NEBULA_LOC_LABELS.items() ]
     53 
     54     def on_combo(self, *args):
     55         nebulaConsts.SELECTED_SKINR_BACKGROUND.set(self.nebula_combo.GetValue())