X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b2371711d0cd187826ce41ff69703d635e71df8d..cccce1a6e7cbaab4ba1dc3e039753bdd9bef40e0:/wxPython/demo/Ticker.py diff --git a/wxPython/demo/Ticker.py b/wxPython/demo/Ticker.py new file mode 100644 index 0000000000..1346996b5d --- /dev/null +++ b/wxPython/demo/Ticker.py @@ -0,0 +1,144 @@ + +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 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:]) +