X-Git-Url: https://git.sthu.org/?p=pygdb.git;a=blobdiff_plain;f=StatusWindow.py;h=3209fed5b94e69141518965cfc87363c7dc938e1;hp=e021fed1a18b2f4c1b26d901ffbca4ac5e1786d2;hb=0296b6d5afe20a15764842873917bf1d6aa34b77;hpb=c90feb4c530cdb4e5abbfac044fea74d88975775 diff --git a/StatusWindow.py b/StatusWindow.py index e021fed..3209fed 100644 --- a/StatusWindow.py +++ b/StatusWindow.py @@ -12,15 +12,16 @@ import vte import DbgTerminal import BreakpointsFrame +import PositionFrame import WatchesFrame class StatusWindow (gtk.Window): - def __init__(self, mainctrlwnd, debugger): - + def __init__(self, debugger): gtk.Window.__init__(self) + self.debugger = debugger self.set_border_width(5) @@ -28,31 +29,29 @@ class StatusWindow (gtk.Window): self.set_default_size(400,600) self.connect("destroy", DbgTerminal.quitHandler) + + #Vbox container of frames vbox = gtk.VBox(False, 5) self.add(vbox) - hbox = gtk.HBox(False, 5) - vbox.pack_start(hbox, False, False) + + #Adding the frames + self.frames = [] + self.frames += [PositionFrame.PositionFrame(debugger), \ + WatchesFrame.WatchesFrame(debugger), \ + BreakpointsFrame.BreakpointsFrame(debugger) ] - self.viewBtn = gtk.Button("View") - self.viewBtn.connect("clicked", self.viewBtnClicked) - hbox.pack_start(self.viewBtn, False, False) - self.status = gtk.Label("Not Running") - hbox.pack_start(self.status, False, False) + #First paned window self.paned1 = gtk.VPaned() vbox.add(self.paned1) + #Second one + self.paned2 = gtk.VPaned() + self.paned1.add2(self.paned2) - #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 - #and update the values - mainctrlwnd.newPosCbs += [self.updateValues] + self.paned1.add1(self.frames[1]) + self.paned2.add1(self.frames[2]) + self.paned2.add2(self.frames[0]) self.show_all() @@ -62,11 +61,14 @@ class StatusWindow (gtk.Window): w = conf.findInt("statuswnd-width") h = conf.findInt("statuswnd-height") paned1 = conf.findInt("statuswnd-paned1") + paned2 = conf.findInt("statuswnd-paned2") if w!=None and h!=None: self.resize(w,h) if paned1!=None: self.paned1.set_position(paned1) + if paned2!=None: + self.paned2.set_position(paned2) while not self.debugger.isActive(): @@ -81,38 +83,8 @@ class StatusWindow (gtk.Window): conf.addInt("statuswnd-width", self.get_size()[0]) conf.addInt("statuswnd-height", self.get_size()[1]) conf.addInt("statuswnd-paned1", self.paned1.get_position()) + conf.addInt("statuswnd-paned2", self.paned2.get_position()) for f in self.frames: f.fillConfiguration(conf) - - def updateValues(self, pos): - - if pos == None: - self.status.set_text("Exited") - else: - file, lineno = pos - self.status.set_text("%s:%s" % (file, lineno)) - - for f in self.frames: - f.updateValues(pos) - - - def viewBtnClicked(self, btn): - - status = self.status.get_label().strip() - rx = re.compile("\S+:\d+") - - #It is a path - if rx.search(status): - try: - [file,lineno] = string.split(status,":") - lineno = int(lineno) - - os.system('gvim -R -c ":%d" %s' % (lineno,file)) - - except OSError: - pass - - -