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)