Index: guiframe/dummyapp.py
===================================================================
--- guiframe/dummyapp.py	(revision 4753fc26255020c3536a5e7e6795cb5b16be90c9)
+++ guiframe/dummyapp.py	(revision 783940c15acaddeaa89e83e37d484dbde8d6e3a3)
@@ -10,5 +10,5 @@
     """
     """
-    PROG_SPLASH_PATH = None
+    #PROG_SPLASH_PATH = None
     STYLE = GUIFRAME.SINGLE_APPLICATION
     
@@ -125,2 +125,3 @@
 if __name__ == "__main__": 
     sansview = SansView()
+    
Index: guiframe/gui_manager.py
===================================================================
--- guiframe/gui_manager.py	(revision 3658717edc57de0374813bc1dc0f0f9a1a11f895)
+++ guiframe/gui_manager.py	(revision 783940c15acaddeaa89e83e37d484dbde8d6e3a3)
@@ -818,13 +818,6 @@
                                'Redo the previous action')
         wx.EVT_MENU(self, GUIFRAME_ID.REDO_ID, self.on_redo_panel)
-        #self._edit_menu.AppendSeparator()
-        #self._edit_menu.Append(GUIFRAME_ID.BOOKMARK_ID, '&Bookmark', 
-        #                       'bookmark current panel')
-        #wx.EVT_MENU(self, GUIFRAME_ID.BOOKMARK_ID, self.append_bookmark)
-        self._edit_menu.Append(GUIFRAME_ID.SAVE_ID, '&Save As', 
-                               'Save current panel into file')
-        wx.EVT_MENU(self, GUIFRAME_ID.SAVE_ID, self.on_save_panel)
         self._edit_menu.AppendSeparator()
-        self._edit_menu.Append(GUIFRAME_ID.PREVIEW_ID, '&Print Preview',
+        self._edit_menu.Append(GUIFRAME_ID.PREVIEW_ID, '&Report',
                                'Preview current panel')
         wx.EVT_MENU(self, GUIFRAME_ID.PREVIEW_ID, self.on_preview_panel)
@@ -832,17 +825,4 @@
                                'Print current panel')
         wx.EVT_MENU(self, GUIFRAME_ID.PRINT_ID, self.on_print_panel)
-        self._edit_menu.AppendSeparator()
-        self._edit_menu.Append(GUIFRAME_ID.ZOOM_ID, '&Zoom',
-                               'Zoom current panel')
-        wx.EVT_MENU(self, GUIFRAME_ID.ZOOM_ID, self.on_zoom_panel)
-        self._edit_menu.Append(GUIFRAME_ID.ZOOM_IN_ID, '&Zoom In',
-                               'Zoom in current panel')
-        wx.EVT_MENU(self, GUIFRAME_ID.ZOOM_IN_ID, self.on_zoom_in_panel)
-        self._edit_menu.Append(GUIFRAME_ID.ZOOM_OUT_ID, '&Zoom Out', 
-                               'Zoom out current panel')
-        wx.EVT_MENU(self, GUIFRAME_ID.ZOOM_OUT_ID, self.on_zoom_out_panel)
-        self._edit_menu.Append(GUIFRAME_ID.DRAG_ID, '&Drag',
-                               'Drag current panel')
-        wx.EVT_MENU(self, GUIFRAME_ID.DRAG_ID, self.on_drag_panel)
         self._edit_menu.Append(GUIFRAME_ID.RESET_ID, '&Reset', 
                                'Reset current panel')
@@ -1520,20 +1500,8 @@
             flag = self.panel_on_focus.get_redo_flag()
             self._edit_menu.Enable(GUIFRAME_ID.REDO_ID, flag)
