commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r7577 - trunk/gnue-forms/src/uidrivers/win32


From: btami
Subject: [gnue] r7577 - trunk/gnue-forms/src/uidrivers/win32
Date: Sun, 5 Jun 2005 17:12:27 -0500 (CDT)

Author: btami
Date: 2005-06-05 17:12:25 -0500 (Sun, 05 Jun 2005)
New Revision: 7577

Modified:
   trunk/gnue-forms/src/uidrivers/win32/dialogs.py
Log:
fixed dropdown handling (no dependancy support yet)

Modified: trunk/gnue-forms/src/uidrivers/win32/dialogs.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/dialogs.py     2005-06-03 10:38:59 UTC 
(rev 7576)
+++ trunk/gnue-forms/src/uidrivers/win32/dialogs.py     2005-06-05 22:12:25 UTC 
(rev 7577)
@@ -176,7 +176,7 @@
       s = cs | win32con.WS_TABSTOP | win32con.CBS_DROPDOWNLIST
       self.template.append([DROPDOWN, default, ID, position, s])
       self.__inputs.append (ID)
-      self.__dropdowns[ID] = (default, master, elements)
+      self.__dropdowns[ID] = [default, master, elements, {}]
 
     self.__controls.append (ID)
     self.controlsName [ID] = name
@@ -222,14 +222,20 @@
 
       if control in self.__dropdowns.keys():
         bm = win32gui.GetDlgItem(hwnd, control)
-        default, master, elements = self.__dropdowns[control]
+        default, master, elements, rmap = self.__dropdowns[control]
 
-        for key in elements[0][1].keys():
-          try:
-            win32gui.SendMessage(bm, win32con.CB_ADDSTRING, 0, 
elements[0][1][key])
-          except:
-            print 'TODO'
-            
+        (label, allowed) = elements [0]
+        if master is None:
+          data = [allowed]
+        else:
+          data = allowed.values ()
+
+        for vdict in data:
+          for key,value in vdict.items():
+            value = textEncode("%s" % value)
+            self.__dropdowns[control][3][value] = key
+            win32gui.SendMessage(bm, win32con.CB_ADDSTRING, 0, value)
+
         win32gui.SendMessage(bm, win32con.CB_SELECTSTRING, -1, default)
 
     self.SetPosition(win32con.IDCANCEL, self.dlgWidth + 2*border\
@@ -255,10 +261,17 @@
   def OnCommand(self, hwnd, msg, wparam, lparam):
     id = win32api.LOWORD(wparam)
     if id == win32con.IDOK:
-      for control in self.__controls:
-        dlgItem = win32gui.GetDlgItem(self.hwnd, control)
-        self.inputData [self.controlsName [control]] = 
win32gui.GetWindowText(dlgItem)
-      win32gui.EndDialog(hwnd, 1)
+      for control in self.__inputs:
+        dlgItem = win32gui.GetDlgItem(self.hwnd, control)
+        text = win32gui.GetWindowText(dlgItem)
+        if control in self.__dropdowns.keys():
+          key =  self.__dropdowns[control][3].get(text)
+          if key:
+            self.inputData [self.controlsName [control]] = key
+        else:
+          self.inputData [self.controlsName [control]] = text
+      win32gui.EndDialog(hwnd, 1)
+
     elif id == win32con.IDCANCEL:
       self.inputData = None
       win32gui.EndDialog(hwnd, 0)





reply via email to

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