commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r9321 - in trunk/gnue-forms/src: input/displayHandlers uidrivers/


From: johannes
Subject: [gnue] r9321 - in trunk/gnue-forms/src: input/displayHandlers uidrivers/wx26/widgets
Date: Wed, 17 Jan 2007 07:57:55 -0600 (CST)

Author: johannes
Date: 2007-01-17 07:57:54 -0600 (Wed, 17 Jan 2007)
New Revision: 9321

Modified:
   trunk/gnue-forms/src/input/displayHandlers/Cursor.py
   trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py
Log:
Prepared for autocompletion in displayHandler


Modified: trunk/gnue-forms/src/input/displayHandlers/Cursor.py
===================================================================
--- trunk/gnue-forms/src/input/displayHandlers/Cursor.py        2007-01-16 
19:17:32 UTC (rev 9320)
+++ trunk/gnue-forms/src/input/displayHandlers/Cursor.py        2007-01-17 
13:57:54 UTC (rev 9321)
@@ -308,10 +308,13 @@
         ende = len(self.display)
         if self._selection1 or self._selection2:
             ende = min(self._selection1, self._selection2)
-        if new_cursor == len(new_text) and len(new_text) > ende:
+
+        if new_text.startswith(self.display[:ende]) and len(new_text) > ende:
+            start_sel = len(new_text)
+            new_text = self._autocomplete_(new_text)
             new_text = self.field.autocomplete(new_text)
-            if len(new_text) > new_cursor:
-                new_selection = (new_cursor, len(new_text))
+            if len(new_text) > start_sel:
+                new_selection = (start_sel, len(new_text))
             else:
                 new_selection = (None, None)
         else:
@@ -329,7 +332,20 @@
         if hasattr(self.field, 'fk_source'):
             self.updateFieldValue()
 
+    # -------------------------------------------------------------------------
+    # Do autocompletion
+    # -------------------------------------------------------------------------
 
+    def _autocomplete_(self, new_value):
+        """
+        Descandants can override this method to introduce autocompletion.  This
+        method get's called from __change_text() if the current cursor is at
+        the end of the display-string
+
+        @returns: the new (autocompleted) value to use
+        """
+        return new_value
+
     # =========================================================================
     # Cursor movement functions
     # =========================================================================

Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py        2007-01-16 
19:17:32 UTC (rev 9320)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py        2007-01-17 
13:57:54 UTC (rev 9321)
@@ -105,6 +105,7 @@
         ctrl = wx.TextCtrl(parent, -1, size=csize, style=xFlags)
         ctrl.Bind(wx.EVT_CHAR, self.__on_keypress)
         ctrl.Bind(wx.EVT_TEXT, self.__on_text_changed)
+
         ctrl.Bind(wx.EVT_SET_FOCUS, self.__on_set_focus)
 
         return [self.__add_entry_label(parent), ctrl]
@@ -499,7 +500,10 @@
             widget.SetMark(selection1, selection2)
 
         elif hasattr(widget, 'SetSelection'):
-            widget.SetSelection(selection1, selection2)
+            if 'wxGTK' in wx.PlatformInfo:
+                wx.CallAfter(widget.SetSelection, selection1, selection2)
+            else:
+                widget.SetSelection(selection1, selection2)
 
 
     # -------------------------------------------------------------------------





reply via email to

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