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

skillPlanEditorSkillEntry.py (3356B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\skillPlan\skillPlanEditor\skillPlanEditorSkillEntry.py
      2 from carbonui import uiconst
      3 from carbonui.control.button import Button
      4 from carbonui.control.dragdrop import dragdata
      5 from eve.client.script.ui import eveColor
      6 from eve.client.script.ui.skillPlan import skillPlanUtil
      7 from eve.client.script.ui.skillPlan.contents.skillPlanSkillEntry import SkillPlanSkillEntry
      8 from eve.client.script.ui.skillPlan.skillPlanEditor.dragIndicatorLine import DragIndicatorLine
      9 from localization import GetByLabel
     10 from signals import Signal
     11 VALID_LINE_COLOR = (0.8, 0.8, 0.8)
     12 INVALID_LINE_COLOR = (0.7, 0.0, 0.0)
     13 
     14 class EditorSkillLevelEntryPrimaryButton(Button):
     15     default_texturePath = 'res:/UI/Texture/classes/SkillPlan/buttonIcons/removeIcon.png'
     16     default_disabled_color = eveColor.BLACK
     17     default_soundClick = uiconst.SOUND_REMOVE
     18 
     19     def ApplyAttributes(self, attributes):
     20         super(EditorSkillLevelEntryPrimaryButton, self).ApplyAttributes(attributes)
     21         self.skillPlan = attributes.skillPlan
     22         self.level = attributes.skillLevel
     23         self.controller = attributes.skillController
     24         self.func = self._Remove
     25 
     26     def _Remove(self, *args):
     27         if self.skillPlan:
     28             self.skillPlan.RemoveSkillRequirement(self.controller.GetTypeID(), self.level)
     29 
     30     def UpdateState(self):
     31         if not self.controller:
     32             return
     33         if self.skillPlan.CanRemoveSkillRequirement(self.controller.GetTypeID(), self.level):
     34             self.Enable()
     35             self.SetHint(GetByLabel('UI/SkillPlan/RemoveFromPlan'))
     36         else:
     37             self.Disable()
     38             self.SetHint(GetByLabel('UI/SkillPlan/RemoveFromPlanLocked'))
     39 
     40 
     41 class SkillPlanEditorSkillEntry(SkillPlanSkillEntry):
     42 
     43     def ApplyAttributes(self, attributes):
     44         super(SkillPlanEditorSkillEntry, self).ApplyAttributes(attributes)
     45         self.skillPlan = attributes.skillPlan
     46         self.onDropDataSignal = Signal(__name__ + '_onDropDataSignal')
     47         self.onDragEnterSignal = Signal(__name__ + '_onDragEnterSignal')
     48         self.primaryButton = EditorSkillLevelEntryPrimaryButton(parent=self, align=uiconst.TORIGHT, skillController=self.controller, skillLevel=self.level, skillPlan=self.skillPlan, idx=0)
     49         self.dragIndicatorLine = DragIndicatorLine(parent=self, align=uiconst.TOTOP_NOPUSH, state=uiconst.UI_HIDDEN, idx=0)
     50         self.UpdatePrimaryButton()
     51 
     52     def ShowIndicatorLine(self, valid = True):
     53         self.dragIndicatorLine.color = VALID_LINE_COLOR if valid else INVALID_LINE_COLOR
     54         self.dragIndicatorLine.Show()
     55 
     56     def OnDropData(self, dragSource, dragData):
     57         self.onDropDataSignal(self, dragData)
     58         self.dragIndicatorLine.Hide()
     59 
     60     def GetDragData(self):
     61         return (dragdata.SkillLevelDragData(self.typeID, self.level),)
     62 
     63     def OnDragEnter(self, dragSource, dragDataList):
     64         dragData = dragDataList[0]
     65         if skillPlanUtil.IsValidContentsDragData(dragData):
     66             self.onDragEnterSignal(self, dragData)
     67 
     68     def OnDragExit(self, dragSource, dragData):
     69         self.dragIndicatorLine.Hide()
     70 
     71     def Refresh(self):
     72         super(SkillPlanEditorSkillEntry, self).Refresh()
     73         self.UpdatePrimaryButton()
     74 
     75     def UpdatePrimaryButton(self):
     76         self.primaryButton.UpdateState()