commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r8843 - in trunk/gnue-forms/src: . uidrivers/gtk2/widgets/form ui


From: reinhard
Subject: [gnue] r8843 - in trunk/gnue-forms/src: . uidrivers/gtk2/widgets/form uidrivers/win32/widgets uidrivers/wx/widgets/form uidrivers/wx26/widgets
Date: Wed, 18 Oct 2006 08:10:09 -0500 (CDT)

Author: reinhard
Date: 2006-10-18 08:10:08 -0500 (Wed, 18 Oct 2006)
New Revision: 8843

Modified:
   trunk/gnue-forms/src/GFForm.py
   trunk/gnue-forms/src/GFInstance.py
   trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/wrappers.py
   trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py
   trunk/gnue-forms/src/uidrivers/wx/widgets/form/wrappers.py
   trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py
Log:
Reworked routines to change page with the notebook (clicking on the tabs or
setting the focus on the notebook and moving the cursor). Not quite perfect
yet.


Modified: trunk/gnue-forms/src/GFForm.py
===================================================================
--- trunk/gnue-forms/src/GFForm.py      2006-10-18 10:44:18 UTC (rev 8842)
+++ trunk/gnue-forms/src/GFForm.py      2006-10-18 13:10:08 UTC (rev 8843)
@@ -313,6 +313,22 @@
 
 
     # -------------------------------------------------------------------------
+    # UI events (called from UIForm)
+    # -------------------------------------------------------------------------
+
+    def _event_page_changed(self, page_number):
+        """
+        Notify the form that the user has switched to a different page.
+
+        This method gets called by the user interface whenever the user changes
+        the page through the user interface, e.g. by clicking on the associated
+        tab. It makes sure that the logical focus follows the physical focus.
+        """
+
+        self._currentPage = self._layout._pageList[page_number]
+
+
+    # -------------------------------------------------------------------------
     # Trigger functions
     # -------------------------------------------------------------------------
 

Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py  2006-10-18 10:44:18 UTC (rev 8842)
+++ trunk/gnue-forms/src/GFInstance.py  2006-10-18 13:10:08 UTC (rev 8843)
@@ -27,11 +27,6 @@
 manner.
 """
 
-# NOTES:
-#  Once all the events are moved back in here
-#    make the next/prec methods more generic in the GFForm
-#    change self._form in here to a list
-
 import os
 import sys
 import dircache
@@ -88,7 +83,6 @@
 
                 # events not related to menu, toolbar, or hotkeys
                 'requestFOCUS'        : self.changeFocus,
-                'requestPAGE'         : self.gotoPage,
                 'requestJUMPRECORD'   : self.__execute_jumpRecord,
 
                 # Focus-related events
@@ -504,19 +498,6 @@
 
 
   # ---------------------------------------------------------------------------
-  # Jump to a specific page
-  # ---------------------------------------------------------------------------
-
-  def gotoPage(self, event):
-    """
-    Jump to a specific page of the form
-    """
-
-    newpage = event._form._layout._pageList [event.data]
-    event._form.findAndChangeFocus (newpage)
-
-
-  # ---------------------------------------------------------------------------
   # Clipboard and selection
   # ---------------------------------------------------------------------------
 

Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/wrappers.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/wrappers.py        
2006-10-18 10:44:18 UTC (rev 8842)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/wrappers.py        
2006-10-18 13:10:08 UTC (rev 8843)
@@ -201,7 +201,7 @@
     
 
   # ---------------------------------------------------------------------------
-  # Transform a switch-page signal into a requestPAGE event
+  # Page switch event
   # ---------------------------------------------------------------------------
 
   def notebookTabHandler (self, notebook, notebookpage, pageNr):
@@ -209,12 +209,9 @@
     assert gDebug (6, "switch-page %s %s %s" % (pageNr, self._oldpage, 
notebook))
 
     if self._oldpage != pageNr:
-      action = events.Event ('requestPAGE', pageNr, _form = self.form)
-      self.uiform._eventHandler (action)
+        self.form._event_page_changed(pageNr)
 
-      notebook.stop_emission ('switch-page')
 
-
   # ---------------------------------------------------------------------------
   # Activate a given page in the notebook
   # ---------------------------------------------------------------------------

Modified: trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py       2006-10-18 
10:44:18 UTC (rev 8842)
+++ trunk/gnue-forms/src/uidrivers/win32/widgets/_base.py       2006-10-18 
13:10:08 UTC (rev 8843)
@@ -486,8 +486,7 @@
 
       id = window._children[pageId].GetId()
       gfObject = self._uiDriver._IdToGFObj[id]
-      uiObject = self._uiDriver._IdToUIObj[id]
-      uiObject._uiForm._eventHandler('requestPAGE', pageId, 
_form=gfObject._form)
+      gfObject._form._event_page_changed(pageId)
 
 
 class Win32Entry(Win32Base):

Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/form/wrappers.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/form/wrappers.py  2006-10-18 
10:44:18 UTC (rev 8842)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/form/wrappers.py  2006-10-18 
13:10:08 UTC (rev 8843)
@@ -200,24 +200,18 @@
     Handles tab change requests.
     """
     if event.GetEventType() == wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING:
-      self.__alreadyChanged = True
-      self.uiform._eventHandler('requestPAGE', event.GetSelection(), 
_form=self.form)
-      del self.__alreadyChanged
+        self.form._event_page_changed(event.GetSelection())
 
 
   # --------------------------------------------------------------------------
-  # Trick to trap mouse page changes that causes SetSelection to be called 2x
+  # Change page
   # --------------------------------------------------------------------------
   def setPage(self, page):
     """
-    Handles double SetSelection calls during mouse page changes.
+    Change the page.
     """
-    try:
-      self.__alreadyChanged
-      return
-    except AttributeError:
-      pageId = self._pageList.index(page)
-      self.pane.SetSelection(pageId)
+    pageId = self._pageList.index(page)
+    self.pane.SetSelection(pageId)
 
 
 # ============================================================================

Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py 2006-10-18 10:44:18 UTC 
(rev 8842)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py 2006-10-18 13:10:08 UTC 
(rev 8843)
@@ -194,6 +194,7 @@
     def __update_sizer (self):
 
         if isinstance(self._container, wx.Notebook):
+            pass
             self._container.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED,
                     self.__on_page_changed, self._container)
 
@@ -294,10 +295,13 @@
     # -------------------------------------------------------------------------
 
     def __on_page_changed(self, event):
-        self._request('PAGE', data=event.GetSelection())
-        event.Skip()
 
+        self._form._event_page_changed(event.GetSelection())
 
+        # FIXME: wx seems to leave the cursor in nowhere land after changing
+        # the page with the mouse.
+
+
     # -------------------------------------------------------------------------
     # User feedback functions
     # -------------------------------------------------------------------------





reply via email to

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