Index: calculatorview/src/sans/perspectives/calculator/calculator.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/calculator.py	(revision ae84427fb413d3ecd63bda31ee6158118adebce0)
+++ calculatorview/src/sans/perspectives/calculator/calculator.py	(revision 7aa1685bdbe55f2dff2b3022ebd551debc7ad233)
@@ -113,6 +113,7 @@
                                                     manager=self, data=[],
                                                     title="Data Editor")
-            self.put_icon(self.data_edit_frame)
-        self.data_edit_frame.Show(False)    
+            #self.put_icon(self.data_edit_frame)
+        else:
+            self.data_edit_frame.Show(False)    
         self.data_edit_frame.Show(True)
               
@@ -126,6 +127,7 @@
                                                 manager=self, 
                                                 title="Data Operation")
-            self.put_icon(self.data_operator_frame)
-        self.data_operator_frame.Show(False)
+            #self.put_icon(self.data_operator_frame)
+        else:
+            self.data_operator_frame.Show(False)
         self.data_operator_frame.panel.set_panel_on_focus(None)
         self.data_operator_frame.Show(True)
@@ -137,7 +139,8 @@
         if self.kiessig_frame == None:
             frame = KiessigWindow(parent=self.parent, manager=self)
-            self.put_icon(frame)
+            #self.put_icon(frame)
             self.kiessig_frame = frame
-        self.kiessig_frame.Show(False)
+        else:
+            self.kiessig_frame.Show(False)
         self.kiessig_frame.Show(True) 
         
@@ -147,8 +150,10 @@
         """
         if self.sld_frame == None:
-            frame = SldWindow(base=self.parent, manager=self)
-            self.put_icon(frame)
+            frame = SldWindow(parent=self.parent, 
+                                  base=self.parent, manager=self)
+            #self.put_icon(frame)
             self.sld_frame = frame
-        self.sld_frame.Show(False)
+        else:
+            self.sld_frame.Show(False)
         self.sld_frame.Show(True) 
     
@@ -158,8 +163,10 @@
         """
         if self.cal_md_frame == None:
-            frame = DensityWindow(base=self.parent, manager=self)
-            self.put_icon(frame)
+            frame = DensityWindow(parent=self.parent, 
+                                  base=self.parent, manager=self)
+            #self.put_icon(frame)
             self.cal_md_frame = frame
-        self.cal_md_frame.Show(False)
+        else:
+            self.cal_md_frame.Show(False)
         self.cal_md_frame.Show(True) 
               
@@ -170,7 +177,8 @@
         if self.cal_slit_frame == None:
             frame = SlitLengthCalculatorWindow(parent=self.parent, manager=self)  
-            self.put_icon(frame)
+            #self.put_icon(frame)
             self.cal_slit_frame = frame 
-        self.cal_slit_frame.Show(False)     
+        else:
+            self.cal_slit_frame.Show(False)     
         self.cal_slit_frame.Show(True)
         
@@ -183,5 +191,6 @@
             self.put_icon(frame)
             self.cal_res_frame = frame
-        self.cal_res_frame.Show(False)
+        else:
+            self.cal_res_frame.Show(False)
         self.cal_res_frame.Show(True) 
         
@@ -192,7 +201,8 @@
         if self.gen_frame == None:
             frame = SasGenWindow(parent=self.parent, manager=self)
-            self.put_icon(frame)
+            #self.put_icon(frame)
             self.gen_frame = frame
-        self.gen_frame.Show(False)
+        else:
+            self.gen_frame.Show(False)
         self.gen_frame.Show(True) 
 
@@ -225,5 +235,6 @@
             self.put_icon(frame)
             self.py_frame = frame
-        self.py_frame.Show(False)
+        else:
+            self.py_frame.Show(False)
         self.py_frame.Show(True) 
         
Index: calculatorview/src/sans/perspectives/calculator/data_operator.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/data_operator.py	(revision ae84427fb413d3ecd63bda31ee6158118adebce0)
+++ calculatorview/src/sans/perspectives/calculator/data_operator.py	(revision 7aa1685bdbe55f2dff2b3022ebd551debc7ad233)
@@ -934,13 +934,14 @@
         self.draw()
         
