]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
WDB enhancement: Click once on a line with a class instance in the
authorSjoerd Mullender <sjoerd@acm.org>
Fri, 1 Oct 1993 14:29:45 +0000 (14:29 +0000)
committerSjoerd Mullender <sjoerd@acm.org>
Fri, 1 Oct 1993 14:29:45 +0000 (14:29 +0000)
local or global variables list and you get a window with the instance
variable of the class instance.  This list is of course automatically
kept up to date.

Lib/lib-stdwin/wdbframewin.py
Lib/stdwin/wdbframewin.py

index 9e2136560c8a121b7069d4f8ac140160e762db33..3a7f6fed4f56397f7e8874a9bed7fd35b0cd4178 100644 (file)
@@ -61,6 +61,30 @@ class FrameWindow(basewin.BaseWindow):
                        dummy = self.editor.event(WE_COMMAND, \
                                                self.win, detail)
        
+       def mouse_down(self, detail):
+               (h, v), clicks, button, mask = detail
+               i = v / stdwin.lineheight()
+               if 5 <= i < len(self.displaylist):
+                       import string
+                       name = string.splitfields(self.displaylist[i],' = ')[0]
+                       if not self.dict.has_key(name):
+                               stdwin.fleep()
+                               return
+                       value = self.dict[name]
+                       if not hasattr(value, '__dict__'):
+                               stdwin.fleep()
+                               return
+                       name = 'instance ' + `value`
+                       if self.debugger.framewindows.has_key(name):
+                               self.debugger.framewindows[name].popup()
+                       else:
+                               self.debugger.framewindows[name] = \
+                                         FrameWindow().init(self.debugger,
+                                                 self.frame, value.__dict__,
+                                                 name)
+                       return
+               stdwin.fleep()
+
        def re_eval(self):
                import string, repr
                expr = string.strip(self.editor.gettext())
index 9e2136560c8a121b7069d4f8ac140160e762db33..3a7f6fed4f56397f7e8874a9bed7fd35b0cd4178 100755 (executable)
@@ -61,6 +61,30 @@ class FrameWindow(basewin.BaseWindow):
                        dummy = self.editor.event(WE_COMMAND, \
                                                self.win, detail)
        
+       def mouse_down(self, detail):
+               (h, v), clicks, button, mask = detail
+               i = v / stdwin.lineheight()
+               if 5 <= i < len(self.displaylist):
+                       import string
+                       name = string.splitfields(self.displaylist[i],' = ')[0]
+                       if not self.dict.has_key(name):
+                               stdwin.fleep()
+                               return
+                       value = self.dict[name]
+                       if not hasattr(value, '__dict__'):
+                               stdwin.fleep()
+                               return
+                       name = 'instance ' + `value`
+                       if self.debugger.framewindows.has_key(name):
+                               self.debugger.framewindows[name].popup()
+                       else:
+                               self.debugger.framewindows[name] = \
+                                         FrameWindow().init(self.debugger,
+                                                 self.frame, value.__dict__,
+                                                 name)
+                       return
+               stdwin.fleep()
+
        def re_eval(self):
                import string, repr
                expr = string.strip(self.editor.gettext())