E. A. Tacao. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38120 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # AnalogClock's colour selector for setup dialog
 | |
| #   E. A. Tacao <e.a.tacao |at| estadao.com.br>
 | |
| #   http://j.domaindlx.com/elements28/wxpython/
 | |
| #   15 Fev 2006, 22:00 GMT-03:00
 | |
| # Distributed under the wxWidgets license.
 | |
| 
 | |
| import wx
 | |
| from wx.lib.newevent import NewEvent
 | |
| from wx.lib.buttons import GenBitmapButton
 | |
| 
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| (ColourSelectEvent, EVT_COLOURSELECT) = NewEvent()
 | |
| 
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| class ColourSelect(GenBitmapButton):
 | |
|     def __init__(self, parent, size=(21, 21), value=wx.BLACK):
 | |
|         w, h = size[0] - 5, size[1] - 5
 | |
|         GenBitmapButton.__init__(self, parent, wx.ID_ANY, wx.EmptyBitmap(w, h),
 | |
|                                  size=size)
 | |
|         self.SetBezelWidth(1)
 | |
| 
 | |
|         self.parent = parent
 | |
|         self.SetValue(value)
 | |
| 
 | |
|         self.parent.Bind(wx.EVT_BUTTON, self.OnClick, self)
 | |
| 
 | |
| 
 | |
|     def _makeBitmap(self):
 | |
|         bdr = 8; w, h = self.GetSize()
 | |
|         bmp = wx.EmptyBitmap(w - bdr, h - bdr)
 | |
| 
 | |
|         dc = wx.MemoryDC()
 | |
|         dc.SelectObject(bmp)
 | |
|         dc.SetBackground(wx.Brush(self.value, wx.SOLID))
 | |
|         dc.Clear()
 | |
|         dc.SelectObject(wx.NullBitmap)
 | |
| 
 | |
|         self.SetBitmapLabel(bmp)
 | |
|         self.Refresh()
 | |
| 
 | |
| 
 | |
|     def GetValue(self):
 | |
|         return self.value
 | |
| 
 | |
| 
 | |
|     def SetValue(self, value):
 | |
|         self.value = value
 | |
|         self._makeBitmap()
 | |
| 
 | |
| 
 | |
|     def OnClick(self, event):
 | |
|         win = wx.GetTopLevelParent(self)
 | |
| 
 | |
|         data = wx.ColourData()
 | |
|         data.SetChooseFull(True)
 | |
|         data.SetColour(self.value)
 | |
|         [data.SetCustomColour(colour_index, win.customcolours[colour_index])
 | |
|          for colour_index in range(0, 16)]
 | |
| 
 | |
|         dlg = wx.ColourDialog(win, data)
 | |
|         dlg.SetTitle("Select Colour")
 | |
|         changed = dlg.ShowModal() == wx.ID_OK
 | |
| 
 | |
|         if changed:
 | |
|             data = dlg.GetColourData()
 | |
|             self.SetValue(data.GetColour())
 | |
|             win.customcolours = [data.GetCustomColour(colour_index) \
 | |
|                                  for colour_index in range(0, 16)]
 | |
|         dlg.Destroy()
 | |
| 
 | |
|         if changed:
 | |
|             nevt = ColourSelectEvent(id=self.GetId(), obj=self, val=self.value)
 | |
|             wx.PostEvent(self.parent, nevt)
 | |
| 
 | |
| 
 | |
| #
 | |
| ##
 | |
| ### eof
 |