timedBracket.py (2207B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\bracketsAndTargets\timedBracket.py 2 from carbonui.primitives.container import Container 3 from carbonui.primitives.fill import Fill 4 from carbonui.primitives.frame import Frame 5 from eve.client.script.ui.inflight.bracketsAndTargets.inSpaceBracket import InSpaceBracket 6 import blue 7 import carbonui.const as uiconst 8 from carbonui.uicore import uicore 9 10 class TimedBracket(InSpaceBracket): 11 12 def __init__(self, **kwargs): 13 super(TimedBracket, self).__init__(**kwargs) 14 self.width = self.height = 32 15 container = Container(parent=self, align=uiconst.CENTER, top=12, height=30, width=64) 16 self.timer = Timer(parent=container, align=uiconst.TOTOP, height=12, state=uiconst.UI_HIDDEN) 17 self.SetUnlocking(self.slimItem) 18 19 def Animate(self, startProportion, duration): 20 self.timer.state = uiconst.UI_NORMAL 21 self.timer.Animate(startProportion, float(duration)) 22 23 def OnSlimItemChange(self, oldSlim, newSlim): 24 self.SetUnlocking(newSlim) 25 26 def SetUnlocking(self, slimItem): 27 if slimItem.timerInfo is not None: 28 startProportion, duration = self.GetAnimationInfo(*slimItem.timerInfo) 29 self.Animate(startProportion, duration) 30 31 def GetAnimationInfo(self, startTime, duration): 32 durationInBlueTime = duration * const.SEC 33 endTime = startTime + durationInBlueTime 34 currentTime = blue.os.GetSimTime() 35 if endTime < currentTime: 36 return (1.0, duration) 37 startProportion = (currentTime - startTime) / durationInBlueTime 38 return (startProportion, duration) 39 40 41 class Timer(Container): 42 43 def ApplyAttributes(self, attributes): 44 super(Timer, self).ApplyAttributes(attributes) 45 self.frame = Frame(parent=self) 46 self.fill = Fill(parent=self, align=uiconst.TOLEFT_PROP, width=0, padding=(2, 2, 2, 2)) 47 48 def Animate(self, startProportion, duration): 49 self.fill.width = startProportion 50 uicore.animations.MorphScalar(self.fill, 'width', startVal=float(startProportion), endVal=1.0, duration=duration, loops=1, curveType=uiconst.ANIM_LINEAR)