def addToggleButton(self, toolname, tooltip=None):
         bitmap = self.bitmaps[toolname]
         size = (24, 24)
         togglebutton = GenBitmapToggleButton(self.parent, -1, bitmap, size=size)
         togglebutton.SetBezelWidth(3)
         if tooltip is not None:
                 togglebutton.SetToolTip(wx.ToolTip(tooltip))
         self.togglebuttons[toolname] = togglebutton
         return togglebutton
class ImageTool(object):
        def __init__(self, imagepanel, sizer, bitmap, tooltip='', cursor=None,
                        untoggle=False, button=None):
                self.sizer = sizer
                self.imagepanel = imagepanel
                self.cursor = cursor
                if button is None:
                        self.button = GenBitmapToggleButton(self.imagepanel, -1, bitmap, size=(24, 24))
                else:
                        self.button = button
                self.untoggle = untoggle
                self.button.SetBezelWidth(3)
                if tooltip:
                        self.button.SetToolTip(wx.ToolTip(tooltip))
                self.sizer.Add(self.button, 0, wx.ALIGN_CENTER|wx.ALL, 3)
                self.button.Bind(wx.EVT_BUTTON, self.OnButton)

        #--------------------
        def OnButton(self, evt):
                if self.button.GetToggle():
                        if self.untoggle:
                                self.imagepanel.UntoggleTools(self)
                        if self.cursor is not None:
                                self.imagepanel.panel.SetCursor(self.cursor)
                        self.OnToggle(True)
                else:
                        self.imagepanel.panel.SetCursor(self.imagepanel.defaultcursor)
                        self.OnToggle(False)

        #--------------------
        def OnToggle(self, value):
                pass

        #--------------------
        def OnLeftClick(self, evt):
                pass

        #--------------------
        def OnShiftLeftClick(self, evt):
                pass

        #--------------------
        def OnRightClick(self, evt):
                pass

        #--------------------
        def OnShiftRightClick(self, evt):
                pass

        #--------------------
        def OnShiftCtrlRightClick(self, evt):
                pass

        #--------------------
        def OnMotion(self, evt, dc):
                return False

        #--------------------
        def getToolTipStrings(self, x, y, value):
                return []

        #--------------------
        def Draw(self, dc):
                pass