diff options
author | ian <none@none> | 2007-02-23 20:23:29 +0000 |
---|---|---|
committer | ian <none@none> | 2007-02-23 20:23:29 +0000 |
commit | ede5924b7b4ff08838bee2d89dbfe41875b03c99 (patch) | |
tree | 115bb0c2df9c6da7a4dfb292762b79c1b6da5481 | |
parent | 59189921aa30a0a05538da816dedb6f4d565ae5b (diff) | |
download | urwid-ede5924b7b4ff08838bee2d89dbfe41875b03c99.tar.gz |
detect Pile changes
--HG--
extra : convert_revision : c97811113af155d6b2a7c7b1e79159bcb2e7cc51
-rw-r--r-- | source/str_util.c | 2 | ||||
-rw-r--r-- | urwid/listbox.py | 12 | ||||
-rwxr-xr-x | urwid/widget.py | 5 |
3 files changed, 15 insertions, 4 deletions
diff --git a/source/str_util.c b/source/str_util.c index 91e975e..4203808 100644 --- a/source/str_util.c +++ b/source/str_util.c @@ -170,7 +170,7 @@ static PyObject * get_width(PyObject *self, PyObject *args) //====================================================================== static char decode_one_doc[] = -"decode_one(string text, int pos) -> (int ord, int nextpos)\n\n\ +"decode_one(string text, int pos) -> (int ord, int nextpos)\n\n\ Return (ordinal at pos, next position) for UTF-8 encoded text.\n\n\ text -- string text\n\ pos -- position in text"; diff --git a/urwid/listbox.py b/urwid/listbox.py index d7521ba..316096c 100644 --- a/urwid/listbox.py +++ b/urwid/listbox.py @@ -34,7 +34,7 @@ class ListWalker(object): def _modified(self): Signals.emit(self, "modified") - + class SimpleListWalker(ListDetectModifications, ListWalker): def __init__(self, contents): @@ -52,6 +52,16 @@ class SimpleListWalker(ListDetectModifications, ListWalker): self.focus = len(self)-1 super(SimpleListWalker, self)._modified() + def set_modified_callback(self, callback): + """ + This function inherited from ListDetectModifications is not + implemented in SimleListWalker. + + Use Signals.connect(list_walker, "modified", ...) instead. + """ + raise NotImplementedError('Use Signals.connect(' + 'list_walker, "modified", ...) instead.') + def get_focus(self): """Return (focus widget, focus position).""" if len(self) == 0: return None, None diff --git a/urwid/widget.py b/urwid/widget.py index 207665e..50627bd 100755 --- a/urwid/widget.py +++ b/urwid/widget.py @@ -2076,7 +2076,7 @@ class Pile(Widget): # either FlowWidget or BoxWidget one 'weight' tuple in widget_list. """ self.__super.__init__() - self.widget_list = widget_list + self.widget_list = ListDetectModifications(widget_list) self.item_types = [] for i in range(len(widget_list)): w = widget_list[i] @@ -2092,7 +2092,8 @@ class Pile(Widget): # either FlowWidget or BoxWidget self.item_types.append((f,height)) else: raise PileError, "widget list item invalid %s" % `w` - + self.widget_list.set_modified_callback(self.invalidate) + self.set_focus(focus_item) self.pref_col = None |