-class DataOperatorWindow(wx.Frame):
+class DataOperatorWindow(wx.MDIChildFrame):
     def __init__(self, parent, manager, *args, **kwds):
         kwds["size"] = (PANEL_WIDTH, PANEL_HEIGTH)
-        wx.Frame.__init__(self, parent, *args, **kwds)
+        wx.MDIChildFrame.__init__(self, parent, *args, **kwds)
         self.parent = parent
         self.manager = manager
         self.panel = DataOperPanel(parent=self)
         wx.EVT_CLOSE(self, self.OnClose)
-        self.CenterOnParent()
+        #self.CenterOnParent()
+        self.SetPosition((0, 0))
         self.Show()
     
Index: calculatorview/src/sans/perspectives/calculator/density_panel.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/density_panel.py	(revision ae84427fb413d3ecd63bda31ee6158118adebce0)
+++ calculatorview/src/sans/perspectives/calculator/density_panel.py	(revision 7aa1685bdbe55f2dff2b3022ebd551debc7ad233)
@@ -371,5 +371,5 @@
         return output.lstrip().rstrip()  
         
-class DensityWindow(wx.Frame):
+class DensityWindow(wx.MDIChildFrame):
     """
     """
@@ -381,5 +381,5 @@
         kwds['title'] = title
         kwds['size'] = size
-        wx.Frame.__init__(self, parent, *args, **kwds)
+        wx.MDIChildFrame.__init__(self, parent, *args, **kwds)
         """
         """
@@ -387,5 +387,6 @@
         self.panel = DensityPanel(self, base=base)
         self.Bind(wx.EVT_CLOSE, self.on_close)
-        self.Centre()
+        #self.Centre()
+        self.SetPosition((0, 0))
         self.Show(True)
     
Index: calculatorview/src/sans/perspectives/calculator/gen_scatter_panel.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/gen_scatter_panel.py	(revision ae84427fb413d3ecd63bda31ee6158118adebce0)
+++ calculatorview/src/sans/perspectives/calculator/gen_scatter_panel.py	(revision 7aa1685bdbe55f2dff2b3022ebd551debc7ad233)
@@ -1791,5 +1791,5 @@
         return flag
 
-class SasGenWindow(wx.Frame):
+class SasGenWindow(wx.MDIChildFrame):
     """
     GEN SAS main window
@@ -1800,8 +1800,14 @@
         Init
         """
+        if parent != None:
+            # set max size depending up on client size
+            wth, hgt = parent.get_client_size()
+            if hgt < size[1]:
+                size = (size[0], hgt)
+            if wth < size[0]:
+                size = (wth, size[1])
         kwds['size'] = size
         kwds['title'] = title
-        
-        wx.Frame.__init__(self, parent, *args, **kwds)
+        wx.MDIChildFrame.__init__(self, parent, *args, **kwds)
         self.parent = parent
         self.base = manager
@@ -1822,5 +1828,6 @@
         
         self.build_panels()
-        self.Centre()
+        #self.Centre()
+        self.SetPosition((0, 0))
         self.Show(True)
     
@@ -2004,4 +2011,7 @@
         """
         """
+        from sans.guiframe.events import NewPlotEvent 
+        wx.PostEvent(self.parent, NewPlotEvent(plot=plot, title=title))
+        """
         frame = PlotFrame(self, -1, 'testView', self.scale2d)
         add_icon(self.parent, frame)
@@ -2010,5 +2020,5 @@
         frame.Show(True)
         frame.SetFocus()
-
+        """
     def set_schedule_full_draw(self, panel=None, func='del'):  
         """
Index: calculatorview/src/sans/perspectives/calculator/kiessig_calculator_panel.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/kiessig_calculator_panel.py	(revision ae84427fb413d3ecd63bda31ee6158118adebce0)
+++ calculatorview/src/sans/perspectives/calculator/kiessig_calculator_panel.py	(revision 7aa1685bdbe55f2dff2b3022ebd551debc7ad233)
@@ -190,5 +190,5 @@
         self.on_compute(event)
              
-class KiessigWindow(wx.Frame):
+class KiessigWindow(wx.MDIChildFrame):
     def __init__(self, parent=None, manager=None, 
                  title="Kiessig Thickness Calculator",
@@ -196,10 +196,11 @@
         kwds['title'] = title
         kwds['size'] = size
-        wx.Frame.__init__(self, parent, *args, **kwds)
+        wx.MDIChildFrame.__init__(self, parent, *args, **kwds)
         self.parent = parent
         self.manager = manager
         self.panel = KiessigThicknessCalculatorPanel(parent=self)
         self.Bind(wx.EVT_CLOSE, self.on_close)
-        self.Centre()
+        #self.Centre()
+        self.SetPosition((0, 0))
         self.Show(True)
         
Index: calculatorview/src/sans/perspectives/calculator/resolution_calculator_panel.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/resolution_calculator_panel.py	(revision ae84427fb413d3ecd63bda31ee6158118adebce0)
+++ calculatorview/src/sans/perspectives/calculator/resolution_calculator_panel.py	(revision 7aa1685bdbe55f2dff2b3022ebd551debc7ad233)
@@ -823,4 +823,5 @@
         if self.image != None:
             #_pylab_helpers.Gcf.set_active(self.fm)
+            _pylab_helpers.Gcf.figs = {}
             # Clear the image before redraw
             self.image.clf()
@@ -1389,5 +1390,5 @@
             raise 
         
-class ResolutionWindow(wx.Frame):
+class ResolutionWindow(wx.MDIChildFrame):
     """
     Resolution Window
