-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi,
I've hacked together a patch for the Edit widget to allow masking of the rendered text, e.g. for password fields. Cheers, Nik -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQJJBAEBAgAzBQJND1GlLBpodHRwOi8vd3d3Lm5hdHVyYWxuaWsuZGUvZ3BnLXBv bGljeS50eHQuYXNjAAoJEOl28jJzc23tKTUP/AlUmXaFhWrgMra39WD/Vz7c0frC VLfDvavn6Qk7eW03EBWJce/7JALMhYOU9KFTmw7ReBDub5Bfn4AvwkGwhgy81mOS BKlIO0gbuLnbonBZHrG0B/kX9AcObNARHqm7aDPo0c3xRrc3JSl5YdoTsCc37YdF 5kViNo5HktQegnN73/IX9v28758T7K94+jDhD4aV+kMGMNZBjJ578rZf+NkKey+K bYwjOrsQx73Dxm+o2OcFkiSLIQ50BuZyshpFeNi/0I+kCIxtVHuGmL0duupnDElT aWX1rtkVAfBGLsIpFwd1ze3QMtcQpse/DhqtvCCjdo/Mi9dsudYe5jhMrbL468xR wO9hx1VGTogpwnoIE8XmQzYBAi2Wp3UhK45EyBlD/sIDcFZfVJNROpt/GTOfT9sX 8jw1L3d6+YE9Zmfhj/g6uLYwwtF5fbNtHaDSsWZuEEkRUEnzLfrMFh2mcEDC/4Cx EI7iyJOKGV+pVq02fJ3fuX1UhiNWZnxwH8/op1lNSssHwEdzByJPWHcFsFCytjvo R/xz6+35H85N25YEB4L5A2OQqQW3fSdSUB0wkF5LyJ6B1sM+dtWXXc4mnJnGHl25 yvLxpkHHAe0tD8dpWb7K44AwUy8L5fGOIMAh3hnuCOAs1PRr3af6Z4sE1agZk0L3 7WpZoD2Jl1YLNTRM =JF7M -----END PGP SIGNATURE-----
>From f4b5a46b05c976d5fef84da7ae978332ad23041d Mon Sep 17 00:00:00 2001 From: Dominik George <n...@portux.(none)> Date: Mon, 20 Dec 2010 01:43:01 +0100 Subject: [PATCH] Added masking to Edit widget. Signed-off-by: Dominik George <[email protected]> --- urwid/widget.py | 20 +++++++++++++++++--- 1 files changed, 17 insertions(+), 3 deletions(-) diff --git a/urwid/widget.py b/urwid/widget.py index 04dd1dc..742ce56 100644 --- a/urwid/widget.py +++ b/urwid/widget.py @@ -715,7 +715,7 @@ class Edit(Text): def __init__(self, caption="", edit_text="", multiline=False, align=LEFT, wrap=SPACE, allow_tab=False, - edit_pos=None, layout=None): + edit_pos=None, layout=None, mask=""): """ caption -- markup for caption preceeding edit_text edit_text -- text string for editing @@ -725,6 +725,7 @@ class Edit(Text): allow_tab -- True: 'tab' inserts 1-8 spaces False: return it edit_pos -- initial position for cursor, None:at end layout -- layout object + mask -- character to mask away text with, empty means no masking >>> Edit() <Edit selectable flow widget '' edit_pos=0> @@ -745,6 +746,7 @@ class Edit(Text): if edit_pos is None: edit_pos = len(edit_text) self.set_edit_pos(edit_pos) + self.set_mask(mask) self._shift_view_to_cursor = False def _repr_words(self): @@ -762,7 +764,7 @@ class Edit(Text): """ Returns (text, attributes). - text -- complete text of caption and edit_text + text -- complete text of caption and edit_text, maybe masked away attributes -- run length encoded attributes for text >>> Edit("What? ","oh, nothing.").get_text() @@ -770,7 +772,11 @@ class Edit(Text): >>> Edit(('bright',"u...@host:~$ "),"ls").get_text() ('u...@host:~$ ls', [('bright', 13)]) """ - return self._caption + self._edit_text, self._attrib + + if self._mask == "": + return self._caption + self._edit_text, self._attrib + else: + return self._caption + (self._mask * len(self._edit_text)), self._attrib def set_text(self, markup): """ @@ -892,6 +898,14 @@ class Edit(Text): self._invalidate() edit_pos = property(lambda self:self._edit_pos, set_edit_pos) + + def set_mask(self, mask): + """ + Set the character for masking text away. Empty means no masking. + """ + + self._mask = mask + self._invalidate() def set_edit_text(self, text): """ -- 1.7.1
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQJJBAABAgAzBQJND1GrLBpodHRwOi8vd3d3Lm5hdHVyYWxuaWsuZGUvZ3BnLXBv bGljeS50eHQuYXNjAAoJEOl28jJzc23t4hIP/ijSrY9DZ5cm9lLEHMIpO6BugidR 1lErYFerKcjaqBO3F85jf6ZuJ5ueoL2L92IKN7+qXvBkjKHgqJv7dp0vHcBZKKoC 4sIpkmz5xQMZ5Sf6/KiBts47naPedsJ1go569DC+d9gStj6rDZZ8yswCeE6bAI/a 6OF980N/YAboGt+FSABhhj8oAao9SzrE1Yh1uFkgrgW4zsm0bYlSLMGXOmF1OpKR fdEhD76VPH2Oy73FgIhXjIddpMObhPT8S3cHH70fH2SZCSbaNYB9xJbARU8NG84M 8nSXKXS7dutDuXB75w6nXijRw+h3eZ4DQvh/am5c5RFU3KkFdHOsX/hRkscZUUF6 id7Fjlwy7+TaTTVSN0LsjNKi0nU710MTODw/Uipgs0+h4dV0kGWemYMYRhkTRc5U eRgCV3ggK0apxzrGyBRHkTCZqWoXm4/8lMJ+Mm3Df+g6p/ZtO4D34+MfSv7RHk0X ihr1bYgDMYzaHd+8frYLyhQmR8NPnnqh1iSbUae5Rg4uWuqghPRlg1uWMxxaLPMF 94XInq/1h/KXrMIvQBRVihq75GoLz7qu7CYfJZGFKg8Gjp0kG3RlS9mq/Q5y1d1u OuzdZ91lFihOFvLhHJ5vQ/N+F5AQiXkZe9L2adHJa8wymUUS46o+8bPLd4ziNmKQ gwDKS1CiCiFAOfuA =lkQS -----END PGP SIGNATURE-----
_______________________________________________ Urwid mailing list [email protected] http://lists.excess.org/mailman/listinfo/urwid
