dabo Commit
Revision 7076
Date: 2012-02-02 19:33:45 -0800 (Thu, 02 Feb 2012)
Author: Paul
Trac: http://trac.dabodev.com/changeset/7076
Changed:
U trunk/dabo/ui/uiwx/dTimer.py
Log:
Reimplemented dTimer to use callAfterInterval instead of wx.TIMER, which was
causing me segfault problems.
Diff:
Modified: trunk/dabo/ui/uiwx/dTimer.py
===================================================================
--- trunk/dabo/ui/uiwx/dTimer.py 2012-02-02 03:41:02 UTC (rev 7075)
+++ trunk/dabo/ui/uiwx/dTimer.py 2012-02-03 03:33:45 UTC (rev 7076)
@@ -6,48 +6,37 @@
import dabo.dEvents as dEvents
from dabo.dLocalize import _
-import dControlMixin as cm
+from dabo.ui.dControlMixinBase import dControlMixinBase as DCMB
from dabo.ui import makeDynamicProperty
import dPanel
-class dTimer(cm.dControlMixin, wx.Timer):
+class dTimer(DCMB):
"""Creates a timer, for causing something to happen at regular
intervals."""
def __init__(self, parent=None, properties=None, *args, **kwargs):
self._baseClass = dTimer
- preClass = wx.Timer
- cm.dControlMixin.__init__(self, preClass, parent=None,
+ DCMB.__init__(self, parent=None,
properties=properties, *args, **kwargs)
- if parent is not None:
- self.SetOwner(parent)
- parent.Bind(wx.EVT_TIMER, self._onWxHit)
- else:
- self.Bind(wx.EVT_TIMER, self._onWxHit)
-
def isRunning(self):
- return self.IsRunning()
+ return self.Enabled
def start(self, interval=-1):
if interval >= 0:
self.Interval = interval
- if self.Interval > 0:
- self.Start(self.Interval)
- else:
- self.Stop()
- return self.IsRunning()
+ self.Enabled = self.Interval > 0
+ return self.Enabled
def stop(self):
- self.Stop()
- return not self.IsRunning()
+ self.Enabled = False
def release(self):
"""Make sure that the timer is stopped first"""
- self.Stop()
+ self.stop()
super(dTimer, self).release()
@@ -61,18 +50,23 @@
pass
def GetParent(self):
return None
+ def Bind(self, *args, **kwargs):
+ pass
+ def _onTimerHit(self):
+ if self.Enabled and self.Interval > 0:
+ self.raiseEvent(dabo.dEvents.Hit)
+ dabo.ui.callAfterInterval(self.Interval,
self._onTimerHit)
+
# property get/set functions
def _getEnabled(self):
- return self.IsRunning()
+ return getattr(self, "_enabled", False)
def _setEnabled(self, val):
- if self._constructed():
- if val:
- self.start()
- else:
- self.stop()
+ self._enabled = val
+ if val:
+ dabo.ui.callAfterInterval(self.Interval,
self._onTimerHit)
else:
self._properties["Enabled"] = val
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message:
http://leafe.com/archives/byMID/[email protected]