Author: johannes Date: 2005-04-28 03:17:46 -0500 (Thu, 28 Apr 2005) New Revision: 7494
Modified: trunk/gnue-forms/src/uidrivers/curses/UIdriver.py trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py trunk/gnue-forms/src/uidrivers/curses/widgets/form.py trunk/gnue-forms/src/uidrivers/curses/widgets/page.py Log: Really fixed issues with field length Modified: trunk/gnue-forms/src/uidrivers/curses/UIdriver.py =================================================================== --- trunk/gnue-forms/src/uidrivers/curses/UIdriver.py 2005-04-27 13:39:10 UTC (rev 7493) +++ trunk/gnue-forms/src/uidrivers/curses/UIdriver.py 2005-04-28 08:17:46 UTC (rev 7494) @@ -111,6 +111,7 @@ self.registerEventListeners ({'can' + name: self.__canEvent, 'cannot' + name: self.__cannotEvent}) + # --------------------------------------------------------------------------- # Activate the given form # --------------------------------------------------------------------------- @@ -139,7 +140,8 @@ curses.KEY_SIC: (curses.KEY_IC, True, False, False), curses.KEY_SDC: (curses.KEY_DC, True, False, False), curses.KEY_SHOME: (curses.KEY_HOME, True, False, False), - curses.KEY_SEND: (curses.KEY_END, True, False, False) + curses.KEY_SEND: (curses.KEY_END, True, False, False), + curses.KEY_BTAB: (9 , True, False, False) } # --------------------------------------------------------------------------- @@ -293,6 +295,10 @@ def _showException (self, group, name, message, detail): + # Give us a chance to debug exceptions until we have a 'good' exception + # dialog + gDebug (2, "MESSAGE: %s" % message) + gDebug (2, "Detail : %s" % detail) self.showMessage (message, kind = 'Error') # --------------------------------------------------------------------------- Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py =================================================================== --- trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py 2005-04-27 13:39:10 UTC (rev 7493) +++ trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py 2005-04-28 08:17:46 UTC (rev 7494) @@ -45,9 +45,10 @@ else: self.__length = None - self.__value = {} + self.__value = {} + self.__offset = {} self.__selection = {} - self.__enabled = {} + self.__enabled = {} if self.__style == 'checkbox': self._setCursor (1, 0) @@ -61,6 +62,7 @@ self.__value [index] = None self.__selection [index] = None self.__enabled [index] = True + self.__offset [index] = 0 # --------------------------------------------------------------------------- # Focus has changed to this entry @@ -84,7 +86,7 @@ def setValue (self, value, index = 0, enabled = True): - self.__value [index] = value + self.__value [index] = value self.__enabled [index] = enabled self.__repaint (index) @@ -96,19 +98,23 @@ def setCursorPosition (self, position, index = 0): if self.__style != 'checkbox': - self._setCursor (position, 0) + if self.__length: + npos = position - self.__offset [index] + if npos > self.__length: + self.__offset [index] = position - self.__length + npos = self.__length + self.__repaint (index) + elif npos < 0: + self.__offset [index] += npos + npos = 0 + self.__repaint (index) - # --------------------------------------------------------------------------- - # Move the cursor up to the maximum entry width, but not any further ! - # --------------------------------------------------------------------------- + position = npos - def _setCursor (self, x, y): + self._setCursor (position, 0) - if self.__length and x <= self.__length: - UIHelper._setCursor (self, x, y) - # --------------------------------------------------------------------------- # Set start and end of selection area # --------------------------------------------------------------------------- @@ -128,17 +134,18 @@ def __repaint (self, index): - value = self.__value [index] + value = self.__value [index] + offset = self.__offset [index] if self.__style in ['default', 'label', 'dropdown', 'listbox']: text = value or '' + text = text [offset:offset + self.__length] text += ' ' * (self.__length - len (text)) - text = text [-self.__length:] elif self.__style == 'password': text = '*' * len (value or '') + text = text [offset:offset + self.__length] text += ' ' * (self.__length - len (text)) - text = text [-self.__length:] elif self.__style == 'checkbox': if self.__value [index]: Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/form.py =================================================================== --- trunk/gnue-forms/src/uidrivers/curses/widgets/form.py 2005-04-27 13:39:10 UTC (rev 7493) +++ trunk/gnue-forms/src/uidrivers/curses/widgets/form.py 2005-04-28 08:17:46 UTC (rev 7494) @@ -63,6 +63,7 @@ (x, y) = event.interface.screenSize () self.__window = curses.newpad (y, x) + self.__window.keypad (1) self.setTitle (event.object.title) Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/page.py =================================================================== --- trunk/gnue-forms/src/uidrivers/curses/widgets/page.py 2005-04-27 13:39:10 UTC (rev 7493) +++ trunk/gnue-forms/src/uidrivers/curses/widgets/page.py 2005-04-28 08:17:46 UTC (rev 7494) @@ -47,7 +47,7 @@ (self.__x1, self.__y1, self.__x2, self.__y2) = event.parent.getCanvas () self.__window = curses.newpad (self.__y2 - self.__y1, self.__x2 - self.__x1) - self.__window.keypad (True) + self.__window.keypad (1) self.__window.bkgd (' ', self._uiDriver.attr ['background']) self.__cursor = (0, 0) _______________________________________________ Commit-gnue mailing list Commit-gnue@gnu.org http://lists.gnu.org/mailman/listinfo/commit-gnue