
commit 9ffda70c2203630b41a9f799e754f7f55e70e9b9 Author: Damian Johnson <atagar@torproject.org> Date: Thu Jun 23 08:51:20 2011 -0700 Format option for getstr method Allowing string input fetching to have text attributes. --- src/util/panel.py | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/util/panel.py b/src/util/panel.py index 3f0a98a..5cbeaee 100644 --- a/src/util/panel.py +++ b/src/util/panel.py @@ -573,7 +573,7 @@ class Panel(): baseMsg = "Unclosed formatting tag%s:" % ("s" if len(expectedCloseTags) > 1 else "") raise ValueError("%s: '%s'\n \"%s\"" % (baseMsg, "', '".join(expectedCloseTags), msg)) - def getstr(self, y, x, initialText = ""): + def getstr(self, y, x, initialText = "", format = None): """ Provides a text field where the user can input a string, blocking until they've done so and returning the result. If the user presses escape then @@ -584,8 +584,11 @@ class Panel(): y - vertical location x - horizontal location initialText - starting text in this field + format - format used for the text """ + if not format: format = curses.A_NORMAL + # makes cursor visible try: previousCursorState = curses.curs_set(1) except curses.error: previousCursorState = 0 @@ -595,7 +598,8 @@ class Panel(): inputSubwindow = self.parent.subwin(1, displayWidth - x, self.top + y, self.left + x) # prepopulates the initial text - if initialText: inputSubwindow.addstr(0, 0, initialText[:displayWidth - x - 1]) + if initialText: + inputSubwindow.addstr(0, 0, initialText[:displayWidth - x - 1], format) # Displays the text field, blocking until the user's done. This closes the # text panel and returns userInput to the initial text if the user presses @@ -609,7 +613,9 @@ class Panel(): else: textbox = curses.textpad.Textbox(inputSubwindow) + textbox.win.attron(format) userInput = textbox.edit(lambda key: _textboxValidate(textbox, key)).strip() + textbox.win.attroff(format) if textbox.lastcmd == curses.ascii.BEL: userInput = None # reverts visability settings