[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r5819 - trunk/gnue-forms/src/uidrivers/win32/widgets
From: |
btami |
Subject: |
r5819 - trunk/gnue-forms/src/uidrivers/win32/widgets |
Date: |
Sat, 15 May 2004 15:06:28 -0500 (CDT) |
Author: btami
Date: 2004-05-15 15:06:26 -0500 (Sat, 15 May 2004)
New Revision: 5819
Modified:
trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py
trunk/gnue-forms/src/uidrivers/win32/widgets/entry.py
Log:
implemented listbox entry style in win32 ui driver
Modified: trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py 2004-05-14
08:43:42 UTC (rev 5818)
+++ trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py 2004-05-15
20:06:26 UTC (rev 5819)
@@ -69,7 +69,7 @@
self._uiDriver = uidriver
self._uiDriver._win32app._HwndToTkObj[self._hwnd] = self
- if className in ['STATIC', 'BUTTON', 'COMBOBOX', 'EDIT']:
+ if className in ['STATIC', 'BUTTON', 'COMBOBOX', 'LISTBOX', 'EDIT']:
self.Show()
self._oldWndProc = win32gui.SetWindowLong(self._hwnd,
win32con.GWL_WNDPROC, self._wndproc)
@@ -77,7 +77,7 @@
if msg == win32con.WM_LBUTTONDOWN:
gfObject = self._uiDriver._IdToGFObj[self._id]
uiObject = self._uiDriver._IdToUIObj[self._id]
-
+
if 1: #not self.hasFocus():
# Request Focus
uiObject._eventHandler('requestFOCUS',gfObject,_form=gfObject._form)
@@ -90,9 +90,9 @@
elif gfObject.style == 'checkbox':
uiObject._eventHandler('requestTOGGLECHKBOX',_form=gfObject._form)
else:
+ cursorPosition = self.getSelectedArea()[1]
+ uiObject._eventHandler('requestCURSORMOVE', position=cursorPosition,
_form=gfObject._form)
win32gui.CallWindowProc(self._oldWndProc, hwnd, msg, wParam, lParam)
- cursorPosition = self.getSelectedArea()[1]
- uiObject._eventHandler('requestCURSORMOVE', position=cursorPosition,
_form=gfObject._form)
elif msg == win32con.WM_LBUTTONUP:
gfObject = self._uiDriver._IdToGFObj[self._id]
@@ -110,7 +110,8 @@
gfObject = self._uiDriver._IdToGFObj[self._id]
if (keycode in NOT_WM_CHAR_KEYS):
- if gfObject._type == 'GFButton' or (gfObject._type == 'GFEntry' and
gfObject.style != 'dropdown'):
+ if gfObject._type == 'GFButton' or \
+ (gfObject._type == 'GFEntry' and gfObject.style != 'dropdown' and
gfObject.style != 'listbox'):
action = None
ShiftDown = (win32api.GetKeyState(win32con.VK_SHIFT) & 0x8000) and 1
or 0
@@ -132,7 +133,7 @@
uiObject = self._uiDriver._IdToUIObj[self._id]
uiObject._eventHandler(action)
- else:
+ else:
return win32gui.CallWindowProc(self._oldWndProc, hwnd, msg, wParam,
lParam)
elif msg == win32con.WM_CHAR:
@@ -210,7 +211,7 @@
code=keycode)
except ValueError:
pass
-
+
if action:
# Add the object's _form to the outgoing event
# rather than every event in the function
@@ -219,15 +220,14 @@
uiObject._eventHandler(action)
if gfObject._type == 'GFEntry':
- if gfObject.style == 'dropdown':
+ if gfObject.style == 'dropdown' or gfObject.style == 'listbox':
return win32gui.CallWindowProc(self._oldWndProc, hwnd, msg, wParam,
lParam)
elif msg == win32con.WM_COMMAND:
-
- if win32api.HIWORD(wParam) == win32con.CBN_SELCHANGE:
+ if win32api.HIWORD(wParam) == win32con.CBN_SELCHANGE:
gfObject = self._uiDriver._IdToGFObj[self._id]
uiObject = self._uiDriver._IdToUIObj[self._id]
- if gfObject.style == 'dropdown':
+ if gfObject.style == 'dropdown':
selection = self.GetValue()
string = gfObject._field.allowedValues()[1][selection]
uiObject._eventHandler('requestREPLACEVALUE',object=gfObject,
@@ -320,7 +320,7 @@
win32gui.SendMessage(child.GetHwnd(), commctrl.TB_AUTOSIZE, 0, 0)
def OnWMCommand(self, hwnd, msg, wParam, lParam):
- # menu/toolbar selection happend
+ # menu/toolbar selection happend'
self._connectTable[wParam]()
def OnWMNotify(self, hwnd, msg, wParam, lParam):
@@ -357,6 +357,8 @@
win32gui.SendMessage(self._hwnd, win32con.BM_SETCHECK, val, 0)
elif gfObject.style == 'dropdown':
win32gui.SendMessage(self._hwnd, win32con.CB_SELECTSTRING, -1, value)
# CB_SETCURSEL, value, 0)
+ elif gfObject.style == 'listbox':
+ win32gui.SendMessage(self._hwnd, win32con.LB_SELECTSTRING, -1, value)
else:
if hasattr(gfObject,'Char__height') and gfObject.Char__height > 1:
corrvalue = re.sub(r'(?<!\r)\n', r'\r\n', value)
@@ -376,6 +378,8 @@
return 0
elif gfObject.style == 'dropdown':
return win32gui.SendMessage(self._hwnd, win32con.CB_GETCURSEL, 0, 0)
+ elif gfObject.style == 'listbox':
+ return win32gui.SendMessage(self._hwnd, win32con.LB_GETCURSEL, 0, 0)
else:
return win32gui.GetWindowText(self._hwnd)
@@ -388,6 +392,7 @@
def getSelectedArea(self):
gs = win32gui.SendMessage(self._hwnd, win32con.EM_GETSEL, 0, 0)
return (win32api.LOWORD(gs), win32api.HIWORD(gs))
+
class Win32Button(Win32Base):
pass
@@ -399,10 +404,22 @@
class Win32Page(Win32Base):
- def OnWMCommand(self, hwnd, msg, wParam, lParam):
- window = self._uiDriver._win32app._HwndToTkObj[lParam]
- window.OnWMCommand(hwnd, msg, wParam, lParam)
-
+ def OnWMCommand(self, hwnd, msg, wParam, lParam):
+ if win32api.HIWORD(wParam) == win32con.LBN_SELCHANGE:
+ lbWindow = self._uiDriver._win32app._HwndToTkObj[lParam]
+ id = lbWindow.GetId()
+ gfObject = self._uiDriver._IdToGFObj[id]
+ uiObject = self._uiDriver._IdToUIObj[id]
+ if gfObject.style == 'listbox':
+ selection = lbWindow.GetValue()
+ string = gfObject._field.allowedValues()[1][selection]
+ uiObject._eventHandler('requestREPLACEVALUE',object=gfObject,
+ index=selection, text=string,
+ _form=gfObject._form)
+ else:
+ window = self._uiDriver._win32app._HwndToTkObj[lParam]
+ window.OnWMCommand(hwnd, msg, wParam, lParam)
+
def OnWMVScroll(self, hwnd, msg, wParam, lParam):
sbWindow = self._uiDriver._win32app._HwndToTkObj[lParam]
id = sbWindow.GetId()
@@ -495,12 +512,19 @@
# Check if foreign key changed
gfObject = self._uiDriver._IdToGFObj[widget.GetId()]
try:
- if gfObject.style == "dropdown" and \
+ if (gfObject.style == "dropdown" or gfObject.style == "listbox") and \
not gfObject._field._allowedValues == widget._origAllowedValues:
- widget._origAllowedValues = gfObject._field._allowedValues
- win32gui.SendMessage(widget.GetHwnd(), win32con.CB_RESETCONTENT, 0, 0)
+ widget._origAllowedValues = gfObject._field._allowedValues
+ if gfObject.style == "dropdown":
+ RESETCONTENT = CB_RESETCONTENT
+ ADDSTRING = CB_ADDSTRING
+ else:
+ RESETCONTENT = LB_RESETCONTENT
+ ADDSTRING = LB_ADDSTRING
+
+ win32gui.SendMessage(widget.GetHwnd(), RESETCONTENT, 0, 0)
for value in gfObject._field.allowedValues()[1]:
- win32gui.SendMessage(widget.GetHwnd(), win32con.CB_ADDSTRING, 0,
textEncode(value.encode))
+ win32gui.SendMessage(widget.GetHwnd(), ADDSTRING, 0,
textEncode(value.encode))
widget.SetValue("")
except AttributeError:
pass
Modified: trunk/gnue-forms/src/uidrivers/win32/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/widgets/entry.py 2004-05-14
08:43:42 UTC (rev 5818)
+++ trunk/gnue-forms/src/uidrivers/win32/widgets/entry.py 2004-05-15
20:06:26 UTC (rev 5819)
@@ -48,12 +48,17 @@
title = ""
if ostyle == 'dropdown':
- style = win32con.WS_CHILD | win32con.WS_VSCROLL | win32con.WS_BORDER |
win32con.LBS_NOTIFY | \
+ style = win32con.WS_CHILD | win32con.WS_VSCROLL | win32con.LBS_NOTIFY | \
win32con.CBS_DROPDOWNLIST | win32con.CBS_NOINTEGRALHEIGHT
styleEx = 0
className = "COMBOBOX"
height = self.itemHeight +100 # TODO
-
+
+ elif ostyle == 'listbox':
+ style = win32con.WS_CHILD | win32con.WS_VSCROLL | win32con.LBS_NOTIFY
+ styleEx = win32con.WS_EX_CLIENTEDGE
+ className = "LISTBOX"
+
elif ostyle == 'label':
style = win32con.WS_CHILD
styleEx = 0
@@ -84,13 +89,19 @@
height,
event.container, getNextId())
- if ostyle == 'dropdown':
+ if ostyle == 'dropdown' or ostyle == 'listbox':
if event.initialize:
choices = object._field.allowedValues()[1]
else:
- choices = [""]
+ choices = [""]
+
+ if ostyle == 'dropdown':
+ ADDSTRING = win32con.CB_ADDSTRING
+ else:
+ ADDSTRING = win32con.LB_ADDSTRING
+
for item in choices:
- win32gui.SendMessage(newWidget.GetHwnd(), win32con.CB_ADDSTRING, 0,
textEncode(item))
+ win32gui.SendMessage(newWidget.GetHwnd(), ADDSTRING, 0,
textEncode(item))
if event.initialize:
newWidget._origAllowedValues = object._field._allowedValues
newWidget.SetValue("")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5819 - trunk/gnue-forms/src/uidrivers/win32/widgets,
btami <=