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

entries.py (5033B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\maps\entries.py
      2 import localization
      3 from carbonui import uiconst
      4 from carbonui.primitives.container import Container
      5 from carbonui.primitives.fill import Fill
      6 from carbonui.primitives.frame import Frame
      7 from carbonui.primitives.line import Line
      8 from eve.client.script.ui.control import eveIcon
      9 from eve.client.script.ui.control.entries.generic import Generic
     10 from eve.client.script.ui.control.entries.item import Item
     11 from eve.client.script.ui.shared.maps import maputils
     12 from eve.common.lib import appConst as const
     13 from eve.common.script.sys import idCheckers
     14 from eveservices.menu import GetMenuService
     15 
     16 class BracketSelectorEntry(Generic):
     17     __guid__ = 'listentry.BracketSelectorEntry'
     18     __update_on_reload__ = 1
     19 
     20     def Startup(self, *args):
     21         Generic.Startup(self, *args)
     22         props = {'parent': self,
     23          'align': uiconst.CENTERRIGHT,
     24          'idx': 0}
     25         pos = (18, 0, 0, 0)
     26         eye = eveIcon.Icon(icon='ui_38_16_110', pos=pos, name='eye', hint=localization.GetByLabel('UI/Map/MapPallet/hintShow'), **props)
     27         eye.OnClick = self.ToggleVisibility
     28         self.sr.eyeoff = eveIcon.Icon(icon='ui_38_16_111', pos=pos, **props)
     29         hint = eveIcon.Icon(icon='ui_38_16_109', name='hint', hint=localization.GetByLabel('UI/Map/MapPallet/hintShowHint'), **props)
     30         hint.OnClick = self.ToggleBubbleHint
     31         self.sr.hintoff = eveIcon.Icon(icon='ui_38_16_111', **props)
     32 
     33     def Load(self, node):
     34         Generic.Load(self, node)
     35         if node.visible:
     36             self.sr.eyeoff.state = uiconst.UI_HIDDEN
     37         else:
     38             self.sr.eyeoff.state = uiconst.UI_DISABLED
     39         if node.showhint:
     40             self.sr.hintoff.state = uiconst.UI_HIDDEN
     41         else:
     42             self.sr.hintoff.state = uiconst.UI_DISABLED
     43 
     44     def ToggleVisibility(self, *args):
     45         sel = self.sr.node.scroll.GetSelectedNodes(self.sr.node)
     46         visible = not self.sr.node.visible
     47         wantedGroups = maputils.GetVisibleSolarsystemBrackets()[:]
     48         for node in sel:
     49             node.visible = visible
     50             if node.groupID not in wantedGroups and visible:
     51                 wantedGroups.append(node.groupID)
     52             elif node.groupID in wantedGroups and not visible:
     53                 wantedGroups.remove(node.groupID)
     54             if node.panel:
     55                 node.panel.Load(node)
     56 
     57         settings.user.ui.Set('groupsInSolarsystemMap', wantedGroups)
     58         sm.ScatterEvent('OnSolarsystemMapSettingsChange', 'brackets')
     59 
     60     def ToggleBubbleHint(self, *args):
     61         sel = self.sr.node.scroll.GetSelectedNodes(self.sr.node)
     62         showhint = not self.sr.node.showhint
     63         wantedHints = maputils.GetHintsOnSolarsystemBrackets()[:]
     64         for node in sel:
     65             node.showhint = showhint
     66             if node.groupID not in wantedHints and showhint:
     67                 wantedHints.append(node.groupID)
     68             elif node.groupID in wantedHints and not showhint:
     69                 wantedHints.remove(node.groupID)
     70             if node.panel:
     71                 node.panel.Load(node)
     72 
     73         settings.user.ui.Set('hintsInSolarsystemMap', wantedHints)
     74         sm.ScatterEvent('OnSolarsystemMapSettingsChange', 'brackets')
     75 
     76 
     77 class LegendEntry(Generic):
     78     __guid__ = 'listentry.LegendEntry'
     79 
     80     def Startup(self, *args):
     81         Generic.Startup(self, args)
     82         Line(parent=self, align=uiconst.TOBOTTOM)
     83         self.sr.legendColor = Container(name='legendColor', parent=self, align=uiconst.TOPLEFT, pos=(2, 2, 12, 12), idx=0)
     84         self.sr.colorFill = Fill(parent=self.sr.legendColor)
     85         Frame(parent=self.sr.legendColor, color=(0.25, 0.25, 0.25), idx=0)
     86 
     87     def Load(self, node):
     88         Generic.Load(self, node)
     89         self.sr.label.left = 18
     90         if not isinstance(node.legend.color, tuple):
     91             c = (node.legend.color.r,
     92              node.legend.color.g,
     93              node.legend.color.b,
     94              node.legend.color.a)
     95             node.legend.color.a = 1.0
     96         else:
     97             c = node.legend.color
     98             node.legend.color = (c[0],
     99              c[1],
    100              c[2],
    101              1.0)
    102         self.sr.colorFill.SetRGBA(*c)
    103         self.key = node.key
    104         self.legend = node.legend
    105         self.sr.label.Update()
    106 
    107     def GetMenu(self):
    108         m = []
    109         if self.legend.data is not None:
    110             m += GetMenuService().GetGMMenu(itemID=self.legend.data)
    111         if self.legend.data is not None:
    112             if idCheckers.IsFaction(self.legend.data):
    113                 m += GetMenuService().GetMenuFromItemIDTypeID(self.legend.data, const.typeFaction)
    114             elif idCheckers.IsRegion(self.legend.data):
    115                 m += GetMenuService().CelestialMenu(self.legend.data)
    116             else:
    117                 m += GetMenuService().GetMenuFromItemIDTypeID(self.legend.data, const.typeAlliance)
    118         return m
    119 
    120 
    121 class LocationSearchItem(Item):
    122     __guid__ = 'listentry.LocationSearchItem'
    123     isDragObject = True