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

deltaContainer.py (2910B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\market\deltaContainer.py
      2 from carbon.common.script.util.format import FmtAmt
      3 from carbonui import const as uiconst
      4 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      5 from carbonui.util.color import Color
      6 from eve.client.script.ui.control.eveLabel import EveLabelSmall
      7 from eve.client.script.ui.control.glowSprite import GlowSprite
      8 from localization import GetByLabel
      9 
     10 class DeltaContainer(ContainerAutoSize):
     11     default_state = uiconst.UI_NORMAL
     12     default_height = 20
     13     upArrow = 'res:/UI/Texture/classes/MultiSell/up.png'
     14     downArrow = 'res:/UI/Texture/classes/MultiSell/down.png'
     15     equalSprite = 'res:/UI/Texture/classes/MultiSell/equal.png'
     16     belowColor = '<color=0xffff5050>'
     17     aboveColor = '<color=0xff00ff00>'
     18 
     19     def ApplyAttributes(self, attributes):
     20         super(DeltaContainer, self).ApplyAttributes(attributes)
     21         delta = attributes.delta
     22         self.func = attributes.func
     23         self.icon = GlowSprite(name='icon', parent=self, align=uiconst.CENTERRIGHT, width=16, height=16, state=uiconst.UI_DISABLED, color=Color.WHITE)
     24         self.deltaText = EveLabelSmall(parent=self, align=uiconst.CENTERRIGHT, left=20)
     25         self.UpdateDelta(delta)
     26 
     27     def OnClick(self):
     28         self.func()
     29 
     30     def OnMouseEnter(self, *args):
     31         self.icon.OnMouseEnter()
     32 
     33     def OnMouseExit(self, *args):
     34         self.icon.OnMouseExit()
     35 
     36     def UpdateDelta(self, delta):
     37         deltaText = self.GetDeltaText(delta)
     38         if delta > 0:
     39             self.deltaText.text = deltaText
     40             self.deltaText.align = uiconst.BOTTOMRIGHT
     41             texturePath = self.upArrow
     42         elif delta < 0:
     43             self.deltaText.text = deltaText
     44             self.deltaText.align = uiconst.TOPRIGHT
     45             texturePath = self.downArrow
     46         else:
     47             self.deltaText.text = ''
     48             texturePath = self.equalSprite
     49         self.icon.SetTexturePath(texturePath)
     50 
     51     def GetDeltaText(self, delta):
     52         if delta < 0:
     53             color = self.belowColor
     54         else:
     55             color = self.aboveColor
     56         if abs(delta) < 1.0:
     57             showFraction = 1
     58         else:
     59             showFraction = 0
     60         deltaText = '%s%s</color>' % (color, GetByLabel('UI/Common/Percentage', percentage=FmtAmt(delta * 100, showFraction=showFraction)))
     61         return deltaText
     62 
     63 
     64 class BuyDeltaContainer(DeltaContainer):
     65     upArrow = 'res:/UI/Texture/classes/MultiSell/upBuy.png'
     66     downArrow = 'res:/UI/Texture/classes/MultiSell/downBuy.png'
     67     belowColor = '<color=0xff00ff00>'
     68     aboveColor = '<color=0xffff5050>'
     69 
     70 
     71 class SellDeltaContainer(DeltaContainer):
     72     upArrow = 'res:/UI/Texture/classes/MultiSell/up.png'
     73     downArrow = 'res:/UI/Texture/classes/MultiSell/down.png'
     74     belowColor = '<color=0xffff5050>'
     75     aboveColor = '<color=0xff00ff00>'