예제 #1
0
    def _initialize_tool(self, param):
        """ Initialize the tool palette button. """

        wxid, label, bmp, kind, tooltip, longtip = param

        panel = self.control.FindWindowById(wxid)

        sizer = wx.BoxSizer(wx.VERTICAL)
        panel.SetSizer(sizer)
        panel.SetAutoLayout(True)
        panel.SetWindowStyleFlag(wx.CLIP_CHILDREN)

        from wx.lib.buttons import GenBitmapToggleButton, GenBitmapButton

        if kind == "radio":
            button = GenBitmapToggleButton(panel,
                                           -1,
                                           None,
                                           size=self.button_size)

        else:
            button = GenBitmapButton(panel, -1, None, size=self.button_size)

        self.button_tool_map[button.GetId()] = wxid
        self.tool_id_to_button_map[wxid] = button
        panel.Bind(wx.EVT_BUTTON, self._on_button, button)
        button.SetBitmapLabel(bmp)
        button.SetToolTip(label)
        sizer.Add(button, 0, wx.EXPAND)
 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
예제 #3
0
class GridRowEditorButtons(wx.Panel):
    def __init__(self, parent=None):
        wx.Panel.__init__(self, parent)
        self.isEditable = True

        bmp = wx.Image(os.path.join(resourcePath, 'gui/icons/16x16/add.png'),
                       wx.BITMAP_TYPE_PNG).ConvertToBitmap()
        self.insert = wx.BitmapButton(self, -1, bmp)
        if sys.platform in ('win32', 'win64'):
            bmp = wx.Image(
                os.path.join(resourcePath, 'gui/icons/16x16/addDisabled.png'),
                wx.BITMAP_TYPE_PNG).ConvertToBitmap()
            self.insert.SetBitmapDisabled(bmp)
        self.insert.SetToolTip(wx.ToolTip('Insert a row.'))

        bmp = wx.Image(
            os.path.join(resourcePath, 'gui/icons/16x16/cancel.png'),
            wx.BITMAP_TYPE_PNG).ConvertToBitmap()
        self.delete = wx.BitmapButton(self, -1, bmp)
        if sys.platform in ('win32', 'win64'):
            bmp = wx.Image(
                os.path.join(resourcePath,
                             'gui/icons/16x16/cancelDisabled.png'),
                wx.BITMAP_TYPE_PNG).ConvertToBitmap()
            self.delete.SetBitmapDisabled(bmp)
        self.delete.SetToolTip(wx.ToolTip('Delete selected rows.'))

        bmp = wx.Image(os.path.join(resourcePath, 'gui/icons/16x16/up.png'),
                       wx.BITMAP_TYPE_PNG).ConvertToBitmap()
        self.moveUp = wx.BitmapButton(self, -1, bmp)
        if sys.platform in ('win32', 'win64'):
            bmp = wx.Image(
                os.path.join(resourcePath, 'gui/icons/16x16/upDisabled.png'),
                wx.BITMAP_TYPE_PNG).ConvertToBitmap()
            self.moveUp.SetBitmapDisabled(bmp)
        self.moveUp.SetToolTip(
            wx.ToolTip(
                'Left click to move row up. Right click to move row to top.'))

        bmp = wx.Image(os.path.join(resourcePath, 'gui/icons/16x16/down.png'),
                       wx.BITMAP_TYPE_PNG).ConvertToBitmap()
        self.moveDown = wx.BitmapButton(self, -1, bmp)
        if sys.platform in ('win32', 'win64'):
            bmp = wx.Image(
                os.path.join(resourcePath, 'gui/icons/16x16/downDisabled.png'),
                wx.BITMAP_TYPE_PNG).ConvertToBitmap()
            self.moveDown.SetBitmapDisabled(bmp)
        self.moveDown.SetToolTip(
            wx.ToolTip(
                'Left click to move row down. Right click to move row to bottom.'
            ))

        bmp = wx.Image(os.path.join(resourcePath, 'gui/icons/16x16/sort.png'),
                       wx.BITMAP_TYPE_PNG).ConvertToBitmap()
        self.sort = wx.BitmapButton(self, -1, bmp)
        if sys.platform in ('win32', 'win64'):
            bmp = wx.Image(
                os.path.join(resourcePath, 'gui/icons/16x16/sortDisabled.png'),
                wx.BITMAP_TYPE_PNG).ConvertToBitmap()
            self.sort.SetBitmapDisabled(bmp)
        self.sort.SetToolTip(
            wx.ToolTip(
                'Left click to sort in ascending order. Right click for descending order.'
            ))

        bmp = wx.Image(os.path.join(resourcePath, 'gui/icons/16x16/scale.png'),
                       wx.BITMAP_TYPE_PNG).ConvertToBitmap()
        self.autoSize = wx.BitmapButton(self, -1, bmp)
        if sys.platform in ('win32', 'win64'):
            bmp = wx.Image(
                os.path.join(resourcePath,
                             'gui/icons/16x16/scaleDisabled.png'),
                wx.BITMAP_TYPE_PNG).ConvertToBitmap()
            self.autoSize.SetBitmapDisabled(bmp)
        self.autoSize.SetToolTip(wx.ToolTip('Auto size cells.'))

        bmp = wx.Image(
            os.path.join(resourcePath, 'gui/icons/16x16/system-search.png'),
            wx.BITMAP_TYPE_PNG).ConvertToBitmap()
        self.expand = GenBitmapToggleButton(self,
                                            -1,
                                            bmp,
                                            size=self.autoSize.GetSize())
        self.expand.SetToolTip(wx.ToolTip('Show/hide optional fields.'))

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self.insert)
        sizer.Add(self.delete)
        sizer.Add(self.moveUp)
        sizer.Add(self.moveDown)
        sizer.Add(self.sort)
        sizer.Add(self.autoSize)
        sizer.Add(self.expand)
        self.SetSizer(sizer)
        self.setCellSelectedState()

    def enable(self):
        self.isEditable = True
        self.insert.Enable()
        self.delete.Enable()
        self.moveUp.Enable()
        self.moveDown.Enable()
        self.sort.Enable()

    def disable(self):
        self.isEditable = False
        self.insert.Disable()
        self.delete.Disable()
        self.moveUp.Disable()
        self.moveDown.Disable()
        self.sort.Disable()

    def setCellSelectedState(self):
        self.insert.Enable(self.isEditable)
        self.delete.Disable()
        self.moveUp.Disable()
        self.moveDown.Disable()
        self.sort.Enable(self.isEditable)

    def setRowSelectedState(self, up, down):
        self.insert.Enable(self.isEditable)
        self.delete.Enable(self.isEditable)
        self.moveUp.Enable(self.isEditable and up)
        self.moveDown.Enable(self.isEditable and down)
        self.sort.Enable(self.isEditable)

    def setMultiRowSelectedState(self):
        self.insert.Enable(self.isEditable)
        self.delete.Enable(self.isEditable)
        self.moveUp.Disable()
        self.moveDown.Disable()
        self.sort.Enable(self.isEditable)
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