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

groupEntryCont.py (3851B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\structure\structureSettings\groupEntryCont.py
      2 from menu import MenuLabel
      3 from eve.client.script.ui.control.eveLabel import EveLabelMedium
      4 import carbonui.const as uiconst
      5 from eve.client.script.ui.structure.structureSettings.profileEntry import ProfileEntryBase
      6 from eve.client.script.ui.structure.structureSettings.uiSettingUtil import AddValueEdit
      7 from localization import GetByLabel
      8 import structures
      9 from utillib import KeyVal
     10 LABEL_LEFT = 26
     11 VALUE_TYPES = (structures.SETTINGS_TYPE_INT,
     12  structures.SETTINGS_TYPE_FLOAT,
     13  structures.SETTINGS_TYPE_PERCENTAGE,
     14  structures.SETTINGS_TYPE_ISK)
     15 
     16 class GroupEntry(ProfileEntryBase):
     17     default_align = uiconst.TOTOP
     18     default_state = uiconst.UI_NORMAL
     19     default_height = 28
     20     isDragObject = True
     21     rightBtnTexturePath = 'res:/UI/Texture/Icons/73_16_210.png'
     22 
     23     def ApplyAttributes(self, attributes):
     24         ProfileEntryBase.ApplyAttributes(self, attributes)
     25         self.settingGroupController = attributes.settingGroupController
     26         self.structureProfileController = attributes.structureProfileController
     27         self.groupID = attributes.groupID
     28         groupInfo = attributes.groupInfo
     29         hint = GetByLabel('UI/StructureSettingWnd/RemoveGroup')
     30         EveLabelMedium(name='groupName', parent=self, left=LABEL_LEFT, align=uiconst.CENTERLEFT, text=groupInfo['name'], hint=groupInfo['description'])
     31         self.valueEdit = None
     32         if self.settingGroupController.GetSettingType() in VALUE_TYPES:
     33             self.AddValueEdit()
     34 
     35     def OnRightBtnClicked(self, *args):
     36         self.RemoveGroup()
     37 
     38     def GetDragData(self):
     39         accessGroupsController = sm.GetService('structureControllers').GetAccessGroupController()
     40         groupInfo = accessGroupsController.GetGroupInfoFromID(self.groupID)
     41         if not groupInfo:
     42             return []
     43         ret = KeyVal(nodeType='AccessGroupEntry', groupID=self.groupID, label=groupInfo['name'])
     44         return [ret]
     45 
     46     def GetMenu(self, *args):
     47         m = [(MenuLabel('UI/StructureSettingWnd/RemoveGroup'), self.RemoveGroup, ()), (MenuLabel('UI/StructureSettingWnd/ShowGroupInfo'), self.ShowGroupInfo, ())]
     48         accessGroupsController = sm.GetService('structureControllers').GetAccessGroupController()
     49         myGroups = accessGroupsController.GetMyGroups()
     50         if self.groupID in myGroups:
     51             m += [(MenuLabel('UI/StructureSettingWnd/ViewGroup'), self.ViewGroup, ())]
     52         return m
     53 
     54     def RemoveGroup(self):
     55         self.structureProfileController.RemoveGroup(self.settingGroupController)
     56 
     57     def Close(self):
     58         self.settingGroupController = None
     59         ProfileEntryBase.Close(self)
     60 
     61     def AddValueEdit(self):
     62         if self.settingGroupController.GetSettingType() in VALUE_TYPES:
     63             self.valueEdit = AddValueEdit(parent=self, sgController=self.settingGroupController, callback=self.OnValueChanged)
     64             self.valueEdit.left = self.rightBtn.left + self.rightBtn.width
     65 
     66     def OnValueChanged(self, *args):
     67         if self.valueEdit is None:
     68             return
     69         value = self.valueEdit.GetValue()
     70         self.settingGroupController.SetValue(value)
     71 
     72     def ShowGroupInfo(self):
     73         from eve.client.script.ui.structure.accessGroups.groupInfoWnd import GroupInfoWnd
     74         GroupInfoWnd.Open(groupID=self.groupID, windowID='groupInfoWnd_%s' % self.groupID)
     75         return True
     76 
     77     def ViewGroup(self):
     78         accessGroupsController = sm.GetService('structureControllers').GetAccessGroupController()
     79         from eve.client.script.ui.structure.accessGroups.accesGroupsWnd import AccessGroupsWnd
     80         wnd = AccessGroupsWnd.GetIfOpen()
     81         accessGroupsController.SelectGroup(self.groupID, sendSignal=bool(wnd))
     82         if not wnd:
     83             AccessGroupsWnd.Open()