diff options
author | Cielo <cielosplayground@gmail.com> | 2023-03-28 13:19:42 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-28 19:19:42 +0200 |
commit | 55b6a920553562c614b56541312ada053341e5cc (patch) | |
tree | 40e1107cea6e3400fb06df7163dc99cfd27345d8 | |
parent | 2c0c0eb2b1026327ce9ade776ae03f3821ea1579 (diff) | |
download | urwid-55b6a920553562c614b56541312ada053341e5cc.tar.gz |
Allow to pass parameters when open pop_up (#480)
-rw-r--r-- | .DS_Store | bin | 0 -> 6148 bytes | |||
-rwxr-xr-x | urwid/wimp.py | 12 |
2 files changed, 6 insertions, 6 deletions
diff --git a/.DS_Store b/.DS_Store Binary files differnew file mode 100644 index 0000000..c2bb113 --- /dev/null +++ b/.DS_Store diff --git a/urwid/wimp.py b/urwid/wimp.py index 3dfbf39..e7ac9c9 100755 --- a/urwid/wimp.py +++ b/urwid/wimp.py @@ -567,12 +567,12 @@ class Button(WidgetWrap): class PopUpLauncher(delegate_to_widget_mixin('_original_widget'), - WidgetDecoration): + WidgetDecoration): def __init__(self, original_widget): self.__super.__init__(original_widget) self._pop_up_widget = None - def create_pop_up(self): + def create_pop_up(self, *args, **kwargs): """ Subclass must override this method and return a widget to be used for the pop-up. This method is called once each time @@ -580,7 +580,7 @@ class PopUpLauncher(delegate_to_widget_mixin('_original_widget'), """ raise NotImplementedError("Subclass must override this method") - def get_pop_up_parameters(self): + def get_pop_up_parameters(self, *args, **kwargs): """ Subclass must override this method and have it return a dict, eg: @@ -590,8 +590,8 @@ class PopUpLauncher(delegate_to_widget_mixin('_original_widget'), """ raise NotImplementedError("Subclass must override this method") - def open_pop_up(self): - self._pop_up_widget = self.create_pop_up() + def open_pop_up(self, *args, **kwargs): + self._pop_up_widget = self.create_pop_up(*args, **kwargs) self._invalidate() def close_pop_up(self): @@ -602,7 +602,7 @@ class PopUpLauncher(delegate_to_widget_mixin('_original_widget'), canv = self.__super.render(size, focus) if self._pop_up_widget: canv = CompositeCanvas(canv) - canv.set_pop_up(self._pop_up_widget, **self.get_pop_up_parameters()) + canv.set_pop_up(self._pop_up_widget, **self.get_pop_up_parameters(size, focus)) return canv |