Changeset 84:40b2d74e74f4 for src/mlx/gui/common.py
- Timestamp:
- 04/15/12 11:03:59 (12 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mlx/gui/common.py
r76 r84 78 78 79 79 #------------------------------------------------------------------------------ 80 81 class IntegerEntry(gtk.Entry): 82 """An entry that allows only either an empty value, or an integer.""" 83 def __init__(self, defaultValue = None): 84 """Construct the entry.""" 85 gtk.Entry.__init__(self) 86 87 self._defaultValue = defaultValue 88 self._currentInteger = defaultValue 89 self._selfSetting = False 90 self._set_text() 91 92 self.connect("changed", self._handle_changed) 93 94 def get_int(self): 95 """Get the integer.""" 96 return self._currentInteger 97 98 def set_int(self, value): 99 """Set the integer.""" 100 if value!=self._currentInteger: 101 self._currentInteger = value 102 self.emit("integer-changed", self._currentInteger) 103 self._set_text() 104 105 def _handle_changed(self, widget): 106 """Handle the changed signal.""" 107 if self._selfSetting: 108 return 109 text = self.get_text() 110 if text=="": 111 self.set_int(self._defaultValue) 112 else: 113 try: 114 self.set_int(int(text)) 115 except: 116 self._set_text() 117 118 def _set_text(self): 119 """Set the text value from the current integer.""" 120 self._selfSetting = True 121 self.set_text("" if self._currentInteger is None 122 else str(self._currentInteger)) 123 self._selfSetting = False 124 125 #------------------------------------------------------------------------------ 126 127 gobject.signal_new("integer-changed", IntegerEntry, gobject.SIGNAL_RUN_FIRST, 128 None, (object,)) 129 130 #------------------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.