controls/CustomTree.py
changeset 687 629680fb0582
parent 684 f10449b18dbe
child 714 131ea7f237b9
equal deleted inserted replaced
686:3216bf5f711d 687:629680fb0582
    25         
    25         
    26         self.BackgroundBitmap = None
    26         self.BackgroundBitmap = None
    27         self.BackgroundAlign = wx.ALIGN_LEFT|wx.ALIGN_TOP
    27         self.BackgroundAlign = wx.ALIGN_LEFT|wx.ALIGN_TOP
    28         
    28         
    29         self.AddMenu = None
    29         self.AddMenu = None
       
    30         self.Enabled = False
    30         
    31         
    31         if wx.Platform == '__WXMSW__':
    32         if wx.Platform == '__WXMSW__':
    32             self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
    33             self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
    33         else:
    34         else:
    34             self.Bind(wx.EVT_PAINT, self.OnPaint)
    35             self.Bind(wx.EVT_PAINT, self.OnPaint)
    35             self.Bind(wx.EVT_SIZE, self.OnResize)
    36             self.Bind(wx.EVT_SIZE, self.OnResize)
       
    37             self.Bind(wx.EVT_SCROLL, self.OnScroll)
    36         self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
    38         self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
    37     
    39     
    38     def SetBackgroundBitmap(self, bitmap, align):
    40     def SetBackgroundBitmap(self, bitmap, align):
    39         self.BackgroundBitmap = bitmap
    41         self.BackgroundBitmap = bitmap
    40         self.BackgroundAlign = align
    42         self.BackgroundAlign = align
    41     
    43     
    42     def SetAddMenu(self, add_menu):
    44     def SetAddMenu(self, add_menu):
    43         self.AddMenu = add_menu
    45         self.AddMenu = add_menu
       
    46     
       
    47     def Enable(self, enabled):
       
    48         self.Enabled = enabled
    44     
    49     
    45     def GetBitmapRect(self):
    50     def GetBitmapRect(self):
    46         client_size = self.GetClientSize()
    51         client_size = self.GetClientSize()
    47         bitmap_size = self.BackgroundBitmap.GetSize()
    52         bitmap_size = self.BackgroundBitmap.GetSize()
    48         
    53         
    74     
    79     
    75     def OnEraseBackground(self, event):
    80     def OnEraseBackground(self, event):
    76         self.RefreshBackground(True)
    81         self.RefreshBackground(True)
    77     
    82     
    78     def OnLeftUp(self, event):
    83     def OnLeftUp(self, event):
    79         pos = event.GetPosition()
    84         if self.Enabled:
    80         item, flags = self.HitTest(pos)
    85             pos = event.GetPosition()
    81         
    86             item, flags = self.HitTest(pos)
    82         bitmap_rect = self.GetBitmapRect()
    87             
    83         if (bitmap_rect.InsideXY(pos.x, pos.y) or 
    88             bitmap_rect = self.GetBitmapRect()
    84             flags & wx.TREE_HITTEST_NOWHERE) and self.AddMenu is not None:
    89             if (bitmap_rect.InsideXY(pos.x, pos.y) or 
    85             self.PopupMenuXY(self.AddMenu, pos.x, pos.y)
    90                 flags & wx.TREE_HITTEST_NOWHERE) and self.AddMenu is not None:
       
    91                 self.PopupMenuXY(self.AddMenu, pos.x, pos.y)
       
    92         event.Skip()
       
    93 
       
    94     def OnScroll(self, event):
       
    95         print "scroll event"
       
    96         self.RefreshBackground(True)
    86         event.Skip()
    97         event.Skip()
    87 
    98 
    88     def OnResize(self, event):
    99     def OnResize(self, event):
    89         self.RefreshBackground(True)
   100         self.RefreshBackground(True)
    90         event.Skip()
   101         event.Skip()