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

singleLineEditMarketPrice.py (2339B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\market\singleLineEditMarketPrice.py
      2 from carbonui.control.singlelineedits.singleLineEditFloat import SingleLineEditFloat
      3 from marketutil import ticks
      4 from marketutil.const import MAX_ORDER_PRICE
      5 from qtyTooltip.qtyConst import EDIT_INPUT_TYPE_ISK
      6 
      7 class SingleLineEditMarketPrice(SingleLineEditFloat):
      8     default_inputType = EDIT_INPUT_TYPE_ISK
      9     default_setvalue = ticks.ISK_MINIMUM_DIVISION
     10     default_minValue = ticks.ISK_MINIMUM_DIVISION
     11     default_maxValue = MAX_ORDER_PRICE
     12     default_decimalPlaces = 2
     13     default_isBuy = False
     14     _isTickActivated = True
     15 
     16     def ApplyAttributes(self, attributes):
     17         self._isBuy = attributes.get('isBuy', self.default_isBuy)
     18         self._isTickActivated = attributes.get('isTickActivated', True)
     19         super(SingleLineEditMarketPrice, self).ApplyAttributes(attributes)
     20 
     21     def DeactivateTickAlignment(self):
     22         self._isTickActivated = False
     23 
     24     def ActivateTickAlignment(self):
     25         self._isTickActivated = True
     26         self._RoundToTick()
     27 
     28     def _RoundToTick(self):
     29         if not self._isTickActivated:
     30             return
     31         currentValue = self.GetValue()
     32         if currentValue <= ticks.ISK_MINIMUM_DIVISION:
     33             self.SetValue(ticks.ISK_MINIMUM_DIVISION)
     34         elif not ticks.is_tick(currentValue):
     35             if self._isBuy:
     36                 newValue = ticks.decrement_to_next_tick(currentValue)
     37             else:
     38                 newValue = ticks.increment_to_next_tick(currentValue)
     39             self.SetValue(newValue)
     40 
     41     def OnKillFocus(self, *args):
     42         self._RoundToTick()
     43         super(SingleLineEditMarketPrice, self).OnKillFocus(*args)
     44 
     45     def ChangeNumericValue(self, val):
     46         if self._isTickActivated:
     47             if val > 0:
     48                 currentValue = self.GetValue()
     49                 newValue = ticks.increment_to_next_tick(currentValue)
     50                 self.SetValue(newValue)
     51             elif val < 0:
     52                 currentValue = self.GetValue()
     53                 if currentValue > ticks.ISK_MINIMUM_DIVISION:
     54                     newValue = ticks.decrement_to_next_tick(currentValue)
     55                     self.SetValue(newValue)
     56         else:
     57             super(SingleLineEditMarketPrice, self).ChangeNumericValue(val)