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

buyerFee.py (3727B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\controls\buyerFee.py
      2 from carbonui import Align, TextColor, uiconst
      3 from carbonui.text.styles import TextHeader, TextBody
      4 from carbonui.primitives.container import Container
      5 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      6 from carbonui.primitives.fill import Fill
      7 from eve.client.script.ui import eveColor
      8 from eve.client.script.ui.control.infoIcon import InfoIcon
      9 from eve.client.script.ui.control.itemIcon import ItemIcon
     10 from eve.client.script.ui.control.tooltips import TooltipPanel
     11 from eve.common.script.util.eveFormat import FmtAmt
     12 from inventorycommon.const import typeLoyaltyPointsHeraldry
     13 from localization import GetByLabel
     14 
     15 class BuyerFee(ContainerAutoSize):
     16     default_display = False
     17     default_alignMode = Align.TOTOP
     18 
     19     def __init__(self, *args, **kwargs):
     20         super(BuyerFee, self).__init__(*args, **kwargs)
     21         self._amount = None
     22         self.construct_layout()
     23 
     24     def construct_layout(self):
     25         self.construct_header()
     26         self.construct_fee()
     27 
     28     def construct_header(self):
     29         title_container = Container(name='title_container', parent=self, align=Align.TOTOP, height=26)
     30         TextHeader(name='title_label', parent=title_container, align=Align.TOLEFT, text=GetByLabel('UI/Personalization/ShipSkins/SKINR/BrandManagerListing'), color=eveColor.SUCCESS_GREEN)
     31         HeaderInfoIcon(name='info_icon', parent=ContainerAutoSize(parent=title_container, align=Align.TOLEFT, padLeft=4), align=Align.CENTERLEFT)
     32 
     33     def construct_fee(self):
     34         self.fee_container = ContainerAutoSize(name='fee_container', parent=self, align=Align.TOTOP, alignMode=uiconst.TOTOP)
     35         self.construct_amount_container()
     36         TextBody(name='subheader_label', parent=self.fee_container, align=Align.TOTOP, text=self.subheader_label_text, padding=(0, 4, 0, 4))
     37 
     38     def construct_amount_container(self):
     39         amount_container = ContainerAutoSize(name='amount_container', parent=self.fee_container, align=Align.TOPRIGHT, alignMode=Align.CENTERRIGHT, state=uiconst.UI_NORMAL, hint=GetByLabel('UI/Personalization/ShipSkins/SKINR/BuyersFeeHint'))
     40         Fill(bgParent=self.fee_container, color=eveColor.SUCCESS_GREEN, opacity=0.2)
     41         ItemIcon(name='evermark_icon', parent=amount_container, align=uiconst.CENTERLEFT, width=16, height=16, typeID=typeLoyaltyPointsHeraldry)
     42         self.amount_label = TextBody(name='amount_label', parent=amount_container, align=Align.CENTERRIGHT, color=TextColor.SECONDARY, padding=(20, 4, 0, 4))
     43 
     44     def update(self):
     45         self.display = self.amount is not None and self.amount > 0
     46         self.amount_label.text = None if self.amount is None else FmtAmt(self.amount)
     47 
     48     @property
     49     def subheader_label_text(self):
     50         return GetByLabel('UI/Personalization/ShipSkins/SKINR/BrandManagerListingDescription')
     51 
     52     @property
     53     def amount(self):
     54         return self._amount
     55 
     56     @amount.setter
     57     def amount(self, value):
     58         self._amount = value
     59         self.update()
     60 
     61 
     62 class HeaderInfoIcon(InfoIcon):
     63 
     64     def ConstructTooltipPanel(self):
     65         return HeaderTooltipPanel()
     66 
     67 
     68 class HeaderTooltipPanel(TooltipPanel):
     69 
     70     def __init__(self, **kw):
     71         super(HeaderTooltipPanel, self).__init__(**kw)
     72         self.LoadStandardSpacing()
     73         self.AddCell(TextBody(text=GetByLabel('UI/Personalization/ShipSkins/SKINR/BrandManagerListingInfo'), width=300), colSpan=2)
     74 
     75 
     76 class SellSKINBuyerFee(BuyerFee):
     77     pass
     78 
     79 
     80 class BuySKINBuyerFee(BuyerFee):
     81     default_height = 60
     82 
     83     @property
     84     def subheader_label_text(self):
     85         return GetByLabel('UI/Personalization/ShipSkins/SKINR/BuyerEverMarkFee')