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)