commit-gnue
[Top][All Lists]
Advanced

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

r5225 - in trunk/gnue-forms/src: . uidrivers/wx/widgets


From: btami
Subject: r5225 - in trunk/gnue-forms/src: . uidrivers/wx/widgets
Date: Fri, 5 Mar 2004 05:45:04 -0600 (CST)

Author: btami
Date: 2004-03-05 05:45:03 -0600 (Fri, 05 Mar 2004)
New Revision: 5225

Modified:
   trunk/gnue-forms/src/GFDisplayHandler.py
   trunk/gnue-forms/src/GFForm.py
   trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
Log:
more dropdown magic

Modified: trunk/gnue-forms/src/GFDisplayHandler.py
===================================================================
--- trunk/gnue-forms/src/GFDisplayHandler.py    2004-03-05 10:42:58 UTC (rev 
5224)
+++ trunk/gnue-forms/src/GFDisplayHandler.py    2004-03-05 11:45:03 UTC (rev 
5225)
@@ -243,7 +243,7 @@
                    + value                \
                    + self.work[self.cursor:]
 
-      self.cursor += len(event.text)
+      self.cursor += len(value)
 
 
     event.__dropped__ = True
@@ -719,7 +719,9 @@
 
 
   def beginEdit(self, event):
-
+    if self.editing == True and self.modified == False:
+      return
+    
     if not self._loadedAllowedValues and not 
hasattr(self.field,'_allowedValues'):
       self.field.allowedValues()
       self._loadedAllowedValues = True

Modified: trunk/gnue-forms/src/GFForm.py
===================================================================
--- trunk/gnue-forms/src/GFForm.py      2004-03-05 10:42:58 UTC (rev 5224)
+++ trunk/gnue-forms/src/GFForm.py      2004-03-05 11:45:03 UTC (rev 5225)
@@ -292,6 +292,10 @@
 
     message = None
 
+    # cannot change focus to same entry
+    if widget == self._currentEntry:
+      return
+
     try:
       if self._currentEntry:
 

Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py  2004-03-05 10:42:58 UTC 
(rev 5224)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py  2004-03-05 11:45:03 UTC 
(rev 5225)
@@ -40,7 +40,13 @@
 # Widget set specific function that creates a single instance of a data entry 
widget
 #
 class UIEntry(UIHelper):
+  """
+  A wxPython-based UI driver for GNUe Forms
+  """
   def _createWidget(self, event, spacer):
+    """
+    Creates a single instance of a data entry widget
+    """
     object = event.object
 
     style = object.style
@@ -56,19 +62,25 @@
             choices.append(val.encode(gConfig('textEncoding'),'replace'))
           else:
             choices.append(val)
-            
+
       else:
         choices = [""]
 
+      choices.sort()
+
       newWidget = wxComboBox(event.container, -1, "",defaultPoint,
                               wxSize(self.itemWidth,self.itemHeight),
                              choices, wxCB_DROPDOWN,) #|wxWANTS_CHARS,)
       if event.initialize:
         newWidget._origAllowedValues = object._field._allowedValues
         newWidget.SetValue("")
-        EVT_COMBOBOX(newWidget, newWidget.GetId(), self.comboHandler)
-        EVT_TEXT(newWidget, newWidget.GetId(), self.comboHandler)
-        self.comboDropped = False   # True if the combobox is dropped and the 
list is visible
+        newWidget_Id = newWidget.GetId()
+        EVT_COMBOBOX(newWidget, newWidget_Id, self.comboHandler)
+        EVT_TEXT(event.container, newWidget_Id, self.comboHandler)
+        EVT_TEXT_ENTER(event.container, newWidget_Id, self.comboHandler)
+        self.comboDropped = True    # True if the combobox is dropped and the 
list is visible.
+        # For some strange reason it is best to initialize it True as if
+        # the list would be dropped down at startup, though it is not...
 
 
     elif style == 'label':
@@ -111,28 +123,29 @@
     action = None
     eventType = event.GetEventType()
 
-    if eventType == wxEVT_COMMAND_COMBOBOX_SELECTED:    #combobox dropped
-      if self.comboDropped == False:
+    if self.comboDropped == True:
+      if eventType in [wxEVT_COMMAND_COMBOBOX_SELECTED, 
wxEVT_COMMAND_TEXT_UPDATED, wxEVT_COMMAND_TEXT_ENTER]:
+        self.comboDropped = False
+
+        object = _eventObjTowxWindow(event)
+        gfObject = self._uiDriver._IdToGFObj[object.GetId()]
+        selection = event.GetSelection()
+
+        action = events.Event('requestREPLACEVALUE',object=gfObject,
+                              index=selection, text=event.GetString(),
+                            _form=gfObject._form)
+    else:
+      if eventType in 
[wxEVT_COMMAND_COMBOBOX_SELECTED,wxEVT_COMMAND_TEXT_ENTER]:
         self.comboDropped = True
 
         object = _eventObjTowxWindow(event)
         gfObject = self._uiDriver._IdToGFObj[object.GetId()]
         uiObject = self._uiDriver._IdToUIObj[object.GetId()]
         uiObject._eventHandler('requestFOCUS',gfObject,_form=gfObject._form)
-        #action = events.Event('requestCOMBODROPPED', _form=gfObject._form)
+        action = events.Event('requestCOMBODROPPED', _form=gfObject._form)
 
-    elif eventType == wxEVT_COMMAND_TEXT_UPDATED or eventType == 
wxEVT_COMMAND_TEXT_ENTER:   #value selected from list
-      self.comboDropped = False
-
-      object = _eventObjTowxWindow(event)
-      gfObject     = self._uiDriver._IdToGFObj[object.GetId()]
-      selection = event.GetSelection()
-
-      action = events.Event('requestREPLACEVALUE',object=gfObject,
-                              index=selection, text=event.GetString(),
-                            _form=gfObject._form)
     self._eventHandler(action)
-    event.Skip()
+    #event.Skip()   #Is it needed here?
 
 
   def checkboxHandler(self,event):





reply via email to

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