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