summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorian <none@none>2007-02-23 20:23:29 +0000
committerian <none@none>2007-02-23 20:23:29 +0000
commitede5924b7b4ff08838bee2d89dbfe41875b03c99 (patch)
tree115bb0c2df9c6da7a4dfb292762b79c1b6da5481
parent59189921aa30a0a05538da816dedb6f4d565ae5b (diff)
downloadurwid-ede5924b7b4ff08838bee2d89dbfe41875b03c99.tar.gz
detect Pile changes
--HG-- extra : convert_revision : c97811113af155d6b2a7c7b1e79159bcb2e7cc51
-rw-r--r--source/str_util.c2
-rw-r--r--urwid/listbox.py12
-rwxr-xr-xurwid/widget.py5
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