diff options
author | Vincent Vinet <vince.vinet@gmail.com> | 2009-12-04 05:06:49 (GMT) |
---|---|---|
committer | Vincent Vinet <vince.vinet@gmail.com> | 2009-12-06 20:32:16 (GMT) |
commit | fb422aef7ee6832c85c8fa8a703e491838e74d62 (patch) | |
tree | 871950b00610cb90f212cc78a5bca0fa1825aef9 /addons/bubblemessage.py | |
parent | 96e5675b0003d57cb87eb44f470aa2d309d8329b (diff) |
Add Event Sources:
- Add source property in Action and EventFilter
- Change TPropContainer contructor to accept keyword arguments and set
properties that were given
- Change every single TPropContainer subclass constructor to accept
kwargs and pass them on to super init
- Add a "null" option for TStringProperty
Use Event Sources:
- Make the probe require a source property to install or subscribe
- Have ProbeProxy install and subscribe return a prefixed address
- Make update, uninstall and unsubsribe extract the prefix from the
address
- Have the TutorialRunner set a source on actions/events before
installing/subscribing instead of setting current activity on
ProbeManager
Test Event Sources:
- Change the tests according to the new constructors and behaviors
Diffstat (limited to 'addons/bubblemessage.py')
-rw-r--r-- | addons/bubblemessage.py | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/addons/bubblemessage.py b/addons/bubblemessage.py index 53387bf..4e37274 100644 --- a/addons/bubblemessage.py +++ b/addons/bubblemessage.py @@ -25,42 +25,33 @@ class BubbleMessage(Action): # Do the same for the tail position tail_pos = TArrayProperty((0,0), 2, 2) - def __init__(self, message=None, position=None, speaker=None, tail_pos=None): + def __init__(self, **kwargs): """ Shows a dialog with a given text, at the given position on the screen. + Accepted keyword args: @param message A string to display to the user @param position A list of the form [x, y] @param speaker treeish representation of the speaking widget @param tail_pos The position of the tail of the bubble; useful to point to specific elements of the interface """ - Action.__init__(self) - - if position: - self.position = position - if tail_pos: - self.tail_pos = tail_pos - if message: - self.message = message + super(BubbleMessage, self).__init__(**kwargs) self.overlay = None self._bubble = None self._speaker = None - def do(self, **kwargs): + def do(self, activity=None, **kwargs): """ Show the dialog """ - # get or inject overlayer - self.overlay = ObjectStore().activity._overlayer - # FIXME: subwindows, are left to overlap this. This behaviour is - # undesirable. subwindows (i.e. child of top level windows) should be - # handled either by rendering over them, or by finding different way to - # draw the overlay. + if activity is None: + raise TypeError("Missing argument activity") + + # get overlayer + self.overlay = activity._overlayer - if not self.overlay: - self.overlay = ObjectStore().activity._overlayer if not self._bubble: x, y = self.position # TODO: tails are relative to tailpos. They should be relative to |