git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			150 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
 | |
| import wx             
 | |
| from wx.lib.ticker import Ticker
 | |
| import wx.lib.colourselect as  csel     #for easy color selection
 | |
| 
 | |
| #----------------------------------------------------------------------
 | |
| 
 | |
| class TestPanel(wx.Panel):
 | |
|     def __init__(self, parent, log):
 | |
|         self.log = log
 | |
|         wx.Panel.__init__(self, parent, -1)
 | |
|         
 | |
|         self.ticker = Ticker(self)
 | |
|         
 | |
|         #       Controls for ...controlling... the ticker.
 | |
|         self.txt = wx.TextCtrl(self, value="I am a scrolling ticker!!!!", size=(200,-1))
 | |
|         wx.CallAfter(self.txt.SetInsertionPoint, 0)
 | |
|         txtl = wx.StaticText(self, label="Ticker text:")
 | |
|         fgb = csel.ColourSelect(self, -1, colour=self.ticker.GetForegroundColour())
 | |
|         fgl = wx.StaticText(self, label="Foreground Color:")
 | |
|         bgb = csel.ColourSelect(self, -1, colour=self.ticker.GetBackgroundColour())
 | |
|         bgl = wx.StaticText(self, label="Background Color:")
 | |
|         fontb = wx.Button(self, label="Change")
 | |
|         self.fontl = wx.StaticText(self)
 | |
|         dirb = wx.Button(self, label="Switch")
 | |
|         self.dirl = wx.StaticText(self)
 | |
|         fpsl = wx.StaticText(self, label="Frames per Second:")
 | |
|         fps = wx.Slider(self, value=self.ticker.GetFPS(), minValue=1, maxValue=100,
 | |
|                         size=(150,-1),
 | |
|                         style=wx.SL_HORIZONTAL|wx.SL_AUTOTICKS|wx.SL_LABELS)
 | |
|         fps.SetTickFreq(5)
 | |
|         ppfl = wx.StaticText(self, label="Pixels per frame:")
 | |
|         ppf = wx.Slider(self, value=self.ticker.GetPPF(), minValue=1, maxValue=10,
 | |
|                         size=(150,-1),
 | |
|                         style=wx.SL_HORIZONTAL|wx.SL_AUTOTICKS|wx.SL_LABELS)
 | |
|         
 | |
|         #       Do layout
 | |
|         sz = wx.FlexGridSizer(cols=2, hgap=4, vgap=4)
 | |
|         
 | |
|         sz.Add(txtl, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         sz.Add(self.txt, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         
 | |
|         sz.Add(fgl, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         sz.Add(fgb, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         
 | |
|         sz.Add(bgl, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         sz.Add(bgb, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         
 | |
|         sz.Add(self.fontl, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         sz.Add(fontb, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         
 | |
|         sz.Add(self.dirl, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         sz.Add(dirb, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         
 | |
|         sz.Add(fpsl, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         sz.Add(fps, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT)
 | |
|         
 | |
|         sz.Add(ppfl, flag=wx.ALIGN_CENTER_VERTICAL)
 | |
|         sz.Add(ppf, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT)
 | |
|         
 | |
|         sz2 = wx.BoxSizer(wx.VERTICAL)
 | |
|         sz2.Add(self.ticker, flag=wx.EXPAND|wx.ALL, border=5)
 | |
|         sz2.Add(sz, flag=wx.EXPAND|wx.ALL, proportion=1, border=25)
 | |
|         self.SetSizer(sz2)
 | |
|         sz2.SetSizeHints(self)
 | |
|         
 | |
|         #       Bind events
 | |
|         self.Bind(wx.EVT_BUTTON, self.OnChangeTickDirection, dirb)
 | |
|         self.Bind(wx.EVT_BUTTON, self.OnChangeTickFont, fontb)
 | |
|         self.Bind(wx.EVT_TEXT, self.OnText, self.txt)
 | |
|         self.Bind(csel.EVT_COLOURSELECT, self.ChangeTickFGColor, fgb)
 | |
|         self.Bind(csel.EVT_COLOURSELECT, self.ChangeTickBGColor, bgb)
 | |
|         self.Bind(wx.EVT_SCROLL, self.ChangeFPS, fps)
 | |
|         self.Bind(wx.EVT_SCROLL, self.ChangePPF, ppf)
 | |
|         
 | |
|         #       Set defaults
 | |
|         self.SetTickDirection("rtl")
 | |
|         self.SetTickFont(self.ticker.GetFont())
 | |
|         self.ticker.SetText(self.txt.GetValue())
 | |
|     def SetTickFont(self, font):
 | |
|         """Sets ticker font, updates label"""
 | |
|         self.ticker.SetFont(font)
 | |
|         self.fontl.SetLabel("Font: %s"%(self.ticker.GetFont().GetFaceName()))
 | |
|         self.Layout()
 | |
|         
 | |
|         
 | |
|     def OnChangeTickFont(self, evt):
 | |
|         fd = wx.FontData()
 | |
|         fd.EnableEffects(False)
 | |
|         fd.SetInitialFont(self.ticker.GetFont())
 | |
|         dlg = wx.FontDialog(wx.GetTopLevelParent(self), fd)
 | |
|         if dlg.ShowModal() == wx.ID_OK:
 | |
|             data = dlg.GetFontData()
 | |
|             self.SetTickFont(data.GetChosenFont())
 | |
|             
 | |
|             
 | |
|     def SetTickDirection(self, dir):
 | |
|         """Sets tick direction, updates label"""
 | |
|         self.ticker.SetDirection(dir)
 | |
|         self.dirl.SetLabel("Direction: %s"%(self.ticker.GetDirection()))
 | |
|         
 | |
|         
 | |
|     def OnChangeTickDirection(self, dir):
 | |
|         if self.ticker.GetDirection() == "rtl":
 | |
|             self.SetTickDirection("ltr")
 | |
|         else:
 | |
|             self.SetTickDirection("rtl")
 | |
|             
 | |
|             
 | |
|     def OnText(self, evt):
 | |
|         """Live update of the ticker text"""
 | |
|         self.ticker.SetText(self.txt.GetValue())
 | |
|         
 | |
|     def ChangeTickFGColor(self, evt):
 | |
|         self.ticker.SetForegroundColour(evt.GetValue())
 | |
|         
 | |
|     def ChangeTickBGColor(self, evt):
 | |
|         self.ticker.SetBackgroundColour(evt.GetValue())
 | |
|         
 | |
|     def ChangeFPS(self, evt):
 | |
|         self.ticker.SetFPS(evt.GetPosition())
 | |
|         
 | |
|     def ChangePPF(self, evt):
 | |
|         self.ticker.SetPPF(evt.GetPosition())
 | |
| 
 | |
| 
 | |
|     def ShutdownDemo(self):
 | |
|         self.ticker.Stop()
 | |
| 
 | |
|         
 | |
| #----------------------------------------------------------------------
 | |
| 
 | |
| def runTest(frame, nb, log):
 | |
|     win = TestPanel(nb, log)
 | |
|     return win
 | |
| 
 | |
| #----------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| 
 | |
| overview = wx.lib.ticker.__doc__
 | |
| 
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     import sys,os
 | |
|     import run
 | |
|     run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
 | |
| 
 |