genericMiniMap.py (3916B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\ledger\genericMiniMap.py 2 from carbonui.graphs.minimap import MapSlider, MiniMap 3 from eve.client.script.ui.control.eveLabel import Label 4 from carbonui.fontconst import EVE_SMALL_FONTSIZE 5 from eve.client.script.ui.shared.fitting.fittingUtil import EatSignalChangingErrors 6 from eve.client.script.ui.shared.ledger.ledgerUtil import GetMinDayTimeStamp, GetMaxDayTimeStamp 7 from signals.signalUtil import ChangeSignalConnect 8 import carbonui.const as uiconst 9 RESIZE_COLOR = (0.8, 0.8, 1.0, 0.05) 10 RESIZE_AREA = 10 11 12 class MinimapSliderForStandaloneMinimap(MapSlider): 13 default_clipChildren = False 14 default_state = uiconst.UI_NORMAL 15 resizeColor = (0.8, 0.8, 1.0, 0.1) 16 resizeHandleColor = resizeColor[:3] + (0.5,) 17 minimumExtraSpace = 10 18 default_hoverColor = (1.0, 1.0, 1.0, 0.5) 19 showHandle = True 20 21 def ApplyAttributes(self, attributes): 22 self.sliderController = attributes.sliderController 23 self.sliderLabelRight = None 24 MapSlider.ApplyAttributes(self, attributes) 25 self.sliderLabel.align = uiconst.TOPLEFT 26 self.sliderLabel.SetRGBA(1.0, 1.0, 1.0, 0.75) 27 self.InitSliderLabelIfNeeded() 28 29 def InitSliderLabelIfNeeded(self): 30 if not self.sliderLabelRight or self.sliderLabelRight.destroyed: 31 self.sliderLabelRight = Label(name='sliderLabelRight', parent=self.centerContainer, align=uiconst.BOTTOMRIGHT, fontsize=EVE_SMALL_FONTSIZE) 32 self.sliderLabelRight.SetRGBA(1.0, 1.0, 1.0, 0.75) 33 34 def MakeConnections(self): 35 self.ChangeSignalConnection() 36 37 def _AxisChanged(self, *args): 38 self._ResizeSlider() 39 40 def _ResizeSlider(self, *args): 41 self.InitSliderLabelIfNeeded() 42 parentWidth, parentHeight = self.parent.GetAbsoluteSize() 43 start, end = self.sliderController.GetStartAndEndPoint() 44 slierWidth = parentWidth * (end - start) 45 sliderPos = parentWidth * start 46 self.left = sliderPos 47 self.width = slierWidth 48 visibleRange0, visibleRange1 = self.sliderController.GetVisibleRange() 49 visibleRange0 = GetMinDayTimeStamp(visibleRange0) 50 visibleRange1 = GetMaxDayTimeStamp(visibleRange1) 51 self.sliderLabel.text = self.sliderController.GetRangeForTimestamp(visibleRange0) 52 self.sliderLabelRight.text = self.sliderController.GetRangeForTimestamp(visibleRange1) 53 54 def _GetVisibleRange(self): 55 parentWidth, parentHeight = self.parent.GetAbsoluteSize() 56 dataRangeStart, dataRangeEnd = self.sliderController.GetDataRange() 57 start = float(self.left) / parentWidth 58 end = float(self.width) / parentWidth + start 59 dataRange = dataRangeEnd - dataRangeStart 60 visibleRange0 = start * dataRange + dataRangeStart 61 visibleRange1 = end * dataRange + dataRangeStart 62 return (long(visibleRange0), long(visibleRange1)) 63 64 def _UpdateAxis(self): 65 self.sliderController.SetVisibleRange(self._GetVisibleRange()) 66 67 def ChangeSignalConnection(self, connect = True): 68 signalAndCallback = [(self.sliderController.on_change, self._AxisChanged)] 69 ChangeSignalConnect(signalAndCallback, connect) 70 71 def Close(self): 72 with EatSignalChangingErrors(errorMsg='MinimapSliderForStandaloneMinimap'): 73 self.ChangeSignalConnection(connect=False) 74 MapSlider.Close(self) 75 76 77 class GenericMiniMap(MiniMap): 78 79 def CreateSlider(self, attributes): 80 self.sliderController = attributes.sliderController 81 size = self.GetAbsoluteSize() 82 self.slider = MinimapSliderForStandaloneMinimap(parent=self, axis=None, sliderController=self.sliderController, height=size[1], width=1, left=0, top=0) 83 84 def OnDblClick(self, *args): 85 dataRange = self.sliderController.GetDataRange() 86 self.sliderController.SetVisibleRange(dataRange)