commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r8075 - trunk/gnue-forms/src/uidrivers/win32/widgets


From: btami
Subject: [gnue] r8075 - trunk/gnue-forms/src/uidrivers/win32/widgets
Date: Fri, 21 Oct 2005 16:07:59 -0500 (CDT)

Author: btami
Date: 2005-10-21 16:07:59 -0500 (Fri, 21 Oct 2005)
New Revision: 8075

Modified:
   trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py
Log:
implemented up/down key handling in multiline edit

Modified: trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py       2005-10-20 
13:16:03 UTC (rev 8074)
+++ trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py       2005-10-21 
21:07:59 UTC (rev 8075)
@@ -199,14 +199,32 @@
             ControlDown,
             AltDown)
 
-          if command:
-            action = events.Event('request%s' % command)
+          if command:
+            uiObject = self._uiDriver._IdToUIObj[self._id]
+            # handle up and down arrows in multiline edit
+            if gfObject._type == 'GFEntry'  and \
+               hasattr(gfObject,'Char__height') and gfObject.Char__height > 1 
and \
+               keycode in (win32con.VK_UP, win32con.VK_DOWN):
+
+              lines = win32gui.SendMessage(hwnd, win32con.EM_GETLINECOUNT, 0, 
0)
+              line = win32gui.SendMessage(hwnd, win32con.EM_LINEFROMCHAR, -1, 
0)
+
+              if line == 0 and keycode == win32con.VK_UP:
+                uiObject._request ('PREVENTRY')
+              elif line == lines-1 and keycode == win32con.VK_DOWN:
+                uiObject._request ('NEXTENTRY')
+              else:
+                win32gui.CallWindowProc(self._oldWndProc, hwnd, msg, wParam, 
lParam)
+                pos = self.getSelectedArea ()[0]
+                uiObject._request ('CURSORMOVE', position = pos)
 
-            # Add the object's _form to the outgoing event
-            # rather than every event in the function
-            action.__dict__.update({'_form':gfObject._form})
-            uiObject = self._uiDriver._IdToUIObj[self._id]
-            uiObject._eventHandler(action)
+            else:
+              action = events.Event('request%s' % command)
+  
+              # Add the object's _form to the outgoing event
+              # rather than every event in the function
+              action.__dict__.update({'_form':gfObject._form})
+              uiObject._eventHandler(action)
 
           win32gui.SendMessage(hwnd, win32con.EM_SCROLLCARET, 0, 0)
 





reply via email to

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