root/trunk/RBSkinning/RBSkinning/wxTools/wxTimerSubject.py

Revision 752, 1.7 kB (checked in by sholloway, 5 years ago)

--

Line 
1 #!/usr/bin/env python
2 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 ##~ License
4 ##~
5 ##- The RuneBlade Foundation library is intended to ease some
6 ##- aspects of writing intricate Jabber, XML, and User Interface (wxPython, etc.)
7 ##- applications, while providing the flexibility to modularly change the
8 ##- architecture. Enjoy.
9 ##~
10 ##~ Copyright (C) 2002  TechGame Networks, LLC.
11 ##~
12 ##~ This library is free software; you can redistribute it and/or
13 ##~ modify it under the terms of the BSD style License as found in the
14 ##~ LICENSE file included with this distribution.
15 ##~
16 ##~ TechGame Networks, LLC can be reached at:
17 ##~ 3578 E. Hartsel Drive #211
18 ##~ Colorado Springs, Colorado, USA, 80920
19 ##~
20 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21
22 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 #~ Imports
24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25
26 from RBFoundation.ContextApply import ContextApply_s
27 from RBFoundation.SubObs.Basic import Subject
28 from wxPython import wx
29
30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 #~ Definitions
32 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33
34 class wxTimerCallback(wx.wxTimer):
35     def __init__(self, *args, **kw):
36         wx.wxTimer.__init__(self)
37         if args or kw:
38             self.SetCallback(*args, **kw)
39
40     def GetCallback(self):
41         return self.callback
42     def SetCallback(self, callback=None, *args, **kw):
43         self.callback = ContextApply_s(callback, *args, **kw)
44
45     def Notify(self):
46         self.GetCallback()()
47
48 class wxTimerSubject(wx.wxTimer):
49     def __init__(self, *args, **kw):
50         wx.wxTimer.__init__(self)
51         self.subject = Subject()
52     def Notify(self):
53         self.subject.Update()
54
Note: See TracBrowser for help on using the browser.