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

organizationInfo.py (2733B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\controls\organizationInfo.py
      2 import evelink.client
      3 from carbonui import Align, TextColor, uiconst
      4 from carbonui.text.styles import TextHeader, TextDetail
      5 from carbonui.primitives.container import Container
      6 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      7 from eve.client.script.ui.control.eveIcon import GetLogoIcon
      8 from localization import GetByLabel
      9 
     10 class OrganizationInfo(Container):
     11     default_display = False
     12     default_width = 300
     13     default_height = 64
     14 
     15     def __init__(self, organization_id, *args, **kwargs):
     16         super(OrganizationInfo, self).__init__(*args, **kwargs)
     17         self._organization_id = organization_id
     18         self._compact_mode = False
     19         self.icon = None
     20         self.construct_layout()
     21 
     22     def construct_layout(self):
     23         self.icon_container = Container(name='icon_container', parent=self, align=Align.TOLEFT, pos=(0, 0, 64, 64))
     24         self.icon = GetLogoIcon(name='icon', parent=self.icon_container, align=Align.TOALL, state=uiconst.UI_NORMAL, itemID=self.organization_id)
     25         self.icon.OnClick = self.on_icon_click
     26         self.text_container = ContainerAutoSize(name='text_container', parent=self, align=Align.CENTERLEFT, width=228, left=72, padTop=16)
     27         self.description_label = TextDetail(name='description_label', parent=self.text_container, align=Align.TOTOP, text=self.description_text, color=TextColor.SECONDARY, top=-16)
     28         self.name_label = TextHeader(name='name_label', parent=self.text_container, align=Align.TOTOP, state=uiconst.UI_NORMAL, text=evelink.client.owner_link(self.organization_id), maxLines=3, autoFadeSides=16, bold=True)
     29 
     30     def on_icon_click(self, *args):
     31         sm.GetService('info').ShowInfo(typeID=cfg.eveowners.Get(self.organization_id).typeID, itemID=self.organization_id)
     32 
     33     def update_compact_mode(self):
     34         self.text_container.display = not self.compact_mode
     35         self.width = 64 if self.compact_mode else self.default_width
     36         if self.compact_mode:
     37             self.icon.SetHint(u'%s\n%s' % (self.description_text, cfg.eveowners.Get(self.organization_id).name))
     38         else:
     39             self.icon.SetHint(None)
     40 
     41     @property
     42     def description_text(self):
     43         return GetByLabel('UI/Personalization/ShipSkins/SKINR/TargetedAt')
     44 
     45     @property
     46     def organization_id(self):
     47         return self._organization_id
     48 
     49     @property
     50     def compact_mode(self):
     51         return self._compact_mode
     52 
     53     @compact_mode.setter
     54     def compact_mode(self, value):
     55         if self._compact_mode == value:
     56             return
     57         self._compact_mode = value
     58         self.update_compact_mode()