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
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