@@ -1396,12 +1397,20 @@
                  title = "SANS Resolution Estimator",
                  size=(PANEL_WIDTH * 2, PANEL_HEIGHT), *args, **kwds):
+        if parent != None:
+            # set max size depending up on client size
+            wth, hgt = parent.get_client_size()
+            if hgt < size[1]:
+                size = (size[0], hgt)
+            if wth < size[0]:
+                size = (wth, size[1])
         kwds['title'] = title
         kwds['size'] = size
-        wx.Frame.__init__(self, parent=None, *args, **kwds)
+        wx.MDIChildFrame.__init__(self, parent=parent, *args, **kwds)
         self.parent = parent
         self.manager = manager
         self.panel = ResolutionCalculatorPanel(parent=self)
         self.Bind(wx.EVT_CLOSE, self.OnClose)
-        self.Centre()
+        self.SetPosition((0, 0))
+        #self.Center()
         self.Show(True)
     
Index: calculatorview/src/sans/perspectives/calculator/sld_panel.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/sld_panel.py	(revision ae84427fb413d3ecd63bda31ee6158118adebce0)
+++ calculatorview/src/sans/perspectives/calculator/sld_panel.py	(revision 7aa1685bdbe55f2dff2b3022ebd551debc7ad233)
@@ -437,5 +437,5 @@
         
         
-class SldWindow(wx.Frame):
+class SldWindow(wx.MDIChildFrame):
     """
     """
@@ -447,5 +447,5 @@
         kwds['title'] = title
         kwds['size'] = size
-        wx.Frame.__init__(self, parent, *args, **kwds)
+        wx.MDIChildFrame.__init__(self, parent, *args, **kwds)
         """
         """
@@ -455,5 +455,6 @@
         self.panel = SldPanel(self, base=base)
         self.Bind(wx.EVT_CLOSE, self.on_close)
-        self.Centre()
+        #self.Centre()
+        self.SetPosition((0, 0))
         self.Show(True)
     
Index: calculatorview/src/sans/perspectives/calculator/slit_length_calculator_panel.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/slit_length_calculator_panel.py	(revision ae84427fb413d3ecd63bda31ee6158118adebce0)
+++ calculatorview/src/sans/perspectives/calculator/slit_length_calculator_panel.py	(revision 7aa1685bdbe55f2dff2b3022ebd551debc7ad233)
@@ -251,5 +251,5 @@
     
     
-class SlitLengthCalculatorWindow(wx.Frame):
+class SlitLengthCalculatorWindow(wx.MDIChildFrame):
     """
     """
@@ -260,10 +260,11 @@
         kwds['size']= size
         kwds['title']= title
-        wx.Frame.__init__(self, parent, *args, **kwds)
+        wx.MDIChildFrame.__init__(self, parent, *args, **kwds)
         self.parent = parent
         self.manager = manager
         self.panel = SlitLengthCalculatorPanel(parent=self)
         self.Bind(wx.EVT_CLOSE, self.on_close)
-        self.Centre()
+        #self.Centre()
+        self.SetPosition((0, 0))
         self.Show(True)
 
