]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/lib/throbber.py
Fix or add some DoGetBestSize's
[wxWidgets.git] / wxPython / wx / lib / throbber.py
index d1a8695235a5ffba706e83eaa8390156a5325e7f..a436e1ea2b523ac675dc27a73cd5403233741a17 100644 (file)
@@ -16,14 +16,19 @@ can continue unencumbered.
 #
 # $Id$
 #
+# 12/12/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o 2.5 compatability update.
+#
+
 
 import os
 import wx
 
 # ------------------------------------------------------------------------------
+
 THROBBER_EVENT = wx.NewEventType()
-def EVT_UPDATE_THROBBER(win, func):
-    win.Connect(-1, -1, THROBBER_EVENT, func)
+EVT_UPDATE_THROBBER = wx.PyEventBinder(THROBBER_EVENT, 0)
 
 class UpdateThrobberEvent(wx.PyEvent):
     def __init__(self):
@@ -32,7 +37,7 @@ class UpdateThrobberEvent(wx.PyEvent):
 
 # ------------------------------------------------------------------------------
 
-class Throbber(wx.Panel):
+class Throbber(wx.PyPanel):
     """
     The first argument is either the name of a file that will be split into frames
     (a composite image) or a list of  strings of image names that will be treated
@@ -55,7 +60,7 @@ class Throbber(wx.Panel):
                  reverse = 0,     # reverse direction at end of animation
                  style = 0,       # window style
                  name = "throbber"):
-        wx.Panel.__init__(self, parent, id, pos, size, style, name)
+        wx.PyPanel.__init__(self, parent, id, pos, size, style, name)
         self.name = name
         self.label = label
         self.running = (1 != 1)
@@ -118,11 +123,15 @@ class Throbber(wx.Panel):
         timerID  = wx.NewId()
         self.timer = wx.Timer(self, timerID)
 
-        EVT_UPDATE_THROBBER(self, self.Rotate)
-        wx.EVT_PAINT(self, self.OnPaint)
-        wx.EVT_TIMER(self, timerID, self.OnTimer)
-        wx.EVT_WINDOW_DESTROY(self, self.OnDestroyWindow)
-            
+        self.Bind(EVT_UPDATE_THROBBER, self.Rotate)
+        self.Bind(wx.EVT_PAINT, self.OnPaint)
+        self.Bind(wx.EVT_TIMER, self.OnTimer, self.timer)
+        self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroyWindow)
+
+
+    def DoGetBestSize(self):
+        return (self.width, self.height)
+    
 
     def OnTimer(self, event):
         wx.PostEvent(self, UpdateThrobberEvent())
@@ -134,13 +143,13 @@ class Throbber(wx.Panel):
 
 
     def Draw(self, dc):
-        dc.DrawBitmap(self.submaps[self.sequence[self.current]], 0, 0, True)
+        dc.DrawBitmap(self.submaps[self.sequence[self.current]], (0, 0), True)
         if self.overlay and self.showOverlay:
-            dc.DrawBitmap(self.overlay, self.overlayX, self.overlayY, True)
+            dc.DrawBitmap(self.overlay, (self.overlayX, self.overlayY), True)
         if self.label and self.showLabel:
-            dc.DrawText(self.label, self.labelX, self.labelY)
+            dc.DrawText(self.label, (self.labelX, self.labelY))
             dc.SetTextForeground(wx.WHITE)
-            dc.DrawText(self.label, self.labelX-1, self.labelY-1)
+            dc.DrawText(self.label, (self.labelX-1, self.labelY-1))
 
 
     def OnPaint(self, event):
@@ -194,7 +203,7 @@ class Throbber(wx.Panel):
         """Start the animation"""
         if not self.running:
             self.running = not self.running
-            self.timer.Start(self.frameDelay * 1000)
+            self.timer.Start(int(self.frameDelay * 1000))
 
 
     def Stop(self):