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

appearancePanel.py (9870B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\overviewSettings\appearancePanel.py
      2 from carbonui.primitives.container import Container
      3 from carbonui import uiconst
      4 from eve.client.script.parklife import stateSetting
      5 from carbonui.button.group import ButtonGroup
      6 from carbonui.control.checkbox import Checkbox
      7 import overviewPresets.overviewSettingsConst as osConst
      8 from eve.client.script.ui.control.entries.util import GetFromClass
      9 from eve.client.script.ui.control.eveLabel import EveLabelMedium
     10 from eve.client.script.ui.control.eveScroll import Scroll
     11 from carbonui.control.tabGroup import TabGroup
     12 from eve.client.script.ui.inflight.overviewSettings.overviewSettingEntries import GetLastEntryToAdd, FlagEntry
     13 from eve.client.script.ui.inflight.overviewSettings.panelUtils import OnContentDragEnter, OnContentDragExit, ResetCbOnReloadingOverviewProfile
     14 from globalConfig import IsPlayerBountyHidden
     15 from localization import GetByLabel
     16 from utillib import KeyVal
     17 from eve.client.script.parklife import states as stateFlagcConst
     18 
     19 class AppearancePanel(Container):
     20     default_name = 'appearancePanel'
     21     __notifyevents__ = ['OnReloadingOverviewProfile']
     22     default_state = uiconst.UI_HIDDEN
     23 
     24     def ApplyAttributes(self, attributes):
     25         Container.ApplyAttributes(self, attributes)
     26         self.cachedScrollPos = 0.0
     27         self.overviewPresetSvc = sm.GetService('overviewPresetSvc')
     28         self.ConstructCheckboxes()
     29         statebtns = ButtonGroup(parent=self, idx=0)
     30         statebtns.AddButton(GetByLabel('UI/Commands/ResetAll'), self.ResetStateSettings)
     31         self.statetabs = TabGroup(name='overviewstatesTab', align=uiconst.TOTOP, parent=self, groupID='overviewstatesTab', autoselecttab=0, padTop=8)
     32         self.statetabs.AddTab(GetByLabel('UI/Overview/Colortag'), code=self, tabID='flag', hint=GetByLabel('UI/Overview/HintToggleDisplayState'))
     33         self.statetabs.AddTab(GetByLabel('UI/Overview/Background'), code=self, tabID='background', hint=GetByLabel('UI/Overview/HintToggleDisplayState'))
     34         self.scroll = Scroll(name='appearanceScroll', parent=self)
     35         self.scroll.multiSelect = 0
     36         self.scroll.sr.content.OnDropData = self.MoveStuff
     37         self.scroll.sr.content.OnDragEnter = lambda *args: OnContentDragEnter(self.scroll, *args)
     38         self.scroll.sr.content.OnDragExit = lambda *args: OnContentDragExit(self.scroll, *args)
     39         sm.RegisterNotify(self)
     40 
     41     def ConstructCheckboxes(self):
     42         self.settingCheckboxes = []
     43         cb = Checkbox(text=GetByLabel('UI/Overview/UseSmallColortags'), parent=self, settingsKey=osConst.SETTING_NAME_SMALL_TAGS, checked=self.overviewPresetSvc.GetSettingValueOrDefaultFromName(osConst.SETTING_NAME_SMALL_TAGS, False), callback=self.CheckBoxChange, settingsPath=('user', 'overview'), align=uiconst.TOTOP)
     44         self.settingCheckboxes.append(cb)
     45         self.useSmallColorTags = cb
     46         self.useSmallText = Checkbox(text=GetByLabel('UI/Overview/UseSmallFont'), parent=self, settingsKey=osConst.SETTING_NAME_SMALL_TEXT, checked=self.overviewPresetSvc.GetSettingValueOrDefaultFromName(osConst.SETTING_NAME_SMALL_TEXT, False), callback=self.CheckBoxChange, settingsPath=('user', 'overview'), align=uiconst.TOTOP)
     47         self.settingCheckboxes.append(self.useSmallText)
     48         EveLabelMedium(text=GetByLabel('UI/Overview/ApplyToShipsAndDronesByDefault'), parent=self, align=uiconst.TOTOP, padding=(0, 16, 0, 0), state=uiconst.UI_NORMAL)
     49         applyToStructures = self.overviewPresetSvc.GetSettingValueOrDefaultFromName(osConst.SETTING_NAME_APPLY_STRUCTURE, True)
     50         cb = Checkbox(text=GetByLabel('UI/Overview/ApplyToStructures'), parent=self, settingsKey=osConst.SETTING_NAME_APPLY_STRUCTURE, checked=applyToStructures, callback=self.CheckBoxChange, settingsPath=('user', 'overview'), align=uiconst.TOTOP, padTop=4)
     51         self.settingCheckboxes.append(cb)
     52         self.applyToStructures = cb
     53         applyToOtherObjects = self.overviewPresetSvc.GetSettingValueOrDefaultFromName(osConst.SETTING_NAME_APPLY_OTHER_OBJ, False)
     54         cb = Checkbox(text=GetByLabel('UI/Overview/ApplyToOtherObjects'), parent=self, settingsKey=osConst.SETTING_NAME_APPLY_OTHER_OBJ, checked=applyToOtherObjects, callback=self.CheckBoxChange, settingsPath=('user', 'overview'), align=uiconst.TOTOP)
     55         self.settingCheckboxes.append(cb)
     56         self.applyToOtherObjects = cb
     57 
     58     def ResetStateSettings(self, *args):
     59         settings.user.overview.Set(stateSetting.SETTING_FLAG_ORDER_CONFIG_NAME, None)
     60         settings.user.overview.Set(osConst.SETTING_ICON_ORDER, None)
     61         settings.user.overview.Set(stateSetting.SETTING_BACKGROUND_ORDER_CONFIG_NAME, None)
     62         settings.user.overview.Set(stateSetting.SETTING_FLAG_STATES_CONFIG_NAME, None)
     63         settings.user.overview.Set(osConst.SETTING_ICON_STATES, None)
     64         settings.user.overview.Set(stateSetting.SETTING_BACKGROUND_STATES_CONFIG_NAME, None)
     65         settings.user.overview.Set(osConst.SETTING_STATE_COLORS, {})
     66         sm.GetService('stateSvc').InitColors(1)
     67         settings.user.overview.Set(osConst.SETTING_STATE_BLINKS, {})
     68         defaultUseSmallColorTags = self.overviewPresetSvc.GetDefaultSettingValueFromName(osConst.SETTING_NAME_SMALL_TAGS, False)
     69         settings.user.overview.Set(osConst.SETTING_NAME_SMALL_TAGS, defaultUseSmallColorTags)
     70         self.useSmallColorTags.SetChecked(defaultUseSmallColorTags, 0)
     71         defaultApplyToStructures = self.overviewPresetSvc.GetDefaultSettingValueFromName(osConst.SETTING_NAME_APPLY_STRUCTURE, True)
     72         settings.user.overview.Set(osConst.SETTING_NAME_APPLY_STRUCTURE, defaultApplyToStructures)
     73         self.applyToStructures.SetChecked(defaultApplyToStructures, 0)
     74         defaultApplyToOtherObjects = self.overviewPresetSvc.GetDefaultSettingValueFromName(osConst.SETTING_NAME_APPLY_OTHER_OBJ, False)
     75         settings.user.overview.Set(osConst.SETTING_NAME_APPLY_OTHER_OBJ, defaultApplyToOtherObjects)
     76         self.applyToOtherObjects.SetChecked(defaultApplyToOtherObjects, 0)
     77         self.LoadFlags()
     78         sm.GetService('stateSvc').NotifyOnStateSetupChange('reset')
     79 
     80     def AutoSelectTab(self):
     81         self.statetabs.AutoSelect()
     82 
     83     def GetSelectedTab(self):
     84         return self.statetabs.GetSelectedArgs()
     85 
     86     def Load(self, key):
     87         self.LoadFlags()
     88 
     89     def LoadFlags(self, selected = None):
     90         where = self.GetSelectedTab()
     91         flagOrder = sm.GetService('stateSvc').GetStateOrder(where)
     92         scrolllist = []
     93         i = 0
     94         playerBountyHidden = IsPlayerBountyHidden(sm.GetService('machoNet'))
     95         for flag in flagOrder:
     96             if flag == stateFlagcConst.flagIsWanted and playerBountyHidden:
     97                 continue
     98             props = sm.GetService('stateSvc').GetStateProps(flag)
     99             data = KeyVal()
    100             data.label = props.text
    101             data.props = props
    102             data.checked = sm.GetService('stateSvc').GetStateState(where, flag)
    103             data.cfgname = where
    104             data.retval = flag
    105             data.flag = flag
    106             data.canDrag = True
    107             data.hint = props.hint
    108             data.OnChange = self.CheckBoxChange
    109             data.isSelected = selected == i
    110             scrolllist.append(GetFromClass(FlagEntry, data=data))
    111             i += 1
    112 
    113         scrolllist += GetLastEntryToAdd(scrolllist)
    114         self.scroll.Load(contentList=scrolllist, scrollTo=self.cachedScrollPos)
    115 
    116     def CheckBoxChange(self, checkbox, node = None):
    117         settingsKey = checkbox.GetSettingsKey()
    118         if settingsKey:
    119             if settingsKey == osConst.SETTING_NAME_SMALL_TAGS:
    120                 sm.GetService('stateSvc').NotifyOnStateSetupChange('filter')
    121             elif settingsKey == osConst.SETTING_NAME_SMALL_TEXT:
    122                 if checkbox.checked:
    123                     settings.user.overview.Set(osConst.SETTING_NAME_SMALL_TEXT, 1)
    124                 else:
    125                     settings.user.overview.Set(osConst.SETTING_NAME_SMALL_TEXT, 0)
    126                 self.DoFullOverviewReload()
    127             elif settingsKey in (osConst.SETTING_NAME_APPLY_STRUCTURE, osConst.SETTING_NAME_APPLY_OTHER_OBJ):
    128                 sm.GetService('overviewPresetSvc').SetNPCGroups()
    129                 sm.GetService('stateSvc').InitFilter()
    130                 sm.GetService('stateSvc').NotifyOnStateSetupChange('filter')
    131                 self.DoFullOverviewReload()
    132                 sm.GetService('bracket').Reload()
    133         key = checkbox.GetSettingsKey()
    134         if key:
    135             selectedTabConfigName = self.GetSelectedTab()
    136             if key == selectedTabConfigName:
    137                 if node:
    138                     flag = node.flag
    139                 else:
    140                     raise ValueError('No flag value passed in')
    141                 sm.GetService('stateSvc').ChangeStateState(selectedTabConfigName, flag, checkbox.checked)
    142 
    143     def DoFullOverviewReload(self):
    144         sm.ScatterEvent('OnFullOverviewReload')
    145 
    146     def MoveStuff(self, dragObj, entries, idx = -1, *args):
    147         self.Move(idx)
    148 
    149     def Move(self, idx = None, *args):
    150         self.cachedScrollPos = self.scroll.GetScrollProportion()
    151         selected = self.scroll.GetSelected()
    152         if selected:
    153             selected = selected[0]
    154             if idx is not None:
    155                 if idx != selected.idx:
    156                     if selected.idx < idx:
    157                         newIdx = idx - 1
    158                     else:
    159                         newIdx = idx
    160                 else:
    161                     return
    162             else:
    163                 newIdx = max(0, selected.idx - 1)
    164             where = self.GetSelectedTab()
    165             sm.GetService('stateSvc').ChangeStateOrder(where, selected.flag, newIdx)
    166             self.LoadFlags(newIdx)
    167 
    168     def OnReloadingOverviewProfile(self):
    169         ResetCbOnReloadingOverviewProfile(self.overviewPresetSvc, self.settingCheckboxes)