controls/CustomTree.py
changeset 687 629680fb0582
parent 684 f10449b18dbe
child 714 131ea7f237b9
--- 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):