diff options
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 |