]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/lib/ticker.py
move wxPython to new trunk
[wxWidgets.git] / wxPython / wx / lib / ticker.py
diff --git a/wxPython/wx/lib/ticker.py b/wxPython/wx/lib/ticker.py
deleted file mode 100644 (file)
index 869e45a..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-#----------------------------------------------------------------------
-# Name:        wx.lib.ticker
-# Purpose:     A news-ticker style scrolling text control
-#
-# Author:      Chris Mellon
-#
-# Created:     29-Aug-2004
-# RCS-ID:      $Id$
-# Copyright:   (c) 2004 by Chris Mellon
-# Licence:     wxWindows license
-#----------------------------------------------------------------------
-
-"""News-ticker style scrolling text control
-
-    * Can scroll from right to left or left to right.
-    
-    * Speed of the ticking is controlled by two parameters:
-    
-      - Frames per Second(FPS): How many times per second the ticker updates
-      
-      - Pixels per Frame(PPF): How many pixels the text moves each update
-
-Low FPS with high PPF will result in "jumpy" text, lower PPF with higher FPS
-is smoother (but blurrier and more CPU intensive) text.
-"""
-
-import wx
-
-#----------------------------------------------------------------------
-
-class Ticker(wx.PyControl):
-    def __init__(self, 
-            parent, 
-            id=-1, 
-            text=wx.EmptyString,        #text in the ticker
-            fgcolor = wx.BLACK,         #text/foreground color
-            bgcolor = wx.WHITE,         #background color
-            start=True,                 #if True, the ticker starts immediately
-            ppf=2,                      #pixels per frame
-            fps=20,                     #frames per second
-            direction="rtl",            #direction of ticking, rtl or ltr
-            pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.NO_BORDER, 
-            name="Ticker"
-        ):
-        wx.PyControl.__init__(self, parent, id=id, pos=pos, size=size, style=style, name=name)
-        self.timer = wx.Timer(owner=self)
-        self._extent = (-1, -1)  #cache value for the GetTextExtent call
-        self._offset = 0
-        self._fps = fps  #frames per second
-        self._ppf = ppf  #pixels per frame
-        self.SetDirection(direction)
-        self.SetText(text)
-        self.SetInitialSize(size)
-        self.SetForegroundColour(fgcolor)
-        self.SetBackgroundColour(bgcolor)
-        wx.EVT_TIMER(self, -1, self.OnTick)
-        wx.EVT_PAINT(self, self.OnPaint)
-        wx.EVT_ERASE_BACKGROUND(self, self.OnErase)
-        if start:
-            self.Start()
-
-            
-    def Stop(self):
-        """Stop moving the text"""
-        self.timer.Stop()
-
-        
-    def Start(self):
-        """Starts the text moving"""
-        if not self.timer.IsRunning():
-            self.timer.Start(1000 / self._fps)
-
-    
-    def IsTicking(self):
-        """Is the ticker ticking? ie, is the text moving?"""
-        return self.timer.IsRunning()
-
-        
-    def SetFPS(self, fps):
-        """Adjust the update speed of the ticker"""
-        self._fps = fps
-        self.Stop()
-        self.Start()
-
-        
-    def GetFPS(self):
-        """Update speed of the ticker"""
-        return self._fps
-
-        
-    def SetPPF(self, ppf):
-        """Set the number of pixels per frame the ticker moves - ie, how "jumpy" it is"""
-        self._ppf = ppf
-
-        
-    def GetPPF(self):
-        """Pixels per frame"""
-        return self._ppf
-
-        
-    def SetFont(self, font):
-        self._extent = (-1, -1)
-        wx.Control.SetFont(self, font)
-
-        
-    def SetDirection(self, dir):
-        """Sets the direction of the ticker: right to left(rtl) or left to right (ltr)"""
-        if dir == "ltr" or dir == "rtl":
-            if self._offset <> 0:
-                #Change the offset so it's correct for the new direction
-                self._offset = self._extent[0] + self.GetSize()[0] - self._offset
-            self._dir = dir
-        else:
-            raise TypeError
-
-            
-    def GetDirection(self):
-        return self._dir
-
-        
-    def SetText(self, text):
-        """Set the ticker text."""
-        self._text = text
-        self._extent = (-1, -1)
-        if not self._text:
-            self.Refresh() #Refresh here to clear away the old text.
-            
-            
-    def GetText(self):
-        return self._text
-
-        
-    def UpdateExtent(self, dc):
-        """Updates the cached text extent if needed"""
-        if not self._text:
-            self._extent = (-1, -1)
-            return
-        if self._extent == (-1, -1):
-            self._extent = dc.GetTextExtent(self.GetText())
-            
-            
-    def DrawText(self, dc):
-        """Draws the ticker text at the current offset using the provided DC"""
-        dc.SetTextForeground(self.GetForegroundColour())
-        dc.SetFont(self.GetFont())
-        self.UpdateExtent(dc)
-        if self._dir == "ltr":
-            offx = self._offset - self._extent[0]
-        else:
-            offx = self.GetSize()[0] - self._offset
-        offy = (self.GetSize()[1] - self._extent[1]) / 2 #centered vertically
-        dc.DrawText(self._text, offx, offy)
-        
-        
-    def OnTick(self, evt):
-        self._offset += self._ppf
-        w1 = self.GetSize()[0]
-        w2 = self._extent[0]
-        if self._offset >= w1+w2:
-            self._offset = 0
-        self.Refresh()
-        
-        
-    def OnPaint(self, evt):
-        dc = wx.BufferedPaintDC(self)
-        brush = wx.Brush(self.GetBackgroundColour())
-        dc.SetBackground(brush)
-        dc.Clear()
-        self.DrawText(dc)
-        
-        
-    def OnErase(self, evt):
-        """Noop because of double buffering"""
-        pass
-        
-
-    def AcceptsFocus(self):
-        """Non-interactive, so don't accept focus"""
-        return False
-
-        
-    def DoGetBestSize(self):
-        """Width we don't care about, height is either -1, or the character
-        height of our text with a little extra padding
-        """
-        if self._extent == (-1, -1):
-            if not self._text:
-                h = self.GetCharHeight()
-            else:
-                h = self.GetTextExtent(self.GetText())[1]
-        else:
-            h = self._extent[1]
-        return (100, h+5)
-
-
-    def ShouldInheritColours(self): 
-        """Don't get colours from our parent..."""
-        return False
-        
-
-
-#testcase/demo
-if __name__ == '__main__':
-    app = wx.PySimpleApp()
-    f = wx.Frame(None)
-    p = wx.Panel(f)
-    t = Ticker(p, text="Some sample ticker text")   
-    #set ticker properties here if you want
-    s = wx.BoxSizer(wx.VERTICAL)
-    s.Add(t, flag=wx.GROW, proportion=0)
-    p.SetSizer(s)
-    f.Show()
-    app.MainLoop()
-    
-