utilBtns.py (2047B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\fitting\utilBtns.py 2 from carbon.client.script.environment.AudioUtil import PlaySound 3 from eve.client.script.ui.control.eveIcon import Icon 4 from localization import GetByLabel 5 import carbonui.const as uiconst 6 7 class FittingUtilBtn(Icon): 8 default_height = 16 9 default_width = 16 10 default_pickradius = -1 11 default_idx = 0 12 default_ignoreSize = True 13 14 def ApplyAttributes(self, attributes): 15 Icon.ApplyAttributes(self, attributes) 16 self.controller = attributes.controller 17 btnData = attributes.btnData 18 self.isActive = btnData.isActive 19 self.clickFunc = btnData.func 20 self.mouseOverFunc = attributes.mouseOverFunc 21 self.color.a = 0.0 22 iconHint = btnData.hint 23 if not self.isActive: 24 if self.controller.GetModule() is None or self.controller.SlotExists(): 25 iconHint = GetByLabel('UI/Fitting/Disabled', moduleName=btnData.hint) 26 else: 27 iconHint = GetByLabel('UI/Fitting/CantOnlineIllegalSlot') 28 self.hint = iconHint 29 30 def OnClick(self, *args): 31 PlaySound(uiconst.SOUND_BUTTON_CLICK) 32 if self.isActive and self.clickFunc: 33 self.clickFunc(*args) 34 35 def OnMouseEnter(self, *args): 36 PlaySound(uiconst.SOUND_BUTTON_HOVER) 37 self.mouseOverFunc(*args) 38 39 def SetBtnColorBasedOnIsActive(self): 40 if self.isActive: 41 self.opacity = 1.0 42 else: 43 self.opacity = 0.25 44 45 def Hide(self): 46 self.opacity = 0.0 47 48 def Close(self): 49 self.controller = None 50 Icon.Close(self) 51 52 def GetHint(self): 53 if self.opacity == 0.0: 54 return 55 return self.hint 56 57 58 class UtilBtnData(object): 59 60 def __init__(self, hint, iconPath, func, isActive, onlineBtn): 61 self.hint = hint 62 self.iconPath = iconPath 63 self.func = func 64 self.isActive = isActive 65 self.onlineBtn = onlineBtn