[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r7692 - trunk/gnue-forms/src/uidrivers/win32/widgets
From: |
johannes |
Subject: |
[gnue] r7692 - trunk/gnue-forms/src/uidrivers/win32/widgets |
Date: |
Thu, 7 Jul 2005 04:21:38 -0500 (CDT) |
Author: johannes
Date: 2005-07-07 04:21:37 -0500 (Thu, 07 Jul 2005)
New Revision: 7692
Modified:
trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py
Log:
Fixed cursor-positioning and selection of regions
Modified: trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py 2005-07-07
07:34:35 UTC (rev 7691)
+++ trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py 2005-07-07
09:21:37 UTC (rev 7692)
@@ -94,18 +94,29 @@
elif gfObject.style == 'checkbox':
uiObject._eventHandler('requestTOGGLECHKBOX',_form=gfObject._form)
else:
- cursorPosition = self.getSelectedArea()[1]
- uiObject._eventHandler('requestCURSORMOVE', position=cursorPosition,
_form=gfObject._form)
+ if gfObject._type != 'GFEntry':
+ cursorPosition = self.getSelectedArea()[1]
+ uiObject._request ('CURSORMOVE', position = cursorPosition)
+
win32gui.CallWindowProc(self._oldWndProc, hwnd, msg, wParam, lParam)
elif msg == win32con.WM_LBUTTONUP:
gfObject = self._uiDriver._IdToGFObj[self._id]
+ uiObject = self._uiDriver._IdToUIObj[self._id]
+
if gfObject._type == 'GFEntry':
- selection1, selection2 = self.getSelectedArea()
- if selection1 != selection2:
- uiObject = self._uiDriver._IdToUIObj[self._id]
- uiObject._eventHandler('requestSELECTWITHMOUSE', \
- position1=selection1,
position2=selection2, _form=gfObject._form)
+ selection1, selection2 = self.getSelectedArea ()
+ value = self.GetValue ()
+
+ left = selection1 - value [:selection1].count ('\r')
+ right = selection2 - value [:selection2].count ('\r')
+
+ if left == right:
+ uiObject._request ('CURSORMOVE', position = left)
+
+ else:
+ uiObject._request ('SELECTWITHMOUSE', position1 = left,
+ position2 = right)
win32gui.CallWindowProc(self._oldWndProc, hwnd, msg, wParam, lParam)
@@ -361,7 +372,7 @@
win32gui.SendMessage(self._hwnd, win32con.LB_SETCURSEL, 0, 0)
else:
if hasattr(gfObject,'Char__height') and gfObject.Char__height > 1:
- corrvalue = re.sub(r'(?<!\r)\n', r'\r\n', value)
+ corrvalue = '\r\n'.join (value.splitlines ())
win32gui.SetWindowText(self._hwnd, corrvalue)
else:
win32gui.SetWindowText(self._hwnd, str(value))
@@ -384,9 +395,20 @@
return win32gui.GetWindowText(self._hwnd)
def setCursorPosition(self, position):
+ gfObject = self._uiDriver._IdToGFObj[self._id]
+ if gfObject._type == 'GFEntry':
+ value = gfObject.getValue ()
+ part = value [:position]
+ position = position + part.count ('\n')
win32gui.SendMessage(self._hwnd, win32con.EM_SETSEL, position, position)
def setSelectedArea(self, selection1, selection2):
+ gfObject = self._uiDriver._IdToGFObj[self._id]
+ if gfObject._type == 'GFEntry':
+ value = gfObject.getValue ()
+ selection1 = selection1 + value [:selection1].count ('\n')
+ selection2 = selection2 + value [:selection2].count ('\n')
+
win32gui.SendMessage(self._hwnd, win32con.EM_SETSEL, selection1,
selection2)
def getSelectedArea(self):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r7692 - trunk/gnue-forms/src/uidrivers/win32/widgets,
johannes <=