Index: guiframe/gui_manager.py
===================================================================
--- guiframe/gui_manager.py	(revision 0bd2cd86ad08ec786c9b13caf85b61c1bf24e88d)
+++ guiframe/gui_manager.py	(revision dd66fbd26cdd76d4c4483e33947537788beb4e5c)
@@ -264,6 +264,7 @@
         """
         # Status bar
-        self.sb = self.CreateStatusBar()
-        self.SetStatusText("")
+        from statusbar import MyStatusBar
+        self.sb = MyStatusBar(self,wx.ID_ANY)
+        self.SetStatusBar(self.sb)
 
         # Add panel
@@ -615,5 +616,13 @@
             Display status message
         """
-        self.SetStatusText(str(evt.status))
+        self.sb.clear_gauge( msg="")
+        mythread=None
+        mytype= None
+        if hasattr(evt, "curr_thread"):
+            mythread= evt.curr_thread
+        if hasattr(evt, "type"):
+            mytype= evt.type
+        self.sb.set_status( type=mytype,msg=str(evt.status),thread=mythread)
+       
 
         
Index: guiframe/local_perspectives/plotting/Plotter1D.py
===================================================================
--- guiframe/local_perspectives/plotting/Plotter1D.py	(revision 9a585d01f17990dcd3d4cedb59a1a9708cbe22fd)
+++ guiframe/local_perspectives/plotting/Plotter1D.py	(revision dd66fbd26cdd76d4c4483e33947537788beb4e5c)
@@ -226,10 +226,12 @@
                 #print "cyllinder before adding error", self.plots[self.graph.selected_plottable].x
                 wx.EVT_MENU(self, id, self._on_add_errors)
-            elif self.plots[self.graph.selected_plottable].__class__.__name__=="Data1D":
-                id = wx.NewId()
-                slicerpop.Append(id, '&Remove errors From data')
-                #print "panel scale before  ",self.xLabel, self.yLabel
-                #print "cyllinder before adding error", self.plots[self.graph.selected_plottable].x
-                wx.EVT_MENU(self, id, self._on_remove_errors)
+                """
+                elif self.plots[self.graph.selected_plottable].__class__.__name__=="Data1D":
+                    id = wx.NewId()
+                    slicerpop.Append(id, '&Remove errors From data')
+                    #print "panel scale before  ",self.xLabel, self.yLabel
+                    #print "cyllinder before adding error", self.plots[self.graph.selected_plottable].x
+                    wx.EVT_MENU(self, id, self._on_remove_errors)
+                """
             else:
                 id = wx.NewId()
@@ -285,5 +287,5 @@
             self.graph.delete_plottable(self.plots[self.graph.selected_plottable])
             
-            self.graph.add_plottable(new_plot,color)
+            self.graph.add(new_plot,color)
             # transforming the view of the new data into the same of the previous data
             self._onEVT_FUNC_PROPERTY()
@@ -332,8 +334,8 @@
             new_plot.yaxis(label, unit)
             #print "panel scale ",self.xLabel, self.yLabel
-            color=self.graph.plottables[self.plots[self.graph.selected_plottable]]
+            #color=self.graph.plottables[self.plots[self.graph.selected_plottable]]
             self.graph.delete_plottable(self.plots[self.graph.selected_plottable])
-            self.graph.add_plottable(new_plot, color)
-            #self.graph.add(new_plot)
+            #self.graph.add_plottable(new_plot, color)
+            self.graph.add(new_plot)
             # transforming the view of the new data into the same of the previous data
             self._onEVT_FUNC_PROPERTY()
Index: guiframe/model_thread.py
===================================================================
--- guiframe/model_thread.py	(revision ca88b2eded93a483ace5848e87ba70d47c410949)
+++ guiframe/model_thread.py	(revision dd66fbd26cdd76d4c4483e33947537788beb4e5c)
@@ -125,5 +125,6 @@
         
         wx.PostEvent(self.parent, StatusEvent(status="Plot \
-        updating ... %g sec" % time))
+        #updating ... %g sec" % time,curr_thread=self,type="update"))
+        
         
     def compute(self):
@@ -135,8 +136,9 @@
         center_x=0
         center_y=0
-       
+        
         self.starttime = time.time()
