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

buySellItemContainerBase.py (3608B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\market\buySellItemContainerBase.py
      2 from carbon.common.script.util.format import FmtAmt
      3 from carbon.common.script.util.timerstuff import AutoTimer
      4 from carbonui import const as uiconst
      5 from carbonui.primitives.container import Container
      6 from eve.client.script.ui.control.eveLabel import EveLabelMediumBold, EveLabelMedium
      7 from localization import GetByLabel
      8 from carbonui.uicore import uicore
      9 
     10 class BuySellItemContainerBase(Container):
     11     default_height = 40
     12     default_align = uiconst.TOTOP
     13     default_state = uiconst.UI_NORMAL
     14     default_padTop = 2
     15     default_padBottom = 2
     16     belowColor = '<color=0xffffffff>'
     17     aboveColor = '<color=0xffffffff>'
     18     totaLabelPath = 'UI/Market/MarketQuote/AskTotal'
     19 
     20     def ApplyAttributes(self, attributes):
     21         Container.ApplyAttributes(self, attributes)
     22         self.quoteSvc = sm.GetService('marketQuote')
     23         self.mouseovertimer = None
     24         self.averagePrice = self.quoteSvc.GetAveragePrice(self.typeID)
     25         self.parentFunc = attributes.parentFunc
     26         self.parentEditFunc = attributes.editFunc
     27 
     28     def DrawTotal(self):
     29         self.totalLabel = EveLabelMedium(text=self.totalSum, parent=self.totalCont, align=uiconst.TOPRIGHT, state=uiconst.UI_NORMAL)
     30         self.totalLabel.hint = GetByLabel(self.totaLabelPath)
     31 
     32     def OpenMarket(self, *args):
     33         sm.GetService('marketutils').ShowMarketDetails(self.typeID, None, silently=True)
     34         self._BringMarketToFrontOfOtherWnds()
     35         tradeWndClass = self.GetTradeWndClass()
     36         wnd = tradeWndClass.GetIfOpen()
     37         if wnd:
     38             wnd.Maximize()
     39 
     40     def _BringMarketToFrontOfOtherWnds(self):
     41         from eve.client.script.ui.shared.market.marketbase import RegionalMarket
     42         marketWnd = RegionalMarket.GetIfOpen()
     43         if not marketWnd or marketWnd.destroyed:
     44             return
     45         marketWndToBringToFront = marketWnd.GetStack() or marketWnd
     46         if marketWndToBringToFront.GetOrder() > 1:
     47             marketWndToBringToFront.SetOrder(1)
     48 
     49     def GetDelta(self):
     50         price = self.GetPrice()
     51         if price is None:
     52             return 0
     53         percentage = (price - self.averagePrice) / self.averagePrice
     54         return percentage
     55 
     56     def GetDeltaText(self):
     57         price = self.GetPrice()
     58         if not price:
     59             return ''
     60         percentage = (price - self.averagePrice) / self.averagePrice
     61         if percentage < 0:
     62             color = self.belowColor
     63         else:
     64             color = self.aboveColor
     65         percText = '%s%s</color>' % (color, GetByLabel('UI/Common/Percentage', percentage=FmtAmt(percentage * 100, showFraction=1)))
     66         return percText
     67 
     68     def UpdateDelta(self):
     69         delta = self.GetDelta()
     70         self.deltaContainer.UpdateDelta(delta)
     71 
     72     def OnMouseEnter(self, *args):
     73         self.mouseovertimer = AutoTimer(1, self.UpdateMouseOver)
     74         self.deleteCont.display = True
     75 
     76     def UpdateMouseOver(self):
     77         mo = uicore.uilib.mouseOver
     78         if mo != self and not mo.IsUnder(self):
     79             self.mouseovertimer = None
     80             self.deleteCont.display = False
     81 
     82     def ShowNoSellOrders(self):
     83         pass
     84 
     85     def HideNoSellOrders(self):
     86         uicore.animations.FadeOut(self.errorBg, duration=0.3)
     87 
     88     def RemoveItem(self, *args):
     89         self.parentFunc(self, *args)
     90 
     91     def Close(self, *args):
     92         self.mouseovertimer = None
     93         self.parentFunc = None
     94         Container.Close(self)
     95 
     96     def GetTradeWndClass(self):
     97         pass
     98 
     99     def GetPrice(self):
    100         pass