diff options
author | Simon Poirier <simpoir@gmail.com> | 2009-10-28 06:15:15 (GMT) |
---|---|---|
committer | Simon Poirier <simpoir@gmail.com> | 2009-10-28 06:15:15 (GMT) |
commit | 53af01c95abe622c0490b43c12439a04aa449509 (patch) | |
tree | 6e7ca498415f8e20874c1eaf7b2c19458218eeb3 /addons | |
parent | d5e7b4d380dfa9b979071b862e67d29ec127c542 (diff) |
addon test extension to check interface contraints
Diffstat (limited to 'addons')
-rw-r--r-- | addons/bubblemessage.py | 36 | ||||
-rw-r--r-- | addons/clickaction.py | 5 | ||||
-rw-r--r-- | addons/dialogmessage.py | 1 | ||||
-rw-r--r-- | addons/disablewidget.py | 3 | ||||
-rw-r--r-- | addons/gtkwidgeteventfilter.py | 9 | ||||
-rw-r--r-- | addons/gtkwidgettypefilter.py | 19 | ||||
-rw-r--r-- | addons/oncewrapper.py | 13 | ||||
-rw-r--r-- | addons/timerevent.py | 1 | ||||
-rw-r--r-- | addons/triggereventfilter.py | 2 | ||||
-rw-r--r-- | addons/typetextaction.py | 2 | ||||
-rw-r--r-- | addons/widgetidentifyaction.py | 6 |
11 files changed, 43 insertions, 54 deletions
diff --git a/addons/bubblemessage.py b/addons/bubblemessage.py index 6572a6a..72ff340 100644 --- a/addons/bubblemessage.py +++ b/addons/bubblemessage.py @@ -43,33 +43,28 @@ class BubbleMessage(Action): self.tail_pos = tail_pos if message: self.message = message - - self.overlay = None - self._bubble = None - self._speaker = None def do(self): """ Show the dialog """ # get or inject overlayer - self.overlay = ObjectStore().activity._overlayer + 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 not self.overlay: - self.overlay = ObjectStore().activity._overlayer - if not self._bubble: + overlay = ObjectStore().activity._overlayer + if not hasattr(self, '_bubble'): x, y = self.position # TODO: tails are relative to tailpos. They should be relative to # the speaking widget. Same of the bubble position. self._bubble = overlayer.TextBubble(text=self.message, tailpos=self.tail_pos) self._bubble.show() - self.overlay.put(self._bubble, x, y) - self.overlay.queue_draw() + overlay.put(self._bubble, x, y) + overlay.queue_draw() def undo(self): """ @@ -84,27 +79,26 @@ class BubbleMessage(Action): Enters edit mode. The action should display itself in some way, without affecting the currently running application. """ - if not self.overlay: - self.overlay = ObjectStore().activity._overlayer + overlay = ObjectStore().activity._overlayer assert not self._drag, "bubble action set to editmode twice" x, y = self.position self._bubble = overlayer.TextBubble(text=self.message, tailpos=self.tail_pos) - self.overlay.put(self._bubble, x, y) + overlay.put(self._bubble, x, y) self._bubble.show() self._drag = DragWrapper(self._bubble, self.position, True) def exit_editmode(self, *args): - x,y = self._drag.position - self.position = (int(x), int(y)) - if self._drag: + overlay = ObjectStore().activity._overlayer + if hasattr(self, '_drag'): + x,y = self._drag.position + self.position = (int(x), int(y)) self._drag.draggable = False - self._drag = None - if self._bubble: - self.overlay.remove(self._bubble) - self._bubble = None - self.overlay = None + del self._drag + if hasattr(self, '_bubble'): + overlay.remove(self._bubble) + del self._bubble __action__ = { "name" : "BubbleMessage", diff --git a/addons/clickaction.py b/addons/clickaction.py index 88c5519..fef766e 100644 --- a/addons/clickaction.py +++ b/addons/clickaction.py @@ -25,9 +25,10 @@ class ClickAction(Action): @param widget The threehish representation of the widget """ widget = TStringProperty("") - def __init__(self, widget): + def __init__(self, widget=None): Action.__init__(self) - self.widget = widget + if widget: + self.widget = widget def do(self): """ diff --git a/addons/dialogmessage.py b/addons/dialogmessage.py index 9250693..263d00a 100644 --- a/addons/dialogmessage.py +++ b/addons/dialogmessage.py @@ -30,7 +30,6 @@ class DialogMessage(Action): @param position A list of the form [x, y] """ super(DialogMessage, self).__init__() - self._dialog = None if message: self.message = message diff --git a/addons/disablewidget.py b/addons/disablewidget.py index fd88303..8aad915 100644 --- a/addons/disablewidget.py +++ b/addons/disablewidget.py @@ -21,14 +21,13 @@ from ..services import ObjectStore class DisableWidgetAction(Action): target = TStringProperty("0") - def __init__(self, target): + def __init__(self, target=None): """Constructor @param target target treeish """ Action.__init__(self) if target is not None: self.target = target - self._widget = None def do(self): """Action do""" diff --git a/addons/gtkwidgeteventfilter.py b/addons/gtkwidgeteventfilter.py index 65aa744..126c822 100644 --- a/addons/gtkwidgeteventfilter.py +++ b/addons/gtkwidgeteventfilter.py @@ -30,11 +30,10 @@ class GtkWidgetEventFilter(EventFilter): @param event_name event to attach to """ super(GtkWidgetEventFilter,self).__init__() - self._callback = None - self.object_id = object_id - self.event_name = event_name - self._widget = None - self._handler_id = None + if object_id: + self.object_id = object_id + if event_name: + self.event_name = event_name def install_handlers(self, callback, **kwargs): """install handlers diff --git a/addons/gtkwidgettypefilter.py b/addons/gtkwidgettypefilter.py index 4ffecb5..67b1e27 100644 --- a/addons/gtkwidgettypefilter.py +++ b/addons/gtkwidgettypefilter.py @@ -30,7 +30,7 @@ class GtkWidgetTypeFilter(EventFilter): text = TStringProperty("") strokes = TArrayProperty([]) - def __init__(self, object_id, text=None, strokes=None): + def __init__(self, object_id=None, text=None, strokes=None): """Constructor @param next_state default EventFilter param, passed on to EventFilter @param object_id object tree-ish identifier @@ -40,19 +40,22 @@ class GtkWidgetTypeFilter(EventFilter): At least one of text or strokes must be supplied """ super(GtkWidgetTypeFilter, self).__init__() - self.object_id = object_id - self.text = text - self._captext = "" - self.strokes = strokes - self._capstrokes = [] - self._widget = None - self._handler_id = None + if object_id: + self.object_id = object_id + if text: + self.text = text + if strokes: + self.strokes = strokes def install_handlers(self, callback, **kwargs): """install handlers @param callback default EventFilter callback arg """ super(GtkWidgetTypeFilter, self).install_handlers(callback, **kwargs) + self._captext = "" + self._capstrokes = [] + self._widget = None + self._handler_id = None logger.debug("~~~GtkWidgetTypeFilter install") activity = ObjectStore().activity if activity is None: diff --git a/addons/oncewrapper.py b/addons/oncewrapper.py index 5db3b60..9f339a4 100644 --- a/addons/oncewrapper.py +++ b/addons/oncewrapper.py @@ -26,17 +26,16 @@ class OnceWrapper(Action): action = TAddonProperty() - def __init__(self, action): + def __init__(self, action=None): Action.__init__(self) - self._called = False - self._need_undo = False - self.action = action + if action: + self.action = action def do(self): """ Do the action only on the first time """ - if not self._called: + if not hasattr(self, '_called'): self._called = True self.action.do() self._need_undo = True @@ -45,9 +44,9 @@ class OnceWrapper(Action): """ Undo the action if it's been done """ - if self._need_undo: + if hasattr(self, '_need_undo'): self.action.undo() - self._need_undo = False + del self._need_undo __action__ = { diff --git a/addons/timerevent.py b/addons/timerevent.py index 752a865..ae2c51a 100644 --- a/addons/timerevent.py +++ b/addons/timerevent.py @@ -35,7 +35,6 @@ class TimerEvent(EventFilter): super(TimerEvent,self).__init__() if timeout: self.timeout = timeout - self._handler_id = None def install_handlers(self, callback, **kwargs): """install_handlers creates the timer and starts it""" diff --git a/addons/triggereventfilter.py b/addons/triggereventfilter.py index 19544b0..2d5932b 100644 --- a/addons/triggereventfilter.py +++ b/addons/triggereventfilter.py @@ -25,13 +25,13 @@ class TriggerEventFilter(EventFilter): """ def __init__(self): EventFilter.__init__(self) - self.toggle_on_callback = False def install_handlers(self, callback, **kwargs): """ Forsakes the incoming callback function and just set the inner one. """ self._callback = self._inner_cb + self.toggle_on_callback = False def _inner_cb(self, event_filter): self.toggle_on_callback = not self.toggle_on_callback diff --git a/addons/typetextaction.py b/addons/typetextaction.py index 8b746e6..3ec41dc 100644 --- a/addons/typetextaction.py +++ b/addons/typetextaction.py @@ -28,7 +28,7 @@ class TypeTextAction(Action): widget = TStringProperty("") text = TStringProperty("") - def __init__(self, widget, text): + def __init__(self, widget=None, text=""): Action.__init__(self) self.widget = widget diff --git a/addons/widgetidentifyaction.py b/addons/widgetidentifyaction.py index 3df244b..a546e2d 100644 --- a/addons/widgetidentifyaction.py +++ b/addons/widgetidentifyaction.py @@ -21,15 +21,11 @@ from ..editor import WidgetIdentifier class WidgetIdentifyAction(Action): def __init__(self): Action.__init__(self) - self.activity = None - self._dialog = None def do(self): os = ObjectStore() if os.activity: - self.activity = os.activity - - self._dialog = WidgetIdentifier(self.activity) + self._dialog = WidgetIdentifier(os.activity) self._dialog.show() |