X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=StatusWindow.py;h=c6c29cfdedc61c74683962e93fddefbbcd952691;hb=8a09be35138b09a6871dfc323a9e6e3a825a286b;hp=e1f4db9a956d963fdb50024a537683a6f2ca485f;hpb=1094f7f4581a9c0074294004bbd8c934593a54d5;p=pygdb.git diff --git a/StatusWindow.py b/StatusWindow.py index e1f4db9..c6c29cf 100644 --- a/StatusWindow.py +++ b/StatusWindow.py @@ -7,45 +7,72 @@ __author__ = "shuber" import gtk import vte -import WatchesFrame import BreakpointsFrame +import WatchesFrame + class StatusWindow (gtk.Window): - def __init__(self, mainctrlwnd, debugger, quitonclose=True): + def __init__(self, mainctrlwnd, debugger): gtk.Window.__init__(self) - self.set_screen(mainctrlwnd.get_screen()) - + self.debugger = debugger + self.set_border_width(5) self.set_title("Status") self.set_default_size(400,600) + self.connect("destroy", lambda *w: gtk.main_quit()) - if quitonclose: - self.connect("destroy", lambda *w: gtk.main_quit()) + vbox = gtk.VBox(False, 5) + self.add(vbox) + self.status = gtk.Label("Not Running") + vbox.pack_start(self.status, False, False) + self.paned1 = gtk.VPaned() + vbox.add(self.paned1) + + #Adding the frames + self.frames = [] + self.frames += [WatchesFrame.WatchesFrame(debugger)] + self.frames += [BreakpointsFrame.BreakpointsFrame(debugger)] + self.paned1.add1(self.frames[0]) + self.paned1.add2(self.frames[1]) #Register callback function for new positions - self.mainctrlwnd = mainctrlwnd + #and update the values mainctrlwnd.newPosCbs += [self.updateValues] + self.show_all() - vbox = gtk.VBox(False, 5) - self.add(vbox) - self.status = gtk.Label("Not Running") - vbox.pack_start(self.status, False, False) - vpaned = gtk.VPaned() - vbox.add(vpaned) + def applyConfiguration(self, conf): - self.watchesFrame = WatchesFrame.WatchesFrame(debugger) - vpaned.add1(self.watchesFrame) + w = conf.findInt("statuswnd-width") + h = conf.findInt("statuswnd-height") + paned1 = conf.findInt("statuswnd-paned1") - self.breakpointsFrame = BreakpointsFrame.BreakpointsFrame(debugger) - vpaned.add2(self.breakpointsFrame) + if w!=None and h!=None: + self.resize(w,h) + if paned1!=None: + self.paned1.set_position(paned1) - self.show_all() + + while not self.debugger.isActive(): + gtk.main_iteration() + + for f in self.frames: + f.applyConfiguration(conf) + + + def fillConfiguration(self, conf): + + conf.addInt("statuswnd-width", self.get_size()[0]) + conf.addInt("statuswnd-height", self.get_size()[1]) + conf.addInt("statuswnd-paned1", self.paned1.get_position()) + + for f in self.frames: + f.fillConfiguration(conf) def updateValues(self, pos): @@ -56,7 +83,7 @@ class StatusWindow (gtk.Window): file, lineno = pos self.status.set_text("%s:%s" % (file, lineno)) - self.watchesFrame.updateValues() - self.breakpointsFrame.updateValues() + for f in self.frames: + f.updateValues(pos)