-            #flag = self.panel_on_focus.get_bookmark_flag()
-            #self._edit_menu.Enable(GUIFRAME_ID.BOOKMARK_ID, flag)
-            flag = self.panel_on_focus.get_save_flag()
-            self._edit_menu.Enable(GUIFRAME_ID.SAVE_ID, flag)
             flag = self.panel_on_focus.get_print_flag()
             self._edit_menu.Enable(GUIFRAME_ID.PRINT_ID, flag)
             flag = self.panel_on_focus.get_preview_flag()
             self._edit_menu.Enable(GUIFRAME_ID.PREVIEW_ID, flag)
-            flag = self.panel_on_focus.get_zoom_flag()
-            self._edit_menu.Enable(GUIFRAME_ID.ZOOM_ID, flag)
-            flag = self.panel_on_focus.get_zoom_in_flag()
-            self._edit_menu.Enable(GUIFRAME_ID.ZOOM_IN_ID, flag)
-            flag = self.panel_on_focus.get_zoom_out_flag()
-            self._edit_menu.Enable(GUIFRAME_ID.ZOOM_OUT_ID, flag)
-            flag = self.panel_on_focus.get_drag_flag()
-            self._edit_menu.Enable(GUIFRAME_ID.DRAG_ID, flag)
             flag = self.panel_on_focus.get_reset_flag()
             self._edit_menu.Enable(GUIFRAME_ID.RESET_ID, flag)
@@ -1542,12 +1510,6 @@
             self._edit_menu.Enable(GUIFRAME_ID.UNDO_ID, flag)
             self._edit_menu.Enable(GUIFRAME_ID.REDO_ID, flag)
-            #self._edit_menu.Enable(GUIFRAME_ID.BOOKMARK_ID, flag)
-            self._edit_menu.Enable(GUIFRAME_ID.SAVE_ID, flag)
             self._edit_menu.Enable(GUIFRAME_ID.PRINT_ID, flag)
             self._edit_menu.Enable(GUIFRAME_ID.PREVIEW_ID, flag)
-            self._edit_menu.Enable(GUIFRAME_ID.ZOOM_ID, flag)
-            self._edit_menu.Enable(GUIFRAME_ID.ZOOM_IN_ID, flag)
-            self._edit_menu.Enable(GUIFRAME_ID.ZOOM_OUT_ID, flag)
-            self._edit_menu.Enable(GUIFRAME_ID.DRAG_ID, flag)
             self._edit_menu.Enable(GUIFRAME_ID.RESET_ID, flag)
             
@@ -1737,4 +1699,8 @@
     PROG_SPLASH_PATH = PROG_SPLASH_SCREEN
     STYLE = GUIFRAME.SINGLE_APPLICATION
