From 47f2199cde5ad2b44b55174ac04cd4d7c95646ee Mon Sep 17 00:00:00 2001 From: Ian Ward Date: Fri, 19 Oct 2012 22:57:43 -0400 Subject: tutorial: make example file names match names in tutorial --HG-- rename : docs/tutorial/menu4.py => docs/tutorial/adventure.py rename : docs/tutorial/menu4.py.xdotool => docs/tutorial/adventure.py.xdotool rename : docs/tutorial/menu41.png => docs/tutorial/adventure1.png rename : docs/tutorial/menu42.png => docs/tutorial/adventure2.png rename : docs/tutorial/menu43.png => docs/tutorial/adventure3.png rename : docs/tutorial/menu44.png => docs/tutorial/adventure4.png rename : docs/tutorial/menu2.py => docs/tutorial/cmenu.py rename : docs/tutorial/menu2.py.xdotool => docs/tutorial/cmenu.py.xdotool rename : docs/tutorial/menu21.png => docs/tutorial/cmenu1.png rename : docs/tutorial/menu22.png => docs/tutorial/cmenu2.png rename : docs/tutorial/menu23.png => docs/tutorial/cmenu3.png rename : docs/tutorial/menu24.png => docs/tutorial/cmenu4.png rename : docs/tutorial/menu3.py => docs/tutorial/hmenu.py rename : docs/tutorial/menu3.py.xdotool => docs/tutorial/hmenu.py.xdotool rename : docs/tutorial/menu31.png => docs/tutorial/hmenu1.png rename : docs/tutorial/menu32.png => docs/tutorial/hmenu2.png rename : docs/tutorial/menu33.png => docs/tutorial/hmenu3.png rename : docs/tutorial/menu34.png => docs/tutorial/hmenu4.png rename : docs/tutorial/lbcont.py => docs/tutorial/multiple.py rename : docs/tutorial/lbcont.py.xdotool => docs/tutorial/multiple.py.xdotool rename : docs/tutorial/lbcont1.png => docs/tutorial/multiple1.png rename : docs/tutorial/lbcont2.png => docs/tutorial/multiple2.png rename : docs/tutorial/lbcont3.png => docs/tutorial/multiple3.png rename : docs/tutorial/lbcont4.png => docs/tutorial/multiple4.png rename : docs/tutorial/edit.py => docs/tutorial/qa.py rename : docs/tutorial/edit.py.xdotool => docs/tutorial/qa.py.xdotool rename : docs/tutorial/edit1.png => docs/tutorial/qa1.png rename : docs/tutorial/edit2.png => docs/tutorial/qa2.png rename : docs/tutorial/edit3.png => docs/tutorial/qa3.png rename : docs/tutorial/frlb.py => docs/tutorial/sig.py rename : docs/tutorial/frlb.py.xdotool => docs/tutorial/sig.py.xdotool rename : docs/tutorial/frlb1.png => docs/tutorial/sig1.png rename : docs/tutorial/frlb2.png => docs/tutorial/sig2.png rename : docs/tutorial/frlb3.png => docs/tutorial/sig3.png rename : docs/tutorial/frlb4.png => docs/tutorial/sig4.png rename : docs/tutorial/menu1.py => docs/tutorial/smenu.py rename : docs/tutorial/menu1.py.xdotool => docs/tutorial/smenu.py.xdotool rename : docs/tutorial/menu11.png => docs/tutorial/smenu1.png rename : docs/tutorial/menu12.png => docs/tutorial/smenu2.png rename : docs/tutorial/menu13.png => docs/tutorial/smenu3.png --- docs/tutorial/multiple.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 docs/tutorial/multiple.py (limited to 'docs/tutorial/multiple.py') diff --git a/docs/tutorial/multiple.py b/docs/tutorial/multiple.py new file mode 100644 index 0000000..b2bc8a4 --- /dev/null +++ b/docs/tutorial/multiple.py @@ -0,0 +1,29 @@ +import urwid + +def question(): + return urwid.Pile([urwid.Edit(('I say', u"What is your name?\n"))]) + +def answer(name): + return urwid.Text(('I say', u"Nice to meet you, " + name + "\n")) + +class ConversationListBox(urwid.ListBox): + def __init__(self): + body = urwid.SimpleFocusListWalker([question()]) + super(ConversationListBox, self).__init__(body) + + def keypress(self, size, key): + key = super(ConversationListBox, self).keypress(size, key) + if key != 'enter': + return key + name = self.focus[0].edit_text + if not name: + raise urwid.ExitMainLoop() + # replace or add response + self.focus.contents[1:] = [(answer(name), self.focus.options())] + pos = self.focus_position + # add a new question + self.body.insert(pos + 1, question()) + self.focus_position = pos + 1 + +palette = [('I say', 'default,bold', 'default'),] +urwid.MainLoop(ConversationListBox(), palette).run() -- cgit v1.2.1