commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r7494 - in trunk/gnue-forms/src/uidrivers/curses: . widgets


From: johannes
Subject: [gnue] r7494 - in trunk/gnue-forms/src/uidrivers/curses: . widgets
Date: Thu, 28 Apr 2005 03:17:48 -0500 (CDT)

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)
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]