summaryrefslogtreecommitdiff
path: root/docs/tutorial
diff options
context:
space:
mode:
authorIan Ward <ian@excess.org>2012-09-09 22:51:38 -0400
committerIan Ward <ian@excess.org>2012-09-09 22:51:38 -0400
commitdff9ebcdcbc511f5e0eb1e6419ddcb498c37baf3 (patch)
tree38b4d3beef2f96b4d7d29f08c0610576ed152c71 /docs/tutorial
parentea9bd8d4099a95dfd74ef99a6db58ab3f97d947e (diff)
downloadurwid-dff9ebcdcbc511f5e0eb1e6419ddcb498c37baf3.tar.gz
tutorial: update some examples (descriptions to follow)
--HG-- branch : feature-sphinx
Diffstat (limited to 'docs/tutorial')
-rw-r--r--docs/tutorial/edit.py26
-rw-r--r--docs/tutorial/edit.py.xdotool2
-rw-r--r--docs/tutorial/edit3.pngbin612 -> 668 bytes
-rw-r--r--docs/tutorial/frlb.py5
-rw-r--r--docs/tutorial/index.rst1
-rw-r--r--docs/tutorial/lbcont.py45
-rw-r--r--docs/tutorial/lbcont.py.xdotool3
-rw-r--r--docs/tutorial/lbcont1.pngbin526 -> 503 bytes
-rw-r--r--docs/tutorial/lbcont2.pngbin908 -> 832 bytes
-rw-r--r--docs/tutorial/lbcont3.pngbin1035 -> 1056 bytes
-rw-r--r--docs/tutorial/lbscr1.pngbin747 -> 627 bytes
11 files changed, 46 insertions, 36 deletions
diff --git a/docs/tutorial/edit.py b/docs/tutorial/edit.py
index 8b32c4d..41842e3 100644
--- a/docs/tutorial/edit.py
+++ b/docs/tutorial/edit.py
@@ -1,16 +1,20 @@
import urwid
-def do_reply(key):
- if key != 'enter':
- return
- if fill.body == ask:
- fill.body = urwid.Text(u"Nice to meet you,\n" +
- ask.edit_text + ".")
- return True
- else:
+def exit_on_q(key):
+ if key in ('q', 'Q'):
raise urwid.ExitMainLoop()
-ask = urwid.Edit(u"What is your name?\n")
-fill = urwid.Filler(ask)
-loop = urwid.MainLoop(fill, unhandled_input=do_reply)
+class Question(urwid.Edit):
+ def __init__(self):
+ super(Question, self).__init__(u"What is your name?\n")
+
+ def keypress(self, size, key):
+ key = super(Question, self).keypress(size, key)
+ if key != 'enter':
+ return key
+ fill.body = urwid.Text(u"Nice to meet you,\n" + self.edit_text +
+ u".\n\nPress Q to exit.")
+
+fill = urwid.Filler(Question())
+loop = urwid.MainLoop(fill, unhandled_input=exit_on_q)
loop.run()
diff --git a/docs/tutorial/edit.py.xdotool b/docs/tutorial/edit.py.xdotool
index af7d3f2..484847b 100644
--- a/docs/tutorial/edit.py.xdotool
+++ b/docs/tutorial/edit.py.xdotool
@@ -1,3 +1,3 @@
windowsize --usehints $RXVTWINDOWID 21 7
type --window $RXVTWINDOWID 'Arthur, King of the Britons'
-key --window $RXVTWINDOWID Return
+key --window $RXVTWINDOWID 'Q'
diff --git a/docs/tutorial/edit3.png b/docs/tutorial/edit3.png
index 10ff428..152c3c1 100644
--- a/docs/tutorial/edit3.png
+++ b/docs/tutorial/edit3.png
Binary files differ
diff --git a/docs/tutorial/frlb.py b/docs/tutorial/frlb.py
index df4a289..6b3a332 100644
--- a/docs/tutorial/frlb.py
+++ b/docs/tutorial/frlb.py
@@ -12,9 +12,8 @@ def on_ask_change(edit, new_edit_text):
palette = [('I say', 'default,bold', 'default', 'bold'),]
ask = urwid.Edit(('I say', u"What is your name?\n"))
reply = urwid.Text(u"")
-content = urwid.SimpleListWalker([ask, reply])
-listbox = urwid.ListBox(content)
-
+listbox = urwid.ListBox(urwid.SimpleFocusListWalker([ask, reply]))
urwid.connect_signal(ask, 'change', on_ask_change)
+
loop = urwid.MainLoop(listbox, palette, unhandled_input=exit_on_cr)
loop.run()
diff --git a/docs/tutorial/index.rst b/docs/tutorial/index.rst
index 379fe9d..533dadd 100644
--- a/docs/tutorial/index.rst
+++ b/docs/tutorial/index.rst
@@ -297,6 +297,7 @@ default decorations
Adventure Game in Menus
-----------------------
+.. literalinclude:: menu4.py
diff --git a/docs/tutorial/lbcont.py b/docs/tutorial/lbcont.py
index f5e7ab2..f71d5bb 100644
--- a/docs/tutorial/lbcont.py
+++ b/docs/tutorial/lbcont.py
@@ -1,28 +1,33 @@
import urwid
-def new_question():
- return urwid.Edit(('I say', u"What is your name?\n"))
+class Question(urwid.Edit):
+ def __init__(self):
+ super(Question, self).__init__(('I say', u"What is your name?\n"))
-def new_answer(name):
+ def keypress(self, size, key):
+ key = super(Question, self).keypress(size, key)
+ if key == 'enter' and not self.edit_text:
+ raise urwid.ExitMainLoop()
+ return key
+
+def answer(name):
return urwid.Text(('I say', u"Nice to meet you, " + name + "\n"))
-def update_on_cr(key):
- if key != 'enter':
- return
- focus_widget, position = listbox.get_focus()
- if not hasattr(focus_widget, 'edit_text'):
- return
- if not focus_widget.edit_text:
- raise urwid.ExitMainLoop()
- content[position + 1:position + 2] = [
- new_answer(focus_widget.edit_text)]
- if not content[position + 2:position + 3]:
- content.append(new_question())
- listbox.set_focus(position + 2)
- return True
+class ConversationListBox(urwid.ListBox):
+ def __init__(self):
+ super(ConversationListBox, self).__init__(
+ urwid.SimpleFocusListWalker([Question()]))
+
+ def keypress(self, size, key):
+ key = super(ConversationListBox, self).keypress(size, key)
+ if key != 'enter' or not hasattr(self.focus, 'edit_text'):
+ return key
+ # replace or add response below
+ pos = self.focus_position
+ self.body[pos + 1:pos + 2] = [answer(self.focus.edit_text)]
+ if not self.body[pos + 2:pos + 3]: self.body.append(Question())
+ self.set_focus(pos + 2)
palette = [('I say', 'default,bold', 'default', 'bold'),]
-content = urwid.SimpleListWalker([new_question()])
-listbox = urwid.ListBox(content)
-loop = urwid.MainLoop(listbox, palette, unhandled_input=update_on_cr)
+loop = urwid.MainLoop(ConversationListBox(), palette)
loop.run()
diff --git a/docs/tutorial/lbcont.py.xdotool b/docs/tutorial/lbcont.py.xdotool
index f87a990..8abae5b 100644
--- a/docs/tutorial/lbcont.py.xdotool
+++ b/docs/tutorial/lbcont.py.xdotool
@@ -1,3 +1,4 @@
-windowsize --usehints $RXVTWINDOWID 23 13 key --window $RXVTWINDOWID A b e Return B o b
+windowsize --usehints $RXVTWINDOWID 23 13
+key --window $RXVTWINDOWID A b e Return B o b
key --window $RXVTWINDOWID Return C a r l Return
key --window $RXVTWINDOWID D a v e Return
diff --git a/docs/tutorial/lbcont1.png b/docs/tutorial/lbcont1.png
index feb9377..c986f44 100644
--- a/docs/tutorial/lbcont1.png
+++ b/docs/tutorial/lbcont1.png
Binary files differ
diff --git a/docs/tutorial/lbcont2.png b/docs/tutorial/lbcont2.png
index ab4f70a..ae8f745 100644
--- a/docs/tutorial/lbcont2.png
+++ b/docs/tutorial/lbcont2.png
Binary files differ
diff --git a/docs/tutorial/lbcont3.png b/docs/tutorial/lbcont3.png
index de28724..31ee89a 100644
--- a/docs/tutorial/lbcont3.png
+++ b/docs/tutorial/lbcont3.png
Binary files differ
diff --git a/docs/tutorial/lbscr1.png b/docs/tutorial/lbscr1.png
index 79db363..a938a66 100644
--- a/docs/tutorial/lbscr1.png
+++ b/docs/tutorial/lbscr1.png
Binary files differ