only load python in vimrc when opening c,cpp files
[pygdb.git] / WatchesFrame.py
index 823f79f8bf5161553f83452ee3f678ccad1d8f10..0ee6623645fa9bd285dc1f3192d7adac0e18de75 100644 (file)
@@ -9,27 +9,29 @@ import gtk
 import vte
 
 import DbgTerminal
+import StatusFrame
 
 
-class WatchesFrame (gtk.Frame):
+class WatchesFrame (StatusFrame.StatusFrame):
 
 
        def __init__(self, debugger):
 
-               gtk.Frame.__init__(self, "Watches")
-               self.debugger = debugger
+               StatusFrame.StatusFrame.__init__(self, debugger)
+               self.set_label("Watches")
+
+               debugger.gotActiveCallback += [self.updateValues]
 
                vbox = gtk.VBox(False, 5)
                self.add(vbox)
 
-               hbox = gtk.HButtonBox()
+               hbox = gtk.HBox()
                vbox.pack_start(hbox, False, False)
                
                self.addBtn = gtk.Button(stock=gtk.STOCK_ADD)
                self.delBtn = gtk.Button(stock=gtk.STOCK_REMOVE)
                hbox.add(self.addBtn)
                hbox.add(self.delBtn)
-               hbox.set_layout(gtk.BUTTONBOX_SPREAD)
 
                sw = gtk.ScrolledWindow()
                sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
@@ -88,31 +90,40 @@ class WatchesFrame (gtk.Frame):
                        model.set(iter, 1, res)
 
 
+       def applyConfiguration(self, conf):
+               for w in conf.watches:
+                       iter = self.model.append()
+                       self.model.set(iter, 0, w["expr"], 1, "<unkown>", 2, True)
+               self.updateValues(None, None)
+
+
+       def fillConfiguration(self, conf):
+
+               iter = self.model.get_iter_first()
+               while iter != None:
+                       expr, = self.model.get(iter, 0)
+                       conf.parseWatch(expr)
+                       iter = self.model.iter_next(iter)
 
 
        def addBtnClicked(self, btn):
                iter = self.model.append()
                self.model.set(iter, 0, "0", 1, "0", 2, True)
 
-
        def delBtnClicked(self, btn):
                selection = self.tv.get_selection()
                model, paths = selection.get_selected_rows()
 
-               for path in paths:
+               for path in reversed(paths):
                        iter = model.get_iter(path)
                        model.remove(iter)
 
-
-       def updateValues(self):
-
+       def updateValues(self, status, param):
                iter = self.model.get_iter_first()
-
                while iter != None:
-
                        expr, = self.model.get(iter, 0)
-                        res = self.debugger.getExpression(expr)
-                        self.model.set(iter, 1, res)
+                       res = self.debugger.getExpression(expr)
+                       self.model.set(iter, 1, res)
 
                        iter = self.model.iter_next(iter)