4376: A different Edit Person dialog

svn: r16196
This commit is contained in:
Benny Malengier
2010-11-16 20:12:26 +00:00
parent a581b61cfd
commit 864b3b6ef7
4 changed files with 394 additions and 376 deletions

View File

@@ -21,7 +21,8 @@
# $Id$
__all__ = ["MonitoredCheckbox", "MonitoredEntry", "MonitoredSpinButton",
__all__ = ["MonitoredCheckbox", "MonitoredEntry",
"MonitoredEntryIndicator", "MonitoredSpinButton",
"MonitoredText", "MonitoredType", "MonitoredDataType",
"MonitoredMenu", "MonitoredStrMenu", "MonitoredDate",
"MonitoredComboSelectedEntry", "MonitoredTagList"]
@@ -148,6 +149,49 @@ class MonitoredEntry(object):
if self.get_val() is not None:
self.obj.set_text(self.get_val())
#-------------------------------------------------------------------------
#
# MonitoredEntryIndicator class
#
#-------------------------------------------------------------------------
class MonitoredEntryIndicator(MonitoredEntry):
"""
Show an Entry box with an indicator in it that disappears when
entry becomes active
"""
def __init__(self, obj, set_val, get_val, indicator, read_only=False,
autolist=None, changed=None):
MonitoredEntry.__init__(self, obj, set_val, get_val, read_only,
autolist, changed)
if get_val():
self.indicatorshown = False
else:
self.indicatorshown = True
self.indicator = indicator
self.obj.set_text(indicator)
self.obj.modify_text(gtk.STATE_NORMAL,
gtk.gdk.color_parse('grey'))
self.obj.modify_font(pango.FontDescription('sans italic'))
self.fockey = self.obj.connect('focus-in-event',
self._obj_focus)
def _on_change(self, obj):
if not self.indicatorshown:
self.set_val(unicode(obj.get_text()))
if self.changed:
self.changed(obj)
def _obj_focus(self, widg, eve):
"""
callback for when prefix obtains focus
"""
self.set_text('')
self.obj.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse('black'))
self.obj.modify_font(pango.FontDescription('normal'))
self.obj.disconnect(self.fockey)
self.indicatorshown = False
return False
#-------------------------------------------------------------------------
#
# MonitoredSpinButton class