DebugView.st
changeset 193 8d0b4658249c
parent 189 561b4ef50d70
child 210 947f9a23b06a
--- a/DebugView.st	Wed Nov 22 17:45:38 1995 +0100
+++ b/DebugView.st	Wed Nov 22 21:58:43 1995 +0100
@@ -42,7 +42,7 @@
 !
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.50 1995-11-22 12:43:52 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.51 1995-11-22 20:58:43 cg Exp $'
 !
 
 documentation
@@ -425,6 +425,7 @@
 				'remove breakpoint'
 				'remove all trace & breakpoints'
 				'-'
+				'browse'
 				'browse class'
 				'browse class hierarchy'
 				'browse full class protocol'
@@ -461,6 +462,7 @@
 					 removeBreakpoint
 					 removeAllBreakpoints
 					 nil
+					 browse
 					 browseClass
 					 browseClassHierarchy
 					 browseFullClassProtocol
@@ -468,9 +470,9 @@
 					 senders
 					 nil
 					 inspectContext
+					 copyWalkbackText
 					 nil
 					 quickTerminate
-					 copyWalkbackText
 					 nil
 					 exit
 					)
@@ -481,9 +483,13 @@
 
     inspecting ifTrue:[
 	m notNil ifTrue:[
-	    m disableAll:#(doTraceStep removeBreakpoint).
+	    m disableAll:#(doTraceStep removeBreakpoint browse browseClass
+			   browseClassHierarchy browseFullClassProtocol
+			   implementors senders inspectContext skip).
 	].
     ]
+
+    "Modified: 22.11.1995 / 21:40:33 / cg"
 !
 
 setLabelFor:aMessage in:aProcess
@@ -1517,7 +1523,8 @@
 
     |con homeContext sel method code canAccept
      implementorClass lineNrInMethod rec m line
-     sender selSender tryVars possibleBlocks errMsg|
+     sender selSender tryVars possibleBlocks errMsg 
+     mthd cls w|
 
     contextArray notNil ifTrue:[
 	lineNr <= contextArray size ifTrue:[
@@ -1717,18 +1724,36 @@
      enable/disable some menu items
     "
     m := contextView middleButtonMenu.
-    m notNil ifTrue:[
-	m enable:#implementors.
-	m enable:#senders.
-	m enable:#inspectContext.
-	m enable:#browseClass.
+    (m notNil and:[selectedContext notNil]) ifTrue:[
+	m enableAll:#(implementors senders inspectContext skip).
 
 	(method notNil and:[method isWrapped]) ifTrue:[
 	    m enable:#removeBreakpoint.
 	] ifFalse:[
 	    m disable:#removeBreakpoint.
+	].
+
+	mthd := selectedContext method.
+	mthd notNil ifTrue:[
+	    w := mthd who.
+	].
+	m enable:#browseClass.
+	w notNil ifTrue:[
+	    cls := w at:1
+	].
+	cls notNil ifTrue:[
+	    m enableAll:#(browseClass browseClassHierarchy browseFullClassProtocol).
+	] ifFalse:[
+	    m disableAll:#(browseClass browseClassHierarchy browseFullClassProtocol).
+	].
+	(w notNil and:[(w at:2) notNil]) ifTrue:[
+	    m enable:#browse
+	] ifFalse:[
+	    m disable:#browse
 	]
     ]
+
+    "Modified: 22.11.1995 / 21:43:40 / cg"
 !
 
 destroy
@@ -1911,24 +1936,24 @@
     MessageTracer unwrapAllMethods
 !
 
+browse
+    |w|
+
+    w := selectedContext method who.
+    SystemBrowser openInClass:(w at:1) selector:(w at:2).
+
+    "Created: 22.11.1995 / 21:27:01 / cg"
+!
+
 browseClass
-    selectedContext isNil ifTrue:[
-	^ self showError:'** select a context first **'
-    ].
     SystemBrowser browseClass:(selectedContext method who at:1).
 !
 
 browseClassHierarchy
-    selectedContext isNil ifTrue:[
-	^ self showError:'** select a context first **'
-    ].
     SystemBrowser browseClassHierarchy:(selectedContext method who at:1).
 !
 
 browseFullClassProtocol
-    selectedContext isNil ifTrue:[
-	^ self showError:'** select a context first **'
-    ].
     SystemBrowser browseFullClassProtocol:(selectedContext method who at:1).
 !