--- a/controls/CustomTree.py Sat May 19 12:40:53 2012 +0200
+++ b/controls/CustomTree.py Mon May 21 09:59:44 2012 +0200
@@ -27,12 +27,14 @@
self.BackgroundAlign = wx.ALIGN_LEFT|wx.ALIGN_TOP
self.AddMenu = None
+ self.Enabled = False
if wx.Platform == '__WXMSW__':
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
else:
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.Bind(wx.EVT_SIZE, self.OnResize)
+ self.Bind(wx.EVT_SCROLL, self.OnScroll)
self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
def SetBackgroundBitmap(self, bitmap, align):
@@ -42,6 +44,9 @@
def SetAddMenu(self, add_menu):
self.AddMenu = add_menu
+ def Enable(self, enabled):
+ self.Enabled = enabled
+
def GetBitmapRect(self):
client_size = self.GetClientSize()
bitmap_size = self.BackgroundBitmap.GetSize()
@@ -76,13 +81,19 @@
self.RefreshBackground(True)
def OnLeftUp(self, event):
- pos = event.GetPosition()
- item, flags = self.HitTest(pos)
-
- bitmap_rect = self.GetBitmapRect()
- if (bitmap_rect.InsideXY(pos.x, pos.y) or
- flags & wx.TREE_HITTEST_NOWHERE) and self.AddMenu is not None:
- self.PopupMenuXY(self.AddMenu, pos.x, pos.y)
+ if self.Enabled:
+ pos = event.GetPosition()
+ item, flags = self.HitTest(pos)
+
+ bitmap_rect = self.GetBitmapRect()
+ if (bitmap_rect.InsideXY(pos.x, pos.y) or
+ flags & wx.TREE_HITTEST_NOWHERE) and self.AddMenu is not None:
+ self.PopupMenuXY(self.AddMenu, pos.x, pos.y)
+ event.Skip()
+
+ def OnScroll(self, event):
+ print "scroll event"
+ self.RefreshBackground(True)
event.Skip()
def OnResize(self, event):