commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r9287 - in trunk: gnue-forms/src/uidrivers/wx26/widgets gnue-navi


From: reinhard
Subject: [gnue] r9287 - in trunk: gnue-forms/src/uidrivers/wx26/widgets gnue-navigator/src
Date: Fri, 12 Jan 2007 08:41:29 -0600 (CST)

Author: reinhard
Date: 2007-01-12 08:41:28 -0600 (Fri, 12 Jan 2007)
New Revision: 9287

Modified:
   trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py
   trunk/gnue-navigator/src/UIwx26.py
Log:
First steps towards embedded forms.


Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py 2007-01-12 14:40:06 UTC 
(rev 9286)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py 2007-01-12 14:41:28 UTC 
(rev 9287)
@@ -100,6 +100,9 @@
         self.__status_bar = None
         self.__master_sizer = None
 
+        # Is this form embedded?
+        self.__embedded = False
+
         # Set to True to block focus events
         self.block_focus_events = False
 
@@ -121,12 +124,18 @@
         """
 
         if self._form.style != 'dialog':
-            self.main_window = self._uiDriver._parentContainer
-            if not self.main_window:
+            embed = self._uiDriver._parentContainer
+            if embed is not None:
+                self.main_window = embed['frame']
+                self._container = embed['panel']
+                self.__embedded = True
+            else:
                 self.main_window = wx.Frame(None, -1)
+                self._container = None
         else:
             self.main_window = wx.Dialog(None, -1,
                     style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
+            self._container = None
 
         self.main_window.SetTitle(self._form.title)
         self.main_window.SetIcons(self.__load_icons())
@@ -136,11 +145,12 @@
 
         # The base panel is needed on wxMSW to get a uniform background of the
         # frame.
-        base_panel = wx.Panel(self.main_window, -1)
+        if self._container is None:
+            self._container = wx.Panel(self.main_window, -1)
         base_sizer = wx.BoxSizer(wx.VERTICAL)
-        base_panel.SetSizer(base_sizer)
+        self._container.SetSizer(base_sizer)
 
-        self.__master_sizer.Add(base_panel, 1, wx.EXPAND)
+        self.__master_sizer.Add(self._container, 1, wx.EXPAND)
 
         # Add Statusbar, Toolbar and Menubar as requested and/or allowed
         if self._form.style != 'dialog':
@@ -153,19 +163,17 @@
                 MenuBar(self._uiDriver, self.main_window, self._form)
 
             if not self._form._features.get ('GUI:TOOLBAR:SUPPRESS'):
-                tlb = ToolBar(self._uiDriver, base_panel, self._form)
+                tlb = ToolBar(self._uiDriver, self._container, self._form)
                 base_sizer.Add(tlb.toolbar, 0, wx.EXPAND)
 
         # If the form is using tabs, we need to create a Notebook control as
         # page container, otherwise we can just use the base panel
         if self._form._layout.tabbed != 'none':
             style = self._TAB_STYLE[self._form._layout.tabbed]
-            self._container = wx.Notebook(base_panel, -1, style = style)
+            self._container = wx.Notebook(self._container, -1, style = style)
             # The border between the edge of the form and the page is 12 pixel
             # according to the GNOME Human Interface Guidlines.
             base_sizer.Add(self._container, 1, wx.EXPAND | wx.ALL, 12)
-        else:
-            self._container = base_panel
 
         return self.main_window
 
@@ -204,8 +212,9 @@
                     self.__on_page_changed)
 
         self.show_page(0, True)
-        self.main_window.SetSizerAndFit(self.__master_sizer)
-        self.main_window.CenterOnScreen ()
+        if not self.__embedded:
+            self.main_window.SetSizerAndFit(self.__master_sizer)
+            self.main_window.CenterOnScreen ()
 
 
     # -------------------------------------------------------------------------

Modified: trunk/gnue-navigator/src/UIwx26.py
===================================================================
--- trunk/gnue-navigator/src/UIwx26.py  2007-01-12 14:40:06 UTC (rev 9286)
+++ trunk/gnue-navigator/src/UIwx26.py  2007-01-12 14:41:28 UTC (rev 9287)
@@ -81,8 +81,9 @@
 
     self.splitter= wx.SplitterWindow(self.frame,-1)
 
-    self.panel1 = wx.Window(self.splitter, -1)
-    self.panel2 = wx.Window(self.splitter, -1)
+    self.panel1 = wx.Panel(self.splitter)
+    self.panel2 = wx.Panel(self.splitter)
+    self.form_panel = wx.Panel(self.splitter)
 
     # Panel 1 contents
     self.panel1.SetBackgroundColour(wx.WHITE)
@@ -174,11 +175,6 @@
       object.run()
 
 
-  def handleError(self, mesg):
-    dlg = wx.MessageDialog(self.frame, "Error: %s!" % mesg, "Error", wx.OK)
-    dlg.ShowModal()
-    dlg.Destroy()
-
   def runForm(self, step, parameters = {}):
     # parameters are now part of the step in _params
     
@@ -201,12 +197,7 @@
 
   def _runForm(self, formfile, parameters):
 
-    try:
       #
-      # Create the instance
-      #
-      
-      #
       # TODO: The next if looks funny because the code above results in
       #
       #  disable splash:  1 <type 'int'>
@@ -214,27 +205,22 @@
       #
       # And I don't have time to dig ATM
       #
-      # FIXME: Embedding forms does not work.
-      # if gConfigNav('embedForms') == "%s" % True: 
-      if False:
-        instance = GFInstance(self,connections=self.connections,
-                              ui=ui,disableSplash=1,
-                              parentContainer=self.panel2)
+      self.splitter.ReplaceWindow(self.panel2, self.form_panel)
+      if gConfigNav('embedForms') == "%s" % True: 
+        instance = GFInstance(self,
+                connections=self.connections,
+                ui=ui,
+                disableSplash=1,
+                parentContainer={'frame': self.frame, 'panel': 
self.form_panel})
       else:
         instance = GFInstance(id(self),
-           connections=self.connections,
+           connections=self.connections, parentContainer=None,
            ui=ui, disableSplash=1)
 
       self._formInstances[id(self)] = instance
       instance.run_from_file(formfile, parameters)
 
-    except IOError, mesg:
-      self.handleError(_("Unable to open file\n\n     %s")%mesg)
 
-    except Exceptions.ConnectionError, mesg:
-      self.handleError(\
-         _("Error while communicating with datasource.\n\n       %s") %mesg)
-
   def setTitle(self, title):
     self.frame.SetTitle ("GNUe Navigator: %s (form)" % title )
 





reply via email to

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