mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
added label editing capability
This commit is contained in:
parent
d71ea75038
commit
0cc987d0b7
@ -53,6 +53,8 @@ class ProtoPaletteUI(wx.Panel):
|
||||
self.rootName = "Proto Objects"
|
||||
self.root = self.tree.AddRoot(self.rootName)
|
||||
self.addTreeNodes(self.root, self.palette.dataStruct)
|
||||
|
||||
self.editorTxt = "Proto Objects Editor"
|
||||
|
||||
self.opAdd = "Add Group"
|
||||
self.opDelete = "Delete Group"
|
||||
@ -81,6 +83,7 @@ class ProtoPaletteUI(wx.Panel):
|
||||
|
||||
self.tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.onSelected)
|
||||
self.tree.Bind(wx.EVT_TREE_BEGIN_DRAG, self.onBeginDrag)
|
||||
self.tree.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnEndLabelEdit)
|
||||
self.tree.Bind(wx.EVT_KILL_FOCUS , self.OnKillFocus)
|
||||
|
||||
self.SetDropTarget(FileDrop(self.editor))
|
||||
@ -146,6 +149,25 @@ class ProtoPaletteUI(wx.Panel):
|
||||
tds.SetData(tdo)
|
||||
tds.DoDragDrop(True)
|
||||
|
||||
def OnEndLabelEdit(self, event):
|
||||
item = event.GetItem()
|
||||
if item != self.tree.GetRootItem():
|
||||
newLabel = event.GetLabel()
|
||||
if self.traverse(self.tree.GetRootItem(), newLabel) is None:
|
||||
oldLabel = self.tree.GetItemText(item)
|
||||
if isinstance(self.editor.protoPalette.findItem(oldLabel), ObjectBase):
|
||||
event.Veto()
|
||||
wx.MessageBox("Only groups allowed to be renamed", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION)
|
||||
elif not self.editor.protoPalette.rename(oldLabel, newLabel):
|
||||
event.Veto()
|
||||
wx.MessageBox("Label '%s' is not allowed" % newLabel, self.editorTxt, wx.OK|wx.ICON_EXCLAMATION)
|
||||
else:
|
||||
event.Veto()
|
||||
wx.MessageBox("There is already an item labled '%s'" % newLabel, self.editorTxt, wx.OK|wx.ICON_EXCLAMATION)
|
||||
else:
|
||||
event.Veto()
|
||||
wx.MessageBox("'%s' renaming is not allowed" % self.rootName, self.editorTxt, wx.OK|wx.ICON_EXCLAMATION)
|
||||
|
||||
def OnKillFocus(self, event):
|
||||
print "Leaving protoUI window..."
|
||||
self.SetDropTarget(FileDrop(self.editor))
|
||||
|
Loading…
x
Reference in New Issue
Block a user