Module Gnumed.wxpython.gmTimer

GNUmed wx.Timer proxy object.

@copyright: author(s)

Functions

def shutdown()
Expand source code
def shutdown():
        global _timers
        _log.info('shutting down %s pending timers', len(_timers))
        for timer in _timers:
                _log.debug('timer [%s]', timer.cookie)
                timer.Stop()
        _timers = []

Classes

class cTimer (callback=None, delay=300, cookie=None)
Expand source code
class cTimer(wx.Timer):
        """wx.Timer proxy.

        It would be quite useful to tune the delay
        according to current network speed either at
        application startup or even during runtime.
        """
        def __init__(self, callback = None, delay = 300, cookie = None):
                """Set up our timer with reasonable defaults.

                - delay default is 300ms as per Richard Terry's experience
                - delay should be tailored to network speed/user speed
                - <cookie> is passed to <callback> when <delay> is up
                """
                # sanity check
                if not callable(callback):
                        raise ValueError("[%s]: <callback> %s is not a callable()" % (self.__class__.__name__, callback))

                if cookie is None:
                        self.cookie = id(self)
                else:
                        self.cookie = cookie
                self.__callback = callback
                self.__delay = delay

                wx.Timer.__init__(self)

                _log.debug('setting up timer: cookie [%s], delay %sms', self.cookie, self.__delay)

                global _timers
                _timers.append(self)
        #-----------------------------------------------------------------------
        def Start(self, milliseconds=-1, oneShot=False):
                if milliseconds == -1:
                        milliseconds = self.__delay
                wx.Timer.Start(self, milliseconds=milliseconds, oneShot=oneShot)

        #-----------------------------------------------------------------------
        def Notify(self):
                self.__callback(self.cookie)

        #-----------------------------------------------------------------------
        def set_cookie(self, cookie=None):
                if cookie is None:
                        self.cookie = id(self)
                else:
                        self.cookie = cookie

wx.Timer proxy.

It would be quite useful to tune the delay according to current network speed either at application startup or even during runtime.

Set up our timer with reasonable defaults.

  • delay default is 300ms as per Richard Terry's experience
  • delay should be tailored to network speed/user speed
  • is passed to when is up

Ancestors

  • wx._core.Timer
  • wx._core.EvtHandler
  • wx._core.Object
  • wx._core.Trackable
  • sip.wrapper
  • sip.simplewrapper

Methods

def Notify(self)
Expand source code
def Notify(self):
        self.__callback(self.cookie)

Notify()

This member should be overridden by the user if the default constructor was used and SetOwner() wasn't called.

def Start(self, milliseconds=-1, oneShot=False)
Expand source code
def Start(self, milliseconds=-1, oneShot=False):
        if milliseconds == -1:
                milliseconds = self.__delay
        wx.Timer.Start(self, milliseconds=milliseconds, oneShot=oneShot)

Start(milliseconds=-1, oneShot=TIMER_CONTINUOUS) -> bool

(Re)starts the timer.

Expand source code
def set_cookie(self, cookie=None):
        if cookie is None:
                self.cookie = id(self)
        else:
                self.cookie = cookie