mapMarkerGroup.py (4247B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\markers\mapMarkerGroup.py 2 import localization 3 from carbonui.text.styles import TextHeadline, TextHeader, TextBody 4 from carbonui.primitives.container import Container 5 from carbonui.primitives.sprite import Sprite 6 from eve.client.script.ui import eveThemeColor 7 from eve.client.script.ui.shared.mapView import mapViewConst 8 from eve.client.script.ui.shared.mapView.mapViewConst import MARKERID_GROUP 9 from eve.client.script.ui.shared.mapView.markers.mapMarkerBase import MarkerBase 10 import carbonui.const as uiconst 11 from eve.common.script.sys import idCheckers 12 SIZE_CONSTELLATION = 32 13 SIZE_REGION = 64 14 15 class MarkerGroup(MarkerBase): 16 circle_texture_path = 'res:/UI/Texture/Classes/MapView/Markers/clusterStroke.png' 17 bg_texture_path = 'res:/UI/Texture/Classes/MapView/Markers/clusterFill.png' 18 distanceFadeAlphaNearFar = (mapViewConst.MAX_MARKER_DISTANCE * 0.015, mapViewConst.MAX_MARKER_DISTANCE * 2) 19 20 def __init__(self, *args, **kwds): 21 self.displayStateOverride = True 22 self.group_label = None 23 self.group_id = kwds.get('groupID', None) 24 self.members = kwds.get('members', []) 25 self.isAbstractMode = kwds.get('isAbstractMode', False) 26 self.hintFormat = kwds.get('hintFormat', 'UI/Map/Markers/ClusterHint') 27 super(MarkerGroup, self).__init__(*args, **kwds) 28 29 def ResetAbstractMode(self, isAbstractMode): 30 self.isAbstractMode = isAbstractMode 31 32 def Load(self): 33 size = self.GetSize() 34 self.group_cont = Container(name='group_cont', parent=self.markerContainer, state=uiconst.UI_NORMAL, pos=(0, 35 0, 36 size, 37 size), align=uiconst.CENTER) 38 self.group_cont.OnClick = self.OnClick 39 self.group_label = TextHeader(name='pin_label', parent=self.group_cont, state=uiconst.UI_DISABLED, align=uiconst.CENTER, text=self.GetValue()) 40 self.group_cont.GetHint = self.GetHint 41 self.circle_sprite = Sprite(name='circle_sprite', parent=self.group_cont, state=uiconst.UI_DISABLED, align=uiconst.TOALL, texturePath=self.GetStroke(), color=eveThemeColor.THEME_FOCUS) 42 self.bg_sprite = Sprite(name='bg_sprite', parent=self.group_cont, state=uiconst.UI_DISABLED, align=uiconst.TOALL, texturePath=self.GetFill(), color=eveThemeColor.THEME_FOCUSDARK) 43 self.markerContainer.pos = (0, 44 0, 45 size, 46 size) 47 48 def GetSize(self): 49 if idCheckers.IsRegion(self.markerID[1]): 50 return SIZE_REGION 51 return SIZE_CONSTELLATION 52 53 def GetStroke(self): 54 if idCheckers.IsRegion(self.markerID[1]): 55 return 'res:/UI/Texture/Classes/MapView/Markers/clusterStroke_64.png' 56 return 'res:/UI/Texture/Classes/MapView/Markers/clusterStroke.png' 57 58 def GetFill(self): 59 if idCheckers.IsRegion(self.markerID[1]): 60 return 'res:/UI/Texture/Classes/MapView/Markers/clusterFill_64.png' 61 return 'res:/UI/Texture/Classes/MapView/Markers/clusterFill.png' 62 63 def GetLabelClass(self): 64 if idCheckers.IsRegion(self.markerID[1]): 65 return TextHeadline 66 return TextHeader 67 68 def GetValue(self): 69 return sum([ m.GetGroupingValue() for m in self.members ]) 70 71 def GetLabelText(self): 72 return str(len(self.members)) 73 74 def GetGroupID(self): 75 return self.group_id 76 77 def GetHint(self): 78 return localization.GetByLabel(self.hintFormat, num=self.GetValue()) 79 80 def RemoveMember(self, member): 81 if member in self.members: 82 self.members.remove(member) 83 if self.group_label: 84 self.group_label.text = self.GetValue() 85 86 def ShouldZoom(self): 87 return True 88 89 def GetMarkerOpacity(self, bracketCameraDistance, cameraZoomDistance): 90 if self.isAbstractMode: 91 return 1.0 92 return super(MarkerGroup, self).GetMarkerOpacity(bracketCameraDistance, cameraZoomDistance) 93 94 def UpdateActiveAndHilightState(self): 95 if self.isAbstractMode: 96 self.projectBracket.maxDispRange = 1e+32 97 elif self.distanceFadeAlphaNearFar: 98 self.projectBracket.maxDispRange = self.distanceFadeAlphaNearFar[1]