X-Git-Url: https://git.sthu.org/?p=pygdb.git;a=blobdiff_plain;f=MainControlWindow.py;h=54fbac9a1ce174f781ffa7aa54ec69d0330c362c;hp=5ea0fb8f4cb38e7f77081a52159d614fff2ace32;hb=HEAD;hpb=973cf63f2347aa83edb9654d3566eaf66526d6b9 diff --git a/MainControlWindow.py b/MainControlWindow.py index 5ea0fb8..54fbac9 100644 --- a/MainControlWindow.py +++ b/MainControlWindow.py @@ -22,8 +22,8 @@ class MainControlWindow (gtk.Window): gtk.Window.__init__(self) self.connect("destroy", DbgTerminal.quitHandler ) - #Callbacks for new positions - self.newPosCbs = [] + dbgterm.gotActiveCallback += [self.enableButtons] + dbgterm.gotInactiveCallback += [self.disableButtons] #Set terminals self.dbgterm = dbgterm @@ -41,7 +41,7 @@ class MainControlWindow (gtk.Window): #Button box hbtnbox = gtk.HBox(False, spacing=5) #hbtnbox.set_layout(gtk.BUTTONBOX_START) - vbox.pack_start(hbtnbox) + vbox.pack_start(hbtnbox, expand=False) self.runBtn = gtk.Button("Run") hbtnbox.add(self.runBtn) @@ -51,21 +51,38 @@ class MainControlWindow (gtk.Window): hbtnbox.add(self.stepoverBtn) self.stepinBtn = gtk.Button("Step In") hbtnbox.add(self.stepinBtn) + self.stepoutBtn = gtk.Button("Step Out") + hbtnbox.add(self.stepoutBtn) self.quitBtn = gtk.Button("Quit") hbtnbox.add(self.quitBtn) #Vertical pane for terminals vpaned = gtk.VPaned() - vbox.pack_start(vpaned, True, True) - vpaned.add(self.dbgterm) - vpaned.add(self.clientioterm) + vbox.pack_start(vpaned) + + #Debugger terminal + hbox = gtk.HBox(False, 0) + vpaned.pack1(hbox, resize=True) + scrollbar = gtk.VScrollbar(dbgterm.get_adjustment()) + hbox.pack_start(dbgterm) + hbox.pack_start(scrollbar, expand=False) + + #Client I/O terminal + hbox = gtk.HBox(False, 0) + vpaned.pack2(hbox) + scrollbar = gtk.VScrollbar(self.clientioterm.get_adjustment()) + hbox.pack_start(self.clientioterm) + hbox.pack_start(scrollbar, expand=False) #Install handlers self.runBtnHandler = self.runBtn.connect('clicked', self.runBtnClicked) - self.continueBtnHandler = self.continueBtn.connect('clicked', self.continueBtnClicked) - self.stepoverBtnHandler = self.stepoverBtn.connect('clicked', self.stepoverBtnClicked) + self.continueBtnHandler = self.continueBtn.connect('clicked', \ + self.continueBtnClicked) + self.stepoverBtnHandler = self.stepoverBtn.connect('clicked', \ + self.stepoverBtnClicked) self.stepinBtnHandler = self.stepinBtn.connect('clicked', self.stepinBtnClicked) + self.stepoutBtnHandler = self.stepoutBtn.connect('clicked', self.stepoutBtnClicked) self.quitBtnHandler = self.quitBtn.connect('clicked', self.quitBtnClicked) #Show the window @@ -74,49 +91,36 @@ class MainControlWindow (gtk.Window): def runBtnClicked(self, btn): - self.disableButtons() pos = self.dbgterm.setRun() - self.newSourcePosition(pos) - self.enableButtons() def continueBtnClicked(self, btn): - self.disableButtons() pos = self.dbgterm.setContinue() - self.newSourcePosition(pos) - self.enableButtons() def stepoverBtnClicked(self, btn): - self.disableButtons() pos = self.dbgterm.setStepover() - self.newSourcePosition(pos) - self.enableButtons() def stepinBtnClicked(self, btn): - self.disableButtons() pos = self.dbgterm.setStepin() - self.newSourcePosition(pos) - self.enableButtons() + + def stepoutBtnClicked(self, btn): + pos = self.dbgterm.setStepout() def quitBtnClicked(self, btn): self.dbgterm.setQuit() - def disableButtons(self): + def disableButtons(self, *w): self.runBtn.handler_block(self.runBtnHandler) self.continueBtn.handler_block(self.continueBtnHandler) self.stepoverBtn.handler_block(self.stepoverBtnHandler) self.stepinBtn.handler_block(self.stepinBtnHandler) + self.stepoutBtn.handler_block(self.stepoutBtnHandler) self.quitBtn.handler_block(self.quitBtnHandler) - def enableButtons(self): + def enableButtons(self, *w): self.runBtn.handler_unblock(self.runBtnHandler) self.continueBtn.handler_unblock(self.continueBtnHandler) self.stepoverBtn.handler_unblock(self.stepoverBtnHandler) self.stepinBtn.handler_unblock(self.stepinBtnHandler) + self.stepoutBtn.handler_unblock(self.stepoutBtnHandler) self.quitBtn.handler_unblock(self.quitBtnHandler) - def newSourcePosition(self, pos): - #Call the callbacks - for cb in self.newPosCbs: - cb(pos) - -