# Different color for references
if treeObj.ref:
self.SetItemTextColour(item, 'DarkGreen')
+ elif treeObj.hasStyle and treeObj.params.get('hidden', False):
+ self.SetItemTextColour(item, 'Grey')
# Try to find children objects
if treeObj.hasChildren:
nodes = treeObj.element.childNodes[:]
#oldItem = evt.GetOldItem()
status = ''
oldItem = self.selection
- if oldItem:
+ # use GetItemParent as a way to determine if the itemId is still valid
+ if oldItem and self.GetItemParent(oldItem):
xxx = self.GetPyData(oldItem)
# If some data was modified, apply changes
if g.panel.IsModified():
if item == g.testWin.item: return False
while item != self.root:
item = self.GetItemParent(item)
- if item == g.testWin.item: return True
+ if item == g.testWin.item:
+ return True
return False
# Highlight selected item
return
# Get window/sizer object
obj = self.FindNodeObject(item)
- if not obj:
+ xxx = self.GetPyData(item).treeObject()
+ # Remove existing HL if item not found or is hidden
+ if not obj or xxx.hasStyle and xxx.params.get('hidden', False):
if g.testWin.highLight: g.testWin.highLight.Remove()
return
pos = self.FindNodePos(item, obj)
return
# Show item in bold
if g.testWin: # Reset old
+ self.Unselect()
self.SetItemBold(g.testWin.item, False)
try:
wx.BeginBusyCursor()
inf = sys.exc_info()
wx.LogError(traceback.format_exception(inf[0], inf[1], None)[-1])
wx.LogError('Error writing temporary file')
- if debug: raise
memFile.close() # write to wxMemoryFS
xmlFlags = xrc.XRC_NO_SUBCLASSING
# Use translations if encoding is not specified
(ID_NEW.PANEL, 'Panel', 'Create panel'),
(ID_NEW.DIALOG, 'Dialog', 'Create dialog'),
(ID_NEW.FRAME, 'Frame', 'Create frame')], shift=True)
- elif xxx.isSizer:
+ elif xxx.isSizer and self.ItemHasChildren(item):
SetMenu(m, pullDownMenu.sizers, shift=True)
else:
SetMenu(m, pullDownMenu.controls, shift=True)
self.PopupMenu(menu, evt.GetPosition())
menu.Destroy()
+ # Redefine to force the update of font dimentions on wxGTK
+ if wx.Platform == '__WXGTK__':
+ def SetItemBold(self, item, state=True):
+ wx.TreeCtrl.SetItemBold(self, item, state)
+ self.SetIndent(self.GetIndent())
+
# Apply changes
def Apply(self, xxx, item):
g.panel.Apply()