Changeset 56174

Show
Ignore:
Timestamp:
10/08/08 14:37:52 (7 weeks ago)
Author:
AG
Message:

- Applied patch for ticket 9767, thanks to Cody Precord

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • wxPython/trunk/wx/lib/customtreectrl.py

    r53859 r56174  
    308308EVT_TREE_ITEM_HYPERLINK = wx.PyEventBinder(wxEVT_TREE_ITEM_HYPERLINK, 1) 
    309309 
    310 from wx.lib.embeddedimage import PyEmbeddedImage 
    311  
    312 Flagged = PyEmbeddedImage( 
    313     "iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAelJ" 
    314     "REFUKJF1ktFL02EUhp/vfEoySsMlhY4cYpNIbNksBkZdNBAJRDODiMi/wLSuQlAx6aIo7Kpu" 
    315     "w4JwRKGEsIhAM4zJomJUol6MgVYztrWfzjm+LmqyMN/r9+E5B16lRJOfnmG/CQS/Eotb2Ets" 
    316     "+Dwu7nS1q/yOyocqWnpN87FqfEer8NSUE5pfJjC7yNj0Z6LPb6gtUMf1B6btRA2NtfsREbTW" 
    317     "iGi01kx9ivDk1UceDXQqAMkZtgNENKfcVVw47aaipdcA6Kv3nprKsp1c8tUhImRUhsnkFINz" 
    318     "g0hG49zlpKiwiKryPUR/JGlsPt+vU2X1/Z1Nh6nctxutNZPJKfzpURLpBBMLE5SqUtx7jyAi" 
    319     "7Cgs4P6zt0gsYeGpKd88ZSQyQmxlhZRlsZbOcPvdLUQEpRTeWiexhIXYi22E5pc3fzhrb2cp" 
    320     "usS35e8k4j/pqb+GUgoRYSYcwV5sQ3wNLgKzi5umJkcTV6q7kV8FDB2/Scehjr8mYXw6jK/B" 
    321     "BUo0jtY+MzYZMslk3KRSSbO6apl0es2sr6fNxkbGZLNZ8zL4xTha+4wS/QdSork48NC8ePNh" 
    322     "W+Dy0GOT625ZRNvJOs54D+KtdTITjjA+Hcb/+v3/F5FL9/CoCQTnWIlblJbY8HkOcLfr3D/b" 
    323     "+w180NFdmL1t3AAAAABJRU5ErkJggg==") 
    324  
    325 NotFlagged = PyEmbeddedImage( 
    326     "iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAWRJ" 
    327     "REFUKJGV0jFLgmEUhuHnPe83OTi4iQ4ifENklIiDBjWIEDiIUYst0R+ImgoEEWqOaAjaWoQo" 
    328     "gsIgMMEgJLRQoRARRLA2MdTUzOQ0hCCoSGd+Ls5yC0ESg7d1eM7RVAHVegs6rQZuu4qDzVUx" 
    329     "uBGDyOAN8JLdDJfVBJuqR7ZYQSxdQuQxj/erPTGEVnaO2TevwjltBJGElAqklFAUBYnXN5zF" 
    330     "XxAObQgAoP6HcUBKicU5M/yuWRi8AQYAsX10yfVGAwG/cyQgkiAiEEnsntxCUQgUTRXgspom" 
    331     "AiKCxzGFaKoAqtZbsKn6iYCI4LCYUK23QDqtBtliZSIgIiRzZei0GpDbriKWLk0ERIRIIge3" 
    332     "XQUESRh9Qb6+f+Za7YMbjRo3m5/cbre40/nibvebe70fvnvKs9EXZEHyDwmSWAud8s1DZixY" 
    333     "3w9zfztUxPLCDDyOKTgsJiRzZUQSOVzEM6OL+E97v/G1pZkwDG/WAAAAAElFTkSuQmCC") 
    334  
    335 Checked = PyEmbeddedImage( 
    336     "iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAKlJ" 
    337     "REFUKJFjlAls+M9AImBhYGBgODYxFi7AyMjEwMQEwczMzAxMTMxwmomJiUEzrp+BCdkEQhqY" 
    338     "mCDKmYjRYLDBCCrHjNBESAMDAwPcNrgmmAarXXZYNcDUMDIyompiZoZYbbrVAkPDjYjrDIyM" 
    339     "jKg2wUyGAVwaGBlRnAdx0oWAcyjxga4BxXnIwXol5BJODWh+QsQDExMzXg0YoQfTjE8DAwMD" 
    340     "AyM5aQ8AoE8ebApv5jgAAAAASUVORK5CYII=") 
    341  
    342 NotChecked = PyEmbeddedImage( 
    343     "iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAG1J" 
    344     "REFUKJGd0sENgDAIBdDPhzHcwGk8eXUU757cyM30UKOlF38lIU0ID5IGG6b1RGcEABzb/BRI" 
    345     "3ulwD7g7IspLOsZlB+sJX4As7ewBpL9IBWmTChqkgYRU0CANmFVIBWaWN6kgfYQKAMD+3N4F" 
    346     "sAcJ4jYyX4sAAAAASUVORK5CYII=") 
    347  
    348  
    349310def GrayOut(anImage): 
    350311    """ 
     
    18751836                style |= TR_ROW_LINES 
    18761837 
    1877         # Create the default check image list         
    1878         self.SetImageListCheck(13, 13) 
    1879  
    18801838        # A constant to use my translation of RendererNative.DrawTreeItemButton 
    18811839        # if the wxPython version is less than 2.6.2.1. 
     
    18871845        # Create our container... at last!     
    18881846        wx.PyScrolledWindow.__init__(self, parent, id, pos, size, style|wx.HSCROLL|wx.VSCROLL, name) 
     1847 
     1848        # Create the default check image list         
     1849        self.SetImageListCheck(16, 16) 
    18891850 
    18901851        # If the tree display has no buttons, but does have 
     
    19441905        event.Skip() 
    19451906 
    1946          
     1907    def GetControlBmp(self, checkbox=True, checked=False, 
     1908                      enabled=True, x=16, y=16): 
     1909        """Get a native looking checkbox or radio button bitmap 
     1910        @keyword checkbox: Get a checkbox=True, radiobutton=False 
     1911        @keyword checked: contorl is marked or not 
     1912 
     1913        """ 
     1914        bmp = wx.EmptyBitmap(x, y) 
     1915        mdc = wx.MemoryDC(bmp) 
     1916        dc = wx.GCDC(mdc) 
     1917        render = wx.RendererNative.Get() 
     1918 
     1919        if checked: 
     1920            flag = wx.CONTROL_CHECKED 
     1921        else: 
     1922            flag = 0 
     1923 
     1924        if not enabled: 
     1925            flag |= wx.CONTROL_DISABLED 
     1926 
     1927        if checkbox: 
     1928            render.DrawCheckBox(self, mdc, (0, 0, x, y), flag) 
     1929        else: 
     1930            render.DrawRadioButton(self, mdc, (0, 0, x, y), flag) 
     1931 
     1932        mdc.SelectObject(wx.NullBitmap) 
     1933        return bmp 
     1934 
    19471935    def GetCount(self): 
    19481936        """Returns the global number of items in the tree.""" 
     
    40734061        """Sets the check image list.""" 
    40744062 
     4063        # Image list to hold disabled versions of each control 
     4064        self._grayedCheckList = wx.ImageList(sizex, sizey, True, 0) 
     4065 
    40754066        if imglist is None: 
    40764067             
    40774068            self._imageListCheck = wx.ImageList(sizex, sizey) 
    4078             self._imageListCheck.Add(Checked.GetBitmap()) 
    4079             self._imageListCheck.Add(NotChecked.GetBitmap()) 
    4080             self._imageListCheck.Add(Flagged.GetBitmap()) 
    4081             self._imageListCheck.Add(NotFlagged.GetBitmap()) 
     4069 
     4070            # Get the Checkboxes 
     4071            self._imageListCheck.Add(self.GetControlBmp(checkbox=True, 
     4072                                                        checked=True, 
     4073                                                        enabled=True, 
     4074                                                        x=sizex, y=sizey)) 
     4075            self._grayedCheckList.Add(self.GetControlBmp(checkbox=True, 
     4076                                                         checked=True, 
     4077                                                         enabled=False, 
     4078                                                         x=sizex, y=sizey)) 
     4079 
     4080            self._imageListCheck.Add(self.GetControlBmp(checkbox=True, 
     4081                                                        checked=False, 
     4082                                                        enabled=True, 
     4083                                                        x=sizex, y=sizey)) 
     4084            self._grayedCheckList.Add(self.GetControlBmp(checkbox=True, 
     4085                                                         checked=False, 
     4086                                                         enabled=False, 
     4087                                                         x=sizex, y=sizey)) 
     4088 
     4089 
     4090            # Get the Radio Buttons 
     4091            self._imageListCheck.Add(self.GetControlBmp(checkbox=False, 
     4092                                                        checked=True, 
     4093                                                        enabled=True, 
     4094                                                        x=sizex, y=sizey)) 
     4095            self._grayedCheckList.Add(self.GetControlBmp(checkbox=False, 
     4096                                                         checked=True, 
     4097                                                         enabled=False, 
     4098                                                         x=sizex, y=sizey)) 
     4099 
     4100            self._imageListCheck.Add(self.GetControlBmp(checkbox=False, 
     4101                                                        checked=False, 
     4102                                                        enabled=True, 
     4103                                                        x=sizex, y=sizey)) 
     4104            self._grayedCheckList.Add(self.GetControlBmp(checkbox=False, 
     4105                                                        checked=False, 
     4106                                                        enabled=False, 
     4107                                                        x=sizex, y=sizey)) 
    40824108 
    40834109        else: 
     
    40864112            self._imageListCheck = imglist 
    40874113 
    4088         # We gray out the image list to use the grayed icons with disabled items 
    4089         self._grayedCheckList = wx.ImageList(sizex, sizey, True, 0) 
    4090          
    4091         for ii in xrange(self._imageListCheck.GetImageCount()): 
    4092              
    4093             bmp = self._imageListCheck.GetBitmap(ii) 
    4094             image = wx.ImageFromBitmap(bmp) 
    4095             image = GrayOut(image) 
    4096             newbmp = wx.BitmapFromImage(image) 
    4097             self._grayedCheckList.Add(newbmp) 
     4114            for ii in xrange(self._imageListCheck.GetImageCount()): 
     4115                 
     4116                bmp = self._imageListCheck.GetBitmap(ii) 
     4117                image = wx.ImageFromBitmap(bmp) 
     4118                image = GrayOut(image) 
     4119                newbmp = wx.BitmapFromImage(image) 
     4120                self._grayedCheckList.Add(newbmp) 
    40984121 
    40994122        self._dirty = True