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

topBanner.py (4359B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\itemTrader\topBanner.py
      2 import carbonui
      3 import carbonui.text.styles
      4 import eveicon
      5 import evetypes
      6 from carbon.common.script.util.format import FmtAmt
      7 from carbonui import const as uiconst, TextColor
      8 from carbonui.primitives.container import Container
      9 from carbonui.primitives.containerAutoSize import ContainerAutoSize
     10 from carbonui.primitives.sprite import Sprite
     11 from eve.client.script.ui.inflight.itemTrader.recipeUtil import LoadRecipeTooltipPanel
     12 from eve.common.script.util.eveFormat import FmtISK
     13 from localization import GetByLabel
     14 
     15 class TopBanner(Container):
     16     default_align = uiconst.TOTOP
     17     default_height = 60
     18     default_clipChildren = True
     19     default_state = uiconst.UI_NORMAL
     20 
     21     def ApplyAttributes(self, attributes):
     22         super(TopBanner, self).ApplyAttributes(attributes)
     23         self.recipe = None
     24         text = GetByLabel('UI/Inflight/SpaceComponents/ItemTrader/TradeRatio')
     25         carbonui.text.styles.TextDetail(parent=self, align=uiconst.TOTOP, color=TextColor.SECONDARY, text=text, top=6)
     26         self.recipeCont = Container(name='recipeCont', parent=self, align=uiconst.TOALL, padBottom=8)
     27 
     28     def LoadRecipe(self, recipe):
     29         self.recipeCont.Flush()
     30         self.recipe = recipe
     31         lastPlusLabelCont = None
     32         if self.recipe.inputIsk:
     33             TopBannerIsk(parent=self.recipeCont, amount=self.recipe.inputIsk)
     34             lastPlusLabelCont = PlusLabelCont(parent=self.recipeCont)
     35         for typeID, qty in recipe.inputItems.iteritems():
     36             TopBannerItem(parent=self.recipeCont, typeID=typeID, qty=qty)
     37             lastPlusLabelCont = PlusLabelCont(parent=self.recipeCont)
     38 
     39         if lastPlusLabelCont:
     40             lastPlusLabelCont.Close()
     41             lastPlusLabelCont = None
     42         tradeIcon = Sprite(parent=ContainerAutoSize(parent=self.recipeCont, align=uiconst.TOLEFT, padding=(8, 0, 8, 0)), align=uiconst.CENTERLEFT, pos=(0, 0, 16, 16), texturePath=eveicon.trade, color=TextColor.SECONDARY)
     43         for typeID, qty in recipe.outputItems.iteritems():
     44             TopBannerItem(parent=self.recipeCont, typeID=typeID, qty=qty)
     45             lastPlusLabelCont = PlusLabelCont(parent=self.recipeCont)
     46 
     47         if lastPlusLabelCont:
     48             lastPlusLabelCont.Close()
     49 
     50     def LoadTooltipPanel(self, tooltipPanel, *args):
     51         LoadRecipeTooltipPanel(tooltipPanel, self.recipe)
     52 
     53 
     54 class TopBannerIsk(ContainerAutoSize):
     55     default_align = uiconst.TOLEFT
     56 
     57     def ApplyAttributes(self, attributes):
     58         super(TopBannerIsk, self).ApplyAttributes(attributes)
     59         amount = attributes.amount
     60         innnerCont = ContainerAutoSize(parent=self, align=uiconst.CENTERLEFT)
     61         sprite = Sprite(parent=innnerCont, align=uiconst.CENTERLEFT, pos=(8, 0, 16, 16), texturePath=eveicon.isk, color=TextColor.SECONDARY, state=uiconst.UI_DISABLED)
     62         left = sprite.left + sprite.width
     63         carbonui.text.styles.TextDetail(parent=self, text=FmtISK(amount), align=uiconst.CENTERLEFT, left=left + 8, color=TextColor.SECONDARY)
     64 
     65 
     66 class TopBannerItem(ContainerAutoSize):
     67     default_align = uiconst.TOLEFT
     68 
     69     def ApplyAttributes(self, attributes):
     70         super(TopBannerItem, self).ApplyAttributes(attributes)
     71         typeID = attributes.typeID
     72         qty = attributes.qty
     73         innnerCont = ContainerAutoSize(parent=self, align=uiconst.CENTERLEFT)
     74         qtyLabel = carbonui.text.styles.TextDetail(parent=self, text=FmtAmt(qty), align=uiconst.CENTERLEFT, color=TextColor.SECONDARY)
     75         left = qtyLabel.left + qtyLabel.width
     76         typeIcon = Sprite(parent=innnerCont, align=uiconst.CENTERLEFT, pos=(left + 8,
     77          0,
     78          16,
     79          16), state=uiconst.UI_DISABLED)
     80         sm.GetService('photo').GetIconByType(typeIcon, typeID)
     81         left = typeIcon.left + typeIcon.width
     82         carbonui.text.styles.TextDetail(parent=self, text=evetypes.GetName(typeID), align=uiconst.CENTERLEFT, left=left + 8, color=TextColor.SECONDARY)
     83 
     84 
     85 class PlusLabelCont(ContainerAutoSize):
     86     default_align = uiconst.TOLEFT
     87     default_padding = (8, 0, 8, 0)
     88 
     89     def ApplyAttributes(self, attributes):
     90         super(PlusLabelCont, self).ApplyAttributes(attributes)
     91         carbonui.text.styles.TextDetail(parent=self, text='+', align=uiconst.CENTERLEFT, color=TextColor.SECONDARY)