+        print "model_thread"
         wx.PostEvent(self.parent, StatusEvent(status=\
-                       "Start Drawing model %g " % self.starttime))
+                    "Start Drawing model %g " % (self.starttime)))
         lx = len(self.x)
        
Index: guiframe/statusbar.py
===================================================================
--- guiframe/statusbar.py	(revision dd66fbd26cdd76d4c4483e33947537788beb4e5c)
+++ guiframe/statusbar.py	(revision dd66fbd26cdd76d4c4483e33947537788beb4e5c)
@@ -0,0 +1,102 @@
+import wx
+class MyStatusBar(wx.StatusBar):
+    def __init__(self,*args,**kargs):
+         wx.StatusBar.__init__(self, *args,**kargs)
+         #Layout of status bar
+         self.SetFieldsCount(3) 
+         width,height = self.GetSize()
+         self.gauge = wx.Gauge(self, size=(-1,height-4),style= wx.GA_PROGRESSBAR)
+         rect = self.GetFieldRect(1)
+         self.gauge.SetPosition((rect.x+ 10, rect.y-2))
+         self.gauge.Hide()
+         #Progess 
+
+         self.progress = 0       # Current progress value of the bar 
+         self.timer = wx.Timer(self,-1) 
+         self.thread= None
+         #self.Bind(wx.EVT_TIMER,self.OnTimer, self.timer) 
+         
+    def OnTimer(self, evt): 
+        """Update the progress bar while the timer is running 
+        @param evt: wx.EVT_TIMER 
+  
+        """ 
+        # Check stop flag that can be set from non main thread 
+        if self.thread!=None and self.thread.isrunning():
+            self.set_progress()
+       
+    def set_progress(self):
+        self.gauge.Show(True)
+        if self.timer.IsRunning(): 
+            while(self.thread.isrunning()):
+                self.progress += 1
+                
+                # Update the Rqnge if it has changed 
+                #if self.range >= 0 and self.range != self.gauge.GetRange(): 
+                #    self.gauge.SetRange(self.range) 
+      
+                # Update the progress value if it is less than the range 
+                if self.progress < self.gauge.GetRange()-20: 
+                    self.gauge.SetValue(int(self.progress)) 
+                else:
+                    self.gauge.SetValue(70) 
+                    self.progress =0
+                    self.timer.Stop()
+                    #self.gauge.Hide()
+            self.timer.Stop()
+            self.gauge.SetValue(90) 
+            self.progress =0
+            
+    def clear_gauge(self, msg=""):
+        self.timer.Stop()
+        self.SetStatusText( str(msg), 0)
+        self.progress =0
+        self.gauge.SetValue(0)
+        self.gauge.Hide() 
+         
+    def set_status(self, type=None,msg="", thread=None):
+        if type==None:
+            self.SetStatusText(str(msg),0)
+        
+        else:
+            self.thread= thread
+            if self.thread !=None:
+                self.gauge.Show(True)
+                if type.lower()=="start":
+                    self.SetStatusText( str(msg), 0)
+                    #self.timer.Start(1000)
+                    #print "went here"
+                    #self.set_progress()
+                    self.progress +=10
+                    if self.progress < self.gauge.GetRange()-20:
+                        self.gauge.SetValue(int(self.progress)) 
+                if  type.lower()=="update":
+                    
+                    self.timer.Stop()
+                    self.SetStatusText( str(msg), 0)
+                    self.progress +=10
+                    if self.progress < self.gauge.GetRange()-20:
+                        self.gauge.SetValue(int(self.progress)) 
+            if type.lower()=="stop":
+                print "it is complete"
+                self.gauge.Show(True)
+                self.timer.Stop()
+                self.SetStatusText( str(msg), 0)
+                self.progress =0
+                self.gauge.SetValue(90) 
+                    
+            
+   
+    
+if __name__ == "__main__":
+     app = wx.PySimpleApp()
+     frame= wx.Frame(None,wx.ID_ANY,'test frame')
+     statusBar= MyStatusBar(frame,wx.ID_ANY)
+     frame.SetStatusBar(statusBar)
+     frame.Show(True)
+     statusBar.SetStatusText("status text..")
+     statusBar.set_status( "progress","progessing")
+     
+     
+     app.MainLoop()
+
