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

colorBlindHuePicker.py (2615B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\util\colorBlindHuePicker.py
      2 from carbonui.primitives.container import Container
      3 from carbonui.primitives.fill import Fill
      4 from carbonui.uianimations import animations
      5 from carbonui.util import colorblind
      6 from carbonui.util.color import Color
      7 import carbonui.const as uiconst
      8 from eve.client.script.ui.control.eveWindowUnderlay import RaisedUnderlay
      9 from localization import GetByLabel
     10 OPACITY_DISABLED = 0.05
     11 SIZE = 16
     12 
     13 class ColorBlindHuePicker(Container):
     14     default_name = 'ColorBlindHuePicker'
     15     default_height = SIZE
     16 
     17     def ApplyAttributes(self, attributes):
     18         Container.ApplyAttributes(self, attributes)
     19         self.onHueClicked = attributes.onHueClicked
     20         self.hueContainers = []
     21         for hue in colorblind.HUES:
     22             hueCont = HueContainer(parent=self, align=uiconst.TOLEFT, width=41, hue=hue, onClick=self.OnHueClicked, padLeft=1)
     23             self.hueContainers.append(hueCont)
     24 
     25     def GetActiveHues(self):
     26         return [ hueCont.GetHUE() for hueCont in self.hueContainers if hueCont.IsActive() ]
     27 
     28     def OnHueClicked(self, hue):
     29         self.onHueClicked(hue)
     30 
     31     def UpdateHues(self):
     32         for hue in self.hueContainers:
     33             hue.UpdateIsActive()
     34 
     35 
     36 class HueContainer(Container):
     37     default_name = 'HueContainer'
     38     default_state = uiconst.UI_NORMAL
     39     default_hint = GetByLabel('UI/SystemMenu/GeneralSettings/ColorBlindToggleHint')
     40 
     41     def ApplyAttributes(self, attributes):
     42         Container.ApplyAttributes(self, attributes)
     43         self.hue = attributes.hue
     44         self.onClick = attributes.onClick
     45         self.isActive = None
     46         color = Color().SetHSB(self.hue, 1.0, 1.0).GetRGBA()
     47         Fill(parent=self, color=color, ignoreColorBlindMode=True, padding=2)
     48         self.underlay = RaisedUnderlay(bgParent=self)
     49         self.UpdateIsActive()
     50 
     51     def UpdateIsActive(self):
     52         self.StopAnimations()
     53         self.isActive = self.hue in colorblind.GetCurrentHues()
     54         self.opacity = 1.0 if self.isActive else OPACITY_DISABLED
     55         self.underlay.opacity = 1.0 if self.isActive else 0.0
     56 
     57     def IsActive(self):
     58         return self.isActive
     59 
     60     def OnClick(self, *args):
     61         self.onClick(self.hue)
     62 
     63     def GetHUE(self):
     64         return self.hue
     65 
     66     def OnMouseEnter(self, *args):
     67         opacity = 0.5
     68         animations.FadeTo(self, self.opacity, opacity, duration=0.3)
     69 
     70     def OnMouseExit(self, *args):
     71         opacity = 1.0 if self.isActive else OPACITY_DISABLED
     72         animations.FadeTo(self, self.opacity, opacity, duration=0.3)