From b63f38d654814d6be7a56ee7c8c6c6567755e0b4 Mon Sep 17 00:00:00 2001 From: troido Date: Sat, 30 Dec 2017 01:35:41 +0100 Subject: tried a new approach to remove code duplication in display --- asciifarm/client/display/widget.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 asciifarm/client/display/widget.py (limited to 'asciifarm/client/display/widget.py') diff --git a/asciifarm/client/display/widget.py b/asciifarm/client/display/widget.py new file mode 100644 index 0000000..ef28d50 --- /dev/null +++ b/asciifarm/client/display/widget.py @@ -0,0 +1,30 @@ + + + +class Widget: + + + def __init__(self, impl): + self.impl = impl + self.impl.setWidget(self) + + self.win = None + self.changed = False + + def setWin(self, win): + self.win = win + + def getWin(self): + return self.win + + def getImpl(self): + return self.impl + + def change(self): + self.changed = True + + def update(self, force=False): + if not (force or self.changed) or not self.win: + return + self.impl.update() + self.changed = False -- cgit