updating feature request list
[pygdb.git] / MainControlWindow.py
index 5ea0fb8f4cb38e7f77081a52159d614fff2ace32..f5f47cd5472cf18345a52124ad453c1887c66848 100644 (file)
@@ -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
@@ -51,6 +51,8 @@ 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)
 
@@ -63,9 +65,12 @@ class MainControlWindow (gtk.Window):
 
                #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 +79,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)
-
-