[Urwid] How do you use SimpleListWalker?
Ian Ward
ian at excess.org
Sat Jun 20 14:54:12 EDT 2009
This is just class inheritance. ThreadedMessageWalker is a ListWalker
you can use to store your conversation objects. If you pass it to a
ListBox, the ListBox will display the .widget members of your
conversation objects, instead of trying to use the conversation objects
themselves as a widgets.
Ian
Dominic LoBue wrote:
> A class within a class? How would I share the data from the parent
> class with the child class?
>
> Dominic
>
> On Jun 20, 2009, at 7:30, Ian Ward <ian at excess.org> wrote:
>
>> Corrected example below.
>>
>> Ian Ward wrote:
>>> What you describe should work, but I'm not a fan of mixing such
>>> different interfaces in the same class.
>>>
>>> I would use a slightly modified SimpleListWalker class for storing
>>> your
>>> list of conversations, and give each of your conversation objects a
>>> button object (or whatever widget you like) stored as ".widget"
>> class ThreadedMessageWalker(SimpleListWalker):
>>
>> def get_focus(self):
>> if len(self)==0: return None, None
>> return self[self.focus].widget, self.focus
>>
>> def get_next(self, start_from):
>> pos = start_from+1
>> if len(self) <= pos: return None, None
>> return self[pos].widget, pos
>>
>> def get_prev(self, start_from):
>> pos = start_from-1
>> if pos < 0: return None, None
>> return self[pos].widget, pos
>>
>>> This way your list updates automatically, and the ListBox only sees
>>> the
>>> widgets.
>>>
>>> Ian
>>
>> _______________________________________________
>> Urwid mailing list
>> Urwid at lists.excess.org
>> http://lists.excess.org/mailman/listinfo/urwid
>>
>
>
> _______________________________________________
> Urwid mailing list
> Urwid at lists.excess.org
> http://lists.excess.org/mailman/listinfo/urwid
>
More information about the Urwid
mailing list