Index: src/sans/guiframe/gui_manager.py
===================================================================
--- src/sans/guiframe/gui_manager.py	(revision 4d7e5d5d07befc55897280f1b2404082e4538ab7)
+++ src/sans/guiframe/gui_manager.py	(revision 3d6b00ca1376315412217c78e00703d59b7751ad)
@@ -298,4 +298,5 @@
         # Welcome panel
         self.defaultPanel = None
+        self.welcome_panel_class = None
         #panel on focus
         self.panel_on_focus = None
@@ -758,4 +759,9 @@
         # set tool bar
         self._setup_tool_bar()
+
+        # Create the menu bar. To be filled later.
+        # WX 3.0 needs us to create the menu bar first.
+        self._menubar = wx.MenuBar()
+        self.SetMenuBar(self._menubar)
         # Set up the layout
         self._setup_layout()
@@ -770,5 +776,5 @@
                                              str(self._input_file))
             msg += str(sys.exc_value) + '\n'
-            print msg
+            logging.error(msg)
         if self._data_panel is not None and len(self.plugins) > 0:
             self._data_panel.fill_cbox_analysis(self.plugins)
@@ -932,18 +938,5 @@
 
         return plugins
-    
-    def set_welcome_panel(self, panel_class):
-        """
-        Sets the default panel as the given welcome panel 
-        
-        :param panel_class: class of the welcome panel to be instantiated
-        
-        """
-        win = MDIFrame(self, None, 'None', (100, 200))
-        self.defaultPanel = panel_class(win, -1, style=wx.RAISED_BORDER)
-        win.set_panel(self.defaultPanel)
-        self.defaultPanel.set_frame(win)
-        win.Show(False)
-        
+
     def _get_panels_size(self, p):
         """
@@ -986,21 +979,25 @@
                 ps = item.get_panels(self)
                 panels.extend(ps)
-       
-        # Show a default panel with some help information
-        # It also sets the size of the application windows
-        #TODO: Use this for splash screen
-        #if self.defaultPanel is None:
-        #    self.defaultPanel = DefaultPanel(self, -1, style=wx.RAISED_BORDER)
-        # add a blank default panel always present 
+        
+        # Set up welcome panel
+        #TODO: this needs serious simplification
+        if self.welcome_panel_class is not None:
+            welcome_panel = MDIFrame(self, None, 'None', (100, 200))
+            self.defaultPanel = self.welcome_panel_class(welcome_panel, -1, style=wx.RAISED_BORDER)
+            welcome_panel.set_panel(self.defaultPanel)
+            self.defaultPanel.set_frame(welcome_panel)
+            welcome_panel.Show(False)
+        
         self.panels["default"] = self.defaultPanel
-        w, h = self._get_panels_size(self.defaultPanel)
-        frame = self.defaultPanel.get_frame()
-        frame.SetSize((self._window_width, self._window_height))
         size_t_bar = 70
-        if not IS_WIN:
-            if IS_LINUX:
-                size_t_bar = 115
-            frame.SetPosition((0, mac_pos_y + size_t_bar))
-        frame.Show(True)
+        if IS_LINUX:
+            size_t_bar = 115
+        if self.defaultPanel is not None:
+            w, h = self._get_panels_size(self.defaultPanel)
+            frame = self.defaultPanel.get_frame()
+            frame.SetSize((self._window_width, self._window_height))
+            if not IS_WIN:
+                frame.SetPosition((0, mac_pos_y + size_t_bar))
+            frame.Show(True)
         #add data panel 
         win = MDIFrame(self, None, 'None', (100, 200))
@@ -1219,5 +1216,4 @@
         """
         # Menu
-        self._menubar = wx.MenuBar()
         self._add_menu_file()
         self._add_menu_edit()
@@ -1229,5 +1225,4 @@
         #self._add_menu_window()
         self._add_help_menu()
-        self.SetMenuBar(self._menubar)
         
     def _setup_tool_bar(self):
@@ -1238,5 +1233,5 @@
         # The legacy code doesn't work well for wx 3.0
         # but the old code produces better results with wx 2.8
-        if wx.VERSION_STRING >= '3.0.0.0':
+        if not IS_WIN and wx.VERSION_STRING >= '3.0.0.0':
             sizer = wx.BoxSizer(wx.VERTICAL)
             sizer.Add(self._toolbar, 0, wx.EXPAND)
@@ -1679,5 +1674,5 @@
             caption = self.panels[ID].window_caption
         except:
-            print "delete_panel: No such plot id as %s" % ID
+            logging.error("delete_panel: No such plot id as %s" % ID)
             return
         if ID in self.panels.keys():
@@ -1717,8 +1712,5 @@
             log_msg += "load: %s\n" % str(basename)
             log_msg += "Try Data opening...."
-            logging.info(log_msg)
-            print log_msg
-            #self.load_complete(output=output, error_message=error_message,
-            #       message=log_msg, path=path)    
+            logging.error(log_msg)
             return
         
@@ -1799,5 +1791,5 @@
             log_msg += "load: %s\n" % str(path)
             log_msg += "Try File opening ...."
-            print log_msg
+            logging.error(log_msg)
             return
         log_msg = ''
@@ -1805,5 +1797,5 @@
         error_message = ""
         try:
-            print "Loading Data...:\n" + str(path) + "\n"
+            logging.info("Loading Data...:\n" + str(path) + "\n")
             temp =  self.loader.load(path)
             if temp.__class__.__name__ == "list":
@@ -1820,5 +1812,5 @@
             error_message += " Data from cmd:\n %s\n" % str(path)
             error_message += str(sys.exc_value) + "\n"
-            print error_message
+            logging.error(error_message)
  
     def load_folder(self, path):
@@ -1841,5 +1833,5 @@
             error_message += " Data folder from cmd:\n %s\n" % str(path)
             error_message += str(sys.exc_value) + "\n"
-            print error_message 
+            logging.error(error_message)
             
     def _on_open_state_application(self, event):
@@ -2130,5 +2122,5 @@
                     dialog.Show(True) 
                 except:
-                    print "Error in _onTutorial: %s" % sys.exc_value
+                    logging.error("Error in _onTutorial: %s" % sys.exc_value)
                     try:
                         #in case when the pdf default set other than acrobat
@@ -3302,5 +3294,5 @@
         
         """
-        self.frame.set_welcome_panel(panel_class)
+        self.frame.welcome_panel_class = panel_class
         
     def add_perspective(self, perspective):
@@ -3418,15 +3410,11 @@
     Frame for panels
     """
-    def __init__(self, parent, panel, title="Untitled",
-                size=(300,200), *args, **kwds):
+    def __init__(self, parent, panel, title="Untitled", size=(300,200)):
         """
         comment
         :param parent: parent panel/container
         """
-        kwds['size']= size
-        kwds['title']= title
-        kwds['style'] = MDI_STYLE
         # Initialize the Frame object
-        CHILD_FRAME.__init__(self, parent, *args, **kwds)
+        CHILD_FRAME.__init__(self, parent=parent, id=wx.ID_ANY, title=title, size=size)
         self.parent = parent
         self.name = "Untitled"
