[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r8494 - in trunk/gnue-forms/src: . uidrivers/wx26/widgets
From: |
reinhard |
Subject: |
[gnue] r8494 - in trunk/gnue-forms/src: . uidrivers/wx26/widgets |
Date: |
Wed, 14 Jun 2006 09:02:29 -0500 (CDT) |
Author: reinhard
Date: 2006-06-14 09:02:28 -0500 (Wed, 14 Jun 2006)
New Revision: 8494
Modified:
trunk/gnue-forms/src/GFInstance.py
trunk/gnue-forms/src/GFParser.py
trunk/gnue-forms/src/uidrivers/wx26/widgets/menu.py
Log:
Support for loading a default menu from a separate file.
issue79 in-progress
Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py 2006-06-13 20:17:51 UTC (rev 8493)
+++ trunk/gnue-forms/src/GFInstance.py 2006-06-14 14:02:28 UTC (rev 8494)
@@ -36,6 +36,7 @@
import sys
import dircache
+from gnue import paths
from gnue.forms.GFForm import *
from gnue.forms.GFParser import loadFile
from gnue.forms import VERSION
@@ -47,6 +48,7 @@
from gnue.common.utils.FileUtils import dyn_import
from gnue.common.utils.FileUtils import openResource, openBuffer
from gnue.common.utils import CaselessDict
+from gnue.common.logic import usercode
from gnue.common.logic.language import AbortRequest
from gnue.common.apps.GClientApp import *
@@ -303,6 +305,31 @@
assert gEnter (4)
+ main_form = self._formsDictionary ['__main__']
+
+ # Load standard menu and merge it into main form
+ assert gDebug (4, "Loading standard menu and toolbar")
+
+ main_menu = main_form.findChildNamed ('__main__', 'GCMenu')
+ # FIXME: for now, only merge standard menu if there is a menu defined in
+ # the form. Do all of this unconditionally after menu handling is finished.
+ if main_menu:
+ filename = os.path.join (paths.config, 'default.gfd')
+ filehandle = openResource (filename)
+ default_form = loadFile (filehandle, self, initialize=0, url=filename)
+ filehandle.close ()
+
+ menu = default_form.findChildNamed ('__main__', 'GCMenu')
+ menu.merge (main_menu)
+ main_menu.assign (menu, True)
+ main_menu.name = '__main__'
+
+ # Make sure that the Help menu ist the last one. If there is a better
+ # way to do this, please let me know. -- Reinhard
+ help_menu = main_menu.findChildNamed ('__help__')
+ main_menu._children.remove (help_menu)
+ main_menu._children.append (help_menu)
+
# Initialize all the forms loaded into memory
assert gDebug (4, "Initializing form objects")
@@ -318,9 +345,7 @@
self.buildForm (dialog)
# Bring up the main form
- form = self._formsDictionary ['__main__']
-
- if form.style == 'dialog':
+ if main_form.style == 'dialog':
# we assume a dialog to be modal by definition and that program execution
# stops here until the dialog get's closed. So do *not* enter another
# main loop
Modified: trunk/gnue-forms/src/GFParser.py
===================================================================
--- trunk/gnue-forms/src/GFParser.py 2006-06-13 20:17:51 UTC (rev 8493)
+++ trunk/gnue-forms/src/GFParser.py 2006-06-14 14:02:28 UTC (rev 8494)
@@ -1002,7 +1002,7 @@
xmlElements.update(usercode.get_xml_elements(
updates = {
'action': {'ParentTags': ('form')},
- 'menu': {'ParentTags': ('form')},
+ 'menu': {'ParentTags': ('form', 'menu')},
'toolbar': {'ParentTags': ('form')}}))
#
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/menu.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/menu.py 2006-06-13 20:17:51 UTC
(rev 8493)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/menu.py 2006-06-14 14:02:28 UTC
(rev 8494)
@@ -44,15 +44,22 @@
Creates a new Menu widget.
"""
- result = wx.Menu()
- if isinstance(event.container, wx.Menu):
- event.container.AppendMenu(wx.ID_ANY, self._gfObject.label, result)
+ if self._gfObject.name == '__main__':
+ # Menu bar of the form
+ widget = wx.MenuBar()
+ self._uiForm.mainWindow.SetMenuBar(widget)
else:
- self._uiForm.menuBar.Append(result, self._gfObject.label)
+ # Submenu or popup menu
+ widget = wx.Menu()
+ if isinstance(event.container, wx.Menu):
+ event.container.AppendMenu(wx.ID_ANY, self._gfObject.label,
+ widget)
+ elif isinstance(event.container, wx.MenuBar):
+ event.container.Append(widget, self._gfObject.label)
- self._containerToolkitWidget = result
+ self._containerToolkitWidget = widget
- return result
+ return widget
# =============================================================================
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8494 - in trunk/gnue-forms/src: . uidrivers/wx26/widgets,
reinhard <=