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()