commit-gnue
[Top][All Lists]
Advanced

[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("")





reply via email to

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