[Top][All Lists]
[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
# -------------------------------------------------------------------------
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8843 - in trunk/gnue-forms/src: . uidrivers/gtk2/widgets/form uidrivers/win32/widgets uidrivers/wx/widgets/form uidrivers/wx26/widgets,
reinhard <=