+    SPLASH_WIDTH = 500
+    SPLASH_HEIGHT = 300
+    SPLASH_MAX_DISPLAY_TIME = 3000 #3 sec
+    
     def OnInit(self):
         """
@@ -1752,14 +1718,23 @@
             os.path.isfile(self.PROG_SPLASH_PATH):
             try:
-                self.display_splash_screen(parent=self.frame, path=self.PROG_SPLASH_PATH)   
+                s_screen = self.display_splash_screen(parent=self.frame, path=self.PROG_SPLASH_PATH)   
             except:
-                msg = "Cannot display splash screen\n"
-                msg += str (sys.exc_value)
-                logging.error(msg)
-        self.frame.Show(True)
+                try: 
+                    self.frame.Show()
+                except:
+                    
+                    msg = "Cannot display splash screen\n"
+                    msg += str (sys.exc_value)
+                    #raise
+                    logging.error(msg)
+        else:
+            self.frame.Show()
+        
 
         if hasattr(self.frame, 'special'):
             self.frame.special.SetCurrent()
         self.SetTopWindow(self.frame)
+        import time
+        
         return True
     
@@ -1825,5 +1800,6 @@
         return (xpos, ypos), (min(x, window_width), min(y, window_height))
     
-    def display_splash_screen(self, parent, path=PROG_SPLASH_SCREEN):
+    def display_splash_screen(self, parent, 
+                              path=PROG_SPLASH_SCREEN):
         """Displays the splash screen.  It will exactly cover the main frame."""
 
@@ -1831,5 +1807,5 @@
         x, y = parent.GetSizeTuple()
         image = wx.Image(path, wx.BITMAP_TYPE_PNG)
-        image.Rescale(x, y, wx.IMAGE_QUALITY_HIGH)
+        image.Rescale(self.SPLASH_WIDTH, self.SPLASH_HEIGHT, wx.IMAGE_QUALITY_HIGH)
         bm = image.ConvertToBitmap()
 
@@ -1843,25 +1819,27 @@
         # Note that on Linux, the timeout appears to occur immediately in which
         # case the splash screen disappears upon entering the event loop.
-        wx.SplashScreen(bitmap=bm,
-                        splashStyle=(wx.SPLASH_CENTRE_ON_PARENT|
-                                     wx.SPLASH_TIMEOUT|
-                                     wx.STAY_ON_TOP),
-                        milliseconds=4000,
+        s_screen = wx.SplashScreen(bitmap=bm,
+                         splashStyle=(wx.SPLASH_TIMEOUT|
+                                              wx.SPLASH_CENTRE_ON_SCREEN),
+                                 style=(wx.SIMPLE_BORDER|
+                                        wx.FRAME_NO_TASKBAR|
+                                        wx.STAY_ON_TOP),
+                                        
+                        milliseconds=self.SPLASH_MAX_DISPLAY_TIME,
                         parent=parent,
                         id=wx.ID_ANY)
 
-        # Keep the splash screen up a minimum amount of time for non-Windows
-        # systems.  This is a workaround for Linux and possibly MacOS that
-        # appear to ignore the splash screen timeout option.
-        if '__WXMSW__' not in wx.PlatformInfo:
-            if len(sys.argv) > 1 and '--time' in sys.argv[1:]:
-                log_time("Starting sleep of 2 secs")
-            time.sleep(2)
-
-        # A call to wx.Yield does not appear to be required.  If used on
-        # Windows, the cursor changes from 'busy' to 'ready' before the event
-        # loop is reached which is not desirable.  On Linux it seems to have
-        # no effect.
-        #wx.Yield()
+        s_screen.Bind(wx.EVT_CLOSE, self.on_close_splash_screen)
+        s_screen.Show()
+        return s_screen
+        
+        
+    def on_close_splash_screen(self, event):
+        """
+        """
+        self.frame.Show(True)
+        event.Skip()
+      
+      
 
         
Index: guiframe/gui_statusbar.py
===================================================================
--- guiframe/gui_statusbar.py	(revision bfa73ca04626e7bdf15b179da8f996199d587f40)
+++ guiframe/gui_statusbar.py	(revision 783940c15acaddeaa89e83e37d484dbde8d6e3a3)
@@ -48,5 +48,5 @@
         self.panel.set_message(status=status)
         wx.EVT_CLOSE(self, self.Close)
-        self.Show(True)
+        
         
     def set_multiple_messages(self, messages=[]):
Index: guiframe/gui_toolbar.py
===================================================================
--- guiframe/gui_toolbar.py	(revision 18ec684bd7c99ba56c4314e0c9dbd5cc3e81c3e6)
+++ guiframe/gui_toolbar.py	(revision 783940c15acaddeaa89e83e37d484dbde8d6e3a3)
@@ -38,11 +38,5 @@
         tbar_size = (22, 22)
         button_type =  wx.ITEM_NORMAL
-        save_im = GUIFRAME_ICON.SAVE_ICON
-        save_im.Rescale(tbar_size[0], tbar_size[1], wx.IMAGE_QUALITY_HIGH)
-        save_bmp = save_im.ConvertToBitmap()
-        #disable_save_bmp = clear_image(save_im).ConvertToBitmap()
-        disable_save_bmp = wx.NullBitmap
-        self.AddLabelTool(GUIFRAME_ID.SAVE_ID, 'Save', save_bmp, 
-                          disable_save_bmp,button_type, shortHelp='Save')
+      
         self.AddSeparator()
         zoom_in_im = GUIFRAME_ICON.ZOOM_IN_ICON
@@ -50,23 +44,4 @@
         zoom_in_bmp = zoom_in_im.ConvertToBitmap()
         #disable_zoom_in_bmp = clear_image(zoom_in_im).ConvertToBitmap()
-        disable_zoom_in_bmp = wx.NullBitmap
-        self.AddLabelTool(GUIFRAME_ID.ZOOM_IN_ID, 'Zoom In', zoom_in_bmp,
-                   disable_zoom_in_bmp, button_type,'Zoom In')
-        self.AddSeparator()
-        zoom_out_im = GUIFRAME_ICON.ZOOM_OUT_ICON
-        zoom_out_im.Rescale(tbar_size[0], tbar_size[1], wx.IMAGE_QUALITY_HIGH)
-        zoom_out_bmp = zoom_out_im.ConvertToBitmap()
-        #disable_zoom_out_bmp = clear_image(zoom_out_im).ConvertToBitmap()
-        disable_zoom_out_bmp = wx.NullBitmap
-        self.AddLabelTool(GUIFRAME_ID.ZOOM_OUT_ID, 'Zoom Out', zoom_out_bmp,
-                   disable_zoom_out_bmp, button_type,'Zoom Out')
-        self.AddSeparator()
-        zoom_im = GUIFRAME_ICON.ZOOM_ICON
-        zoom_im.Rescale(tbar_size[0], tbar_size[1], wx.IMAGE_QUALITY_HIGH)
-        zoom_bmp = zoom_im.ConvertToBitmap()
-        #disable_zoom_bmp = clear_image(zoom_im).ConvertToBitmap()
-        disable_zoom_bmp = wx.NullBitmap
-        self.AddLabelTool(GUIFRAME_ID.ZOOM_ID, 'Zoom', zoom_bmp,
-                   disable_zoom_bmp, button_type,'Zoom In')
         self.AddSeparator()
         reset_im = GUIFRAME_ICON.RESET_ICON
@@ -81,8 +56,4 @@
         drag_im.Rescale(tbar_size[0], tbar_size[1], wx.IMAGE_QUALITY_HIGH)
         drag_bmp = drag_im.ConvertToBitmap()
-        #disable_drag_bmp = clear_image(drag_im).ConvertToBitmap()
-        disable_drag_bmp = wx.NullBitmap
-        self.AddLabelTool(GUIFRAME_ID.DRAG_ID, 'Drag', drag_bmp,
-                   disable_drag_bmp, button_type,'Drag')
         self.AddSeparator()
         report_im = GUIFRAME_ICON.REPORT_ICON
@@ -158,14 +129,4 @@
             self.parent.Bind(wx.EVT_TOOL, self.parent.on_undo_panel,
                              id=GUIFRAME_ID.UNDO_ID)
-            self.parent.Bind(wx.EVT_TOOL, self.parent.on_save_panel,
-                             id=GUIFRAME_ID.SAVE_ID)
-            self.parent.Bind(wx.EVT_TOOL, self.parent.on_zoom_in_panel,
-                             id=GUIFRAME_ID.ZOOM_IN_ID)
-            self.parent.Bind(wx.EVT_TOOL, self.parent.on_zoom_out_panel,
-                             id=GUIFRAME_ID.ZOOM_OUT_ID)
-            self.parent.Bind(wx.EVT_TOOL, self.parent.on_zoom_panel,
-                             id=GUIFRAME_ID.ZOOM_ID)
-            self.parent.Bind(wx.EVT_TOOL, self.parent.on_drag_panel,
-                             id=GUIFRAME_ID.DRAG_ID)
             self.parent.Bind(wx.EVT_TOOL, self.parent.on_reset_panel,
                              id=GUIFRAME_ID.RESET_ID)
@@ -188,10 +149,5 @@
             self.EnableTool(GUIFRAME_ID.UNDO_ID,False)
             self.EnableTool(GUIFRAME_ID.REDO_ID, False)
-            self.EnableTool(GUIFRAME_ID.ZOOM_ID, False)
-            self.EnableTool(GUIFRAME_ID.ZOOM_IN_ID, False)
-            self.EnableTool(GUIFRAME_ID.ZOOM_OUT_ID, False)
             self.EnableTool(GUIFRAME_ID.PREVIEW_ID, False)
-            self.EnableTool(GUIFRAME_ID.SAVE_ID, False)
-            self.EnableTool(GUIFRAME_ID.DRAG_ID, False)
             self.EnableTool(GUIFRAME_ID.RESET_ID, False)
             self._bookmark_bt.Disable()
@@ -201,10 +157,5 @@
             self.EnableTool(GUIFRAME_ID.UNDO_ID, panel.get_undo_flag())
             self.EnableTool(GUIFRAME_ID.REDO_ID, panel.get_redo_flag())
-            self.EnableTool(GUIFRAME_ID.ZOOM_ID, panel.get_zoom_flag())
-            self.EnableTool(GUIFRAME_ID.ZOOM_IN_ID, panel.get_zoom_in_flag())
-            self.EnableTool(GUIFRAME_ID.ZOOM_OUT_ID, panel.get_zoom_out_flag())
             self.EnableTool(GUIFRAME_ID.PREVIEW_ID, panel.get_preview_flag())
-            self.EnableTool(GUIFRAME_ID.SAVE_ID, panel.get_save_flag())
-            self.EnableTool(GUIFRAME_ID.DRAG_ID, panel.get_drag_flag())
             self.EnableTool(GUIFRAME_ID.RESET_ID, panel.get_reset_flag())
             self._bookmark_bt.Enable(panel.get_bookmark_flag())
Index: guiframe/local_perspectives/plotting/plotting.py
===================================================================
--- guiframe/local_perspectives/plotting/plotting.py	(revision 4158af4d369d9ef9ee9ec68aab4c02c335060bdc)
+++ guiframe/local_perspectives/plotting/plotting.py	(revision 783940c15acaddeaa89e83e37d484dbde8d6e3a3)
@@ -87,7 +87,16 @@
             panel.remove_data_by_id(id=id)
             return True
-        else:
-            msg = "Panel with GROUP_ID: %s cannot be located" % str(group_id)
-            raise ValueError, msg
+        return False
+        
+    def clear_panel(self, group_id):
+        """
+        clear the graph
+        """
+        if group_id in self.plot_panels.keys():
+            panel = self.plot_panels[group_id]
+            panel.graph.reset()
+            return True
+        return False
+            
         
     def hide_panel(self, group_id):
@@ -170,6 +179,11 @@
         _, x_unit =  data.get_xaxis()
         _, y_unit =  data.get_yaxis()
-        if x_unit != panel.graph.prop["xunit"] \
-            or  y_unit != panel.graph.prop["yunit"]:
+        flag_x = (panel.graph.prop["xunit"] is not None) and \
+                    (panel.graph.prop["xunit"].strip() != "") and\
+                    (x_unit != panel.graph.prop["xunit"])
+        flag_y = (panel.graph.prop["yunit"] is not None) and \
+                    (panel.graph.prop["yunit"].strip() != "") and\
+                    (x_unit != panel.graph.prop["yunit"])
+        if (flag_x and flag_y):
             msg = "Cannot add %s" % str(data.name)
             msg += " to panel %s\n" % str(panel.window_caption)
@@ -224,4 +238,7 @@
             if event.action.lower() == 'delete':
                 return self.delete_panel(group_id)
+            if event.action.lower() == "clear":
+                return self.clear_panel(group_id)
+            
         title = None
         if hasattr(event, 'title'):
