From 15dea2f3e82d535f58ddc0527e9ddb41a57f2a48 Mon Sep 17 00:00:00 2001 From: mathieui Date: Sun, 14 Oct 2012 19:22:52 +0200 Subject: Also add the decorators module --- src/decorators.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/decorators.py (limited to 'src/decorators.py') diff --git a/src/decorators.py b/src/decorators.py new file mode 100644 index 00000000..6eaac018 --- /dev/null +++ b/src/decorators.py @@ -0,0 +1,46 @@ +""" +Module containing the decorators +""" + +class RefreshWrapper(object): + def __init__(self): + self.core = None + + def conditional(self, func): + """ + Decorator to refresh the UI if the wrapped function + returns True + """ + def wrap(*args, **kwargs): + ret = func(*args, **kwargs) + if self.core and ret: + self.core.refresh_window() + self.core.doupdate() + return ret + return wrap + + def always(self, func): + """ + Decorator that refreshs the UI no matter what after the function + """ + def wrap(*args, **kwargs): + ret = func(*args, **kwargs) + if self.core: + self.core.refresh_window() + self.core.doupdate() + return ret + return wrap + + def update(self, funct): + """ + Decorator that only updates the screen + """ + def wrap(*args, **kwargs): + ret = func(*args, **kwargs) + if self.core: + self.core.doupdate() + return ret + return wrap + + +refresh_wrapper = RefreshWrapper() -- cgit v1.2.3