DebugView.st
changeset 3269 9566fbc92617
parent 3210 f5c4ab32840e
child 3270 cd3562cffc61
equal deleted inserted replaced
3268:1e2896e1b1a1 3269:9566fbc92617
    23 		updateButton defineButton monitorToggle stepping
    23 		updateButton defineButton monitorToggle stepping
    24 		steppedContextLineno stepForReturn actualContext inWrap
    24 		steppedContextLineno stepForReturn actualContext inWrap
    25 		stackInspector steppedContext wrapperContext verboseBacktrace
    25 		stackInspector steppedContext wrapperContext verboseBacktrace
    26 		firstContext stepHow cachable currentMethod ignoreBreakpoints
    26 		firstContext stepHow cachable currentMethod ignoreBreakpoints
    27 		stepUntilEntering lastStepUntilEntering
    27 		stepUntilEntering lastStepUntilEntering
    28 		lastSelectionInReceiverInspector lastSelectionInContextInspector'
    28 		lastSelectionInReceiverInspector lastSelectionInContextInspector
       
    29 		canShowMore'
    29 	classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail
    30 	classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail
    30 		DebuggingDebugger VerboseBacktraceDefault DefaultIcon
    31 		DebuggingDebugger VerboseBacktraceDefault DefaultIcon
    31 		InitialNCHAINShown'
    32 		InitialNCHAINShown'
    32 	poolDictionaries:''
    33 	poolDictionaries:''
    33 	category:'Interface-Debugger'
    34 	category:'Interface-Debugger'
   428 
   429 
   429 defaultVerboseBacktrace:aBoolean
   430 defaultVerboseBacktrace:aBoolean
   430     VerboseBacktraceDefault := aBoolean
   431     VerboseBacktraceDefault := aBoolean
   431 
   432 
   432     "Created: 11.1.1997 / 12:14:44 / cg"
   433     "Created: 11.1.1997 / 12:14:44 / cg"
       
   434 ! !
       
   435 
       
   436 !DebugView class methodsFor:'menu specs'!
       
   437 
       
   438 menuSpec
       
   439     "This resource specification was automatically generated
       
   440      by the MenuEditor of ST/X."
       
   441 
       
   442     "Do not manually edit this!! If it is corrupted,
       
   443      the MenuEditor may not be able to read the specification."
       
   444 
       
   445     "
       
   446      MenuEditor new openOnClass:DebugView andSelector:#menuSpec
       
   447      (Menu new fromLiteralArrayEncoding:(DebugView menuSpec)) startUp
       
   448     "
       
   449 
       
   450     <resource: #menu>
       
   451 
       
   452     ^ 
       
   453      #(#Menu
       
   454         #(
       
   455          #(#MenuItem
       
   456             #label: 'Process'
       
   457             #translateLabel: true
       
   458             #submenu: 
       
   459            #(#Menu
       
   460               #(
       
   461                #(#MenuItem
       
   462                   #label: 'Continue'
       
   463                   #translateLabel: true
       
   464                   #value: #doContinue
       
   465                 )
       
   466                #(#MenuItem
       
   467                   #label: '-'
       
   468                 )
       
   469                #(#MenuItem
       
   470                   #label: 'Abort'
       
   471                   #translateLabel: true
       
   472                   #value: #doAbort
       
   473                 )
       
   474                #(#MenuItem
       
   475                   #label: '-'
       
   476                 )
       
   477                #(#MenuItem
       
   478                   #label: 'Terminate'
       
   479                   #translateLabel: true
       
   480                   #value: #doTerminate
       
   481                 )
       
   482                )
       
   483               nil
       
   484               nil
       
   485             )
       
   486           )
       
   487          #(#MenuItem
       
   488             #label: 'Class'
       
   489             #translateLabel: true
       
   490             #submenu: 
       
   491            #(#Menu
       
   492               #(
       
   493                #(#MenuItem
       
   494                   #label: 'Browse Implementing Class'
       
   495                   #translateLabel: true
       
   496                   #value: #browseImplementingClass
       
   497                   #enabled: #canBrowseImplementingClass
       
   498                 )
       
   499                #(#MenuItem
       
   500                   #label: 'Browse Receivers Class'
       
   501                   #translateLabel: true
       
   502                   #value: #browseReceiversClass
       
   503                   #enabled: #canBrowseReceiversClass
       
   504                 )
       
   505                #(#MenuItem
       
   506                   #label: '-'
       
   507                 )
       
   508                #(#MenuItem
       
   509                   #label: 'Browse Receivers Class Hierarchy'
       
   510                   #translateLabel: true
       
   511                   #value: #browseClassHierarchy
       
   512                   #enabled: #canBrowseClassHierarchy
       
   513                 )
       
   514                #(#MenuItem
       
   515                   #label: 'Browse Receivers Full Protocol'
       
   516                   #translateLabel: true
       
   517                   #value: #browseFullClassProtocol
       
   518                   #enabled: #canBrowseFullClassProtocol
       
   519                 )
       
   520                )
       
   521               nil
       
   522               nil
       
   523             )
       
   524           )
       
   525          #(#MenuItem
       
   526             #label: 'Selector'
       
   527             #translateLabel: true
       
   528             #submenu: 
       
   529            #(#Menu
       
   530               #(
       
   531                #(#MenuItem
       
   532                   #label: 'Browse Implementors...'
       
   533                   #translateLabel: true
       
   534                   #value: #browseImplementorsOf
       
   535                 )
       
   536                #(#MenuItem
       
   537                   #label: 'Browse Senders...'
       
   538                   #translateLabel: true
       
   539                   #value: #browseSendersOf
       
   540                 )
       
   541                #(#MenuItem
       
   542                   #label: '-'
       
   543                 )
       
   544                #(#MenuItem
       
   545                   #label: 'Define'
       
   546                   #translateLabel: true
       
   547                   #value: #doDefineMethod
       
   548                   #enabled: #canDefineMethod
       
   549                 )
       
   550                )
       
   551               nil
       
   552               nil
       
   553             )
       
   554           )
       
   555          #(#MenuItem
       
   556             #label: 'View'
       
   557             #translateLabel: true
       
   558             #submenu: 
       
   559            #(#Menu
       
   560               #(
       
   561                #(#MenuItem
       
   562                   #label: 'Show More'
       
   563                   #translateLabel: true
       
   564                   #value: #doShowMore
       
   565                   #enabled: #canShowMore
       
   566                 )
       
   567                #(#MenuItem
       
   568                   #label: 'Show Verbose'
       
   569                   #translateLabel: true
       
   570                   #value: #doSHowVerbose
       
   571                 )
       
   572                )
       
   573               nil
       
   574               nil
       
   575             )
       
   576           )
       
   577          #(#MenuItem
       
   578             #label: 'Breakpoint'
       
   579             #translateLabel: true
       
   580             #submenu: 
       
   581            #(#Menu
       
   582               #(
       
   583                #(#MenuItem
       
   584                   #label: 'Remove'
       
   585                   #translateLabel: true
       
   586                   #value: #doRemoveBreakPoint
       
   587                   #enabled: #canRemoveBreakpoint
       
   588                 )
       
   589                #(#MenuItem
       
   590                   #label: 'Remove All Breakpoints'
       
   591                   #translateLabel: true
       
   592                   #value: #doRemoveAllBreakPoint
       
   593                 )
       
   594                #(#MenuItem
       
   595                   #label: '-'
       
   596                 )
       
   597                #(#MenuItem
       
   598                   #label: 'Allow Breakpoints in Debugger'
       
   599                   #translateLabel: true
       
   600                   #indication: #allowBreakPointsInDebugger
       
   601                 )
       
   602                )
       
   603               nil
       
   604               nil
       
   605             )
       
   606           )
       
   607          #(#MenuItem
       
   608             #label: 'Help'
       
   609             #translateLabel: true
       
   610             #startGroup: #right
       
   611             #submenu: 
       
   612            #(#Menu
       
   613               #(
       
   614                #(#MenuItem
       
   615                   #label: 'Debuggers Documentation'
       
   616                   #translateLabel: true
       
   617                   #value: #openHTMLDocument:
       
   618                   #argument: 'tools/debugView/TOP.html'
       
   619                 )
       
   620                #(#MenuItem
       
   621                   #label: '-'
       
   622                 )
       
   623                #(#MenuItem
       
   624                   #label: 'About DebugView...'
       
   625                   #translateLabel: true
       
   626                   #value: #openAboutThisApplication
       
   627                 )
       
   628                )
       
   629               nil
       
   630               nil
       
   631             )
       
   632           )
       
   633          )
       
   634         nil
       
   635         nil
       
   636       )
   433 ! !
   637 ! !
   434 
   638 
   435 !DebugView class methodsFor:'misc'!
   639 !DebugView class methodsFor:'misc'!
   436 
   640 
   437 interestingContextFrom:aContext
   641 interestingContextFrom:aContext
   793         ]
   997         ]
   794     ].
   998     ].
   795 
   999 
   796     m := contextView middleButtonMenu.
  1000     m := contextView middleButtonMenu.
   797     m notNil ifTrue:[
  1001     m notNil ifTrue:[
       
  1002         self updateMenuItems.
       
  1003 
   798         (inspecting or:[Object abortSignal isHandled]) ifTrue:[
  1004         (inspecting or:[Object abortSignal isHandled]) ifTrue:[
   799             abortButton enable.
  1005             abortButton enable.
   800             m enable:#doAbort.
  1006             m enable:#doAbort.
   801         ] ifFalse:[
  1007         ] ifFalse:[
   802             abortButton disable.
  1008             abortButton disable.
  1350     "Modified: / 10.7.1997 / 17:15:41 / stefan"
  1556     "Modified: / 10.7.1997 / 17:15:41 / stefan"
  1351     "Modified: / 29.7.1998 / 21:48:11 / cg"
  1557     "Modified: / 29.7.1998 / 21:48:11 / cg"
  1352 !
  1558 !
  1353 
  1559 
  1354 initialize
  1560 initialize
  1355     |v panel hpanel bpanel separator img|
  1561     |menuPanel mH panel bpanel bH bpanel1 bH1 bpanel2 bH2 codePanel oldLayout v|
  1356 
  1562 
  1357     super initialize.
  1563     super initialize.
  1358 
  1564 
  1359     font := font onDevice:device.
  1565     font := font onDevice:device.
  1360 
  1566 
  1368     exitAction := nil.
  1574     exitAction := nil.
  1369     bigStep := false.
  1575     bigStep := false.
  1370     stepHow := nil.
  1576     stepHow := nil.
  1371     canContinue := false.
  1577     canContinue := false.
  1372 
  1578 
  1373     bpanel := HorizontalPanelView in:self.
  1579 "/    menuPanel := MenuPanel in:self.
       
  1580 "/    menuPanel verticalLayout:false.
       
  1581 "/    menuPanel receiver:self.
       
  1582 "/    menuPanel menu:(self pullDownMenu).
       
  1583 "/
       
  1584 "/    mH := menuPanel preferredExtent y.
       
  1585 "/    menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
       
  1586     mH := 0.
       
  1587 
       
  1588     "/ oldLayout := false.
       
  1589     oldLayout := true.
       
  1590     oldLayout ifTrue:[
       
  1591         bpanel := HorizontalPanelView in:self.
       
  1592         self initializeButtonsIn:bpanel.
       
  1593 
       
  1594         bH := bpanel preferredExtent y.
       
  1595         bpanel origin:(0.0 @ mH)
       
  1596                extent:(1.0 @ bH).
       
  1597         panel := VariableVerticalPanel
       
  1598                             origin:(0.0 @ (mH + bH))
       
  1599                             corner:(1.0 @ 1.0)
       
  1600                             in:self.
       
  1601 
       
  1602         v := self initializeContextListViewIn:panel.
       
  1603         v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
       
  1604 
       
  1605         codePanel := View in:panel.
       
  1606         v := self initializeCodeViewIn:codePanel.
       
  1607         v origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
       
  1608         codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
       
  1609 
       
  1610         v := self initializeInspectorViewsIn:panel.
       
  1611         v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
       
  1612 
       
  1613     ] ifFalse:[
       
  1614         bpanel1 := HorizontalPanelView in:self.
       
  1615         self initializeButtons1In:bpanel1.
       
  1616 
       
  1617         bH1 := bpanel1 preferredExtent y.
       
  1618         bpanel1 origin:(0.0 @ mH)
       
  1619                 extent:(1.0 @ bH1).
       
  1620         panel := VariableVerticalPanel
       
  1621                             origin:(0.0 @ (mH + bH1))
       
  1622                             corner:(1.0 @ 1.0)
       
  1623                                 in:self.
       
  1624 
       
  1625         v := self initializeContextListViewIn:panel.
       
  1626         v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
       
  1627 
       
  1628         codePanel := View in:panel.
       
  1629         bpanel2 := HorizontalPanelView in:codePanel.
       
  1630         self initializeButtons2In:bpanel2.
       
  1631 
       
  1632         bH2 := bpanel2 preferredExtent y.
       
  1633         bpanel2 origin:(0.0 @ 0.0)
       
  1634                 extent:(1.0 @ bH2).
       
  1635 
       
  1636         v := self initializeCodeViewIn:codePanel.
       
  1637         v origin:(0.0 @ bH2) corner:(1.0 @ 1.0).
       
  1638         codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
       
  1639 
       
  1640         v := self initializeInspectorViewsIn:panel.
       
  1641         v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
       
  1642     ].
       
  1643 
       
  1644     "
       
  1645      Debugger newDebugger
       
  1646     "
       
  1647 !
       
  1648 
       
  1649 initializeButtons1In:bpanel 
       
  1650     |separator|
       
  1651 
  1374     bpanel horizontalLayout:#left.
  1652     bpanel horizontalLayout:#left.
  1375     bpanel verticalLayout:#centerMax.
  1653     bpanel verticalLayout:#centerMax.
  1376     bpanel verticalSpace:ViewSpacing // 2.
  1654     bpanel verticalSpace:ViewSpacing // 2.
  1377 
  1655 
  1378     abortButton := Button
  1656     abortButton := Button 
  1379                         label:(resources at:'abort')
  1657                 label:(resources at:'abort')
  1380                         action:[abortButton turnOffWithoutRedraw. self doAbort]
  1658                 action:[
  1381                         in:bpanel.
  1659                     abortButton turnOffWithoutRedraw.
  1382 
  1660                     self doAbort
       
  1661                 ]
       
  1662                 in:bpanel.
  1383     separator := View extent:(10 @ 5) in:bpanel.
  1663     separator := View extent:(10 @ 5) in:bpanel.
  1384     separator borderWidth:0; level:0.
  1664     separator borderWidth:0; level:0.
  1385     continueButton := Button
  1665 
  1386                         label:(resources at:'continue')
  1666     continueButton := Button 
  1387                         action:[continueButton turnOffWithoutRedraw. self doContinue]
  1667                 label:(resources at:'continue')
  1388                         in:bpanel.
  1668                 action:[
       
  1669                     continueButton turnOffWithoutRedraw.
       
  1670                     self doContinue
       
  1671                 ]
       
  1672                 in:bpanel.
  1389 
  1673 
  1390     separator := View extent:(10 @ 5) in:bpanel.
  1674     separator := View extent:(10 @ 5) in:bpanel.
  1391     separator borderWidth:0; level:0.
  1675     separator borderWidth:0; level:0.
  1392     returnButton := Button
  1676 
  1393                         label:(resources at:'return')
  1677     terminateButton := Button 
  1394                         action:[returnButton turnOff. self doReturn]
  1678                 label:(resources at:'terminate')
  1395                         in:bpanel.
  1679                 action:[
  1396 
  1680                     terminateButton turnOffWithoutRedraw.
  1397     restartButton := Button
  1681                     self doTerminate
  1398                         label:(resources at:'restart')
  1682                 ]
  1399                         action:[restartButton turnOff. self doRestart]
  1683                 in:bpanel.
  1400                         in:bpanel.
  1684 !
  1401 
  1685 
       
  1686 initializeButtons2In:bpanel 
       
  1687     |separator|
       
  1688 
       
  1689     bpanel horizontalLayout:#left.
       
  1690     bpanel verticalLayout:#centerMax.
       
  1691     bpanel verticalSpace:ViewSpacing // 2.
       
  1692 
       
  1693     returnButton := Button 
       
  1694                 label:(resources at:'return')
       
  1695                 action:[
       
  1696                     returnButton turnOff.
       
  1697                     self doReturn
       
  1698                 ]
       
  1699                 in:bpanel.
       
  1700     restartButton := Button 
       
  1701                 label:(resources at:'restart')
       
  1702                 action:[
       
  1703                     restartButton turnOff.
       
  1704                     self doRestart
       
  1705                 ]
       
  1706                 in:bpanel.
  1402 
  1707 
  1403     separator := View extent:(10 @ 5) in:bpanel.
  1708     separator := View extent:(10 @ 5) in:bpanel.
  1404     separator borderWidth:0; level:0.
  1709     separator borderWidth:0; level:0.
  1405 
  1710 
  1406     nextButton := Button
  1711     nextButton := Button 
  1407                         label:(resources at:'next')
  1712                 label:(resources at:'next')
  1408                         action:[stepButton turnOff. self doNext]
  1713                 action:[
  1409                         in:bpanel.
  1714                     stepButton turnOff.
  1410 
  1715                     self doNext
       
  1716                 ]
       
  1717                 in:bpanel.
       
  1718     stepButton := Button 
       
  1719                 label:(resources at:'step')
       
  1720                 action:[
       
  1721                     stepButton turnOff.
       
  1722                     self doStep
       
  1723                 ]
       
  1724                 in:bpanel.
  1411 "/ cg:
  1725 "/ cg:
  1412 "/ I disabled the stepIn / stepOut buttons - for now.
  1726 "/ I disabled the stepIn / stepOut buttons - for now.
  1413 "/ they do not work relyable with inlined blocks yet.
  1727 "/ they do not work relyable with inlined blocks yet.
  1414 "/
  1728 "/
       
  1729 
  1415 
  1730 
  1416 "/    img := Image fromFile:'bitmaps/stepIn.xpm'.
  1731 "/    img := Image fromFile:'bitmaps/stepIn.xpm'.
  1417 "/    img isNil ifTrue:[
  1732 "/    img isNil ifTrue:[
  1418 "/        img := (resources at:'next')
  1733 "/        img := (resources at:'next')
  1419 "/    ].
  1734 "/    ].
  1438 "/    nextOutButton := Button
  1753 "/    nextOutButton := Button
  1439 "/                        label:img
  1754 "/                        label:img
  1440 "/                        action:[stepButton turnOff. self doNextOut]
  1755 "/                        action:[stepButton turnOff. self doNextOut]
  1441 "/                        in:bpanel.
  1756 "/                        in:bpanel.
  1442 
  1757 
  1443     stepButton := Button
  1758     sendButton := Button 
  1444                         label:(resources at:'step')
  1759                 label:(resources at:'send')
  1445                         action:[stepButton turnOff. self doStep]
  1760                 action:[
  1446                         in:bpanel.
  1761                     sendButton turnOff.
  1447     sendButton := Button
  1762                     self doSend
  1448                         label:(resources at:'send')
  1763                 ]
  1449                         action:[sendButton turnOff. self doSend]
  1764                 in:bpanel.
  1450                         in:bpanel.
       
  1451 
       
  1452     separator := View extent:(30 @ 5) in:bpanel.
  1765     separator := View extent:(30 @ 5) in:bpanel.
  1453     separator borderWidth:0; level:0.
  1766     separator borderWidth:0; level:0.
  1454     terminateButton := Button
  1767 
  1455                         label:(resources at:'terminate')
  1768     defineButton := Button 
  1456                         action:[terminateButton turnOffWithoutRedraw. self doTerminate]
  1769                 label:(resources at:'define')
  1457                         in:bpanel.
  1770                 action:[
  1458 
  1771                     defineButton turnOffWithoutRedraw.
  1459 
  1772                     self doDefine
       
  1773                 ]
       
  1774                 in:bpanel.
       
  1775     defineButton beInvisible
       
  1776 !
       
  1777 
       
  1778 initializeButtonsIn:bpanel 
       
  1779     |separator|
       
  1780 
       
  1781     bpanel horizontalLayout:#left.
       
  1782     bpanel verticalLayout:#centerMax.
       
  1783     bpanel verticalSpace:ViewSpacing // 2.
       
  1784 
       
  1785     abortButton := Button 
       
  1786                 label:(resources at:'abort')
       
  1787                 action:[
       
  1788                     abortButton turnOffWithoutRedraw.
       
  1789                     self doAbort
       
  1790                 ]
       
  1791                 in:bpanel.
       
  1792     separator := View extent:(10 @ 5) in:bpanel.
       
  1793     separator borderWidth:0; level:0.
       
  1794 
       
  1795     continueButton := Button 
       
  1796                 label:(resources at:'continue')
       
  1797                 action:[
       
  1798                     continueButton turnOffWithoutRedraw.
       
  1799                     self doContinue
       
  1800                 ]
       
  1801                 in:bpanel.
       
  1802 
       
  1803     separator := View extent:(10 @ 5) in:bpanel.
       
  1804     separator borderWidth:0; level:0.
       
  1805 
       
  1806     returnButton := Button 
       
  1807                 label:(resources at:'return')
       
  1808                 action:[
       
  1809                     returnButton turnOff.
       
  1810                     self doReturn
       
  1811                 ]
       
  1812                 in:bpanel.
       
  1813     restartButton := Button 
       
  1814                 label:(resources at:'restart')
       
  1815                 action:[
       
  1816                     restartButton turnOff.
       
  1817                     self doRestart
       
  1818                 ]
       
  1819                 in:bpanel.
       
  1820 
       
  1821     separator := View extent:(10 @ 5) in:bpanel.
       
  1822     separator borderWidth:0; level:0.
       
  1823 
       
  1824     nextButton := Button 
       
  1825                 label:(resources at:'next')
       
  1826                 action:[
       
  1827                     stepButton turnOff.
       
  1828                     self doNext
       
  1829                 ]
       
  1830                 in:bpanel.
       
  1831     stepButton := Button 
       
  1832                 label:(resources at:'step')
       
  1833                 action:[
       
  1834                     stepButton turnOff.
       
  1835                     self doStep
       
  1836                 ]
       
  1837                 in:bpanel.
       
  1838 "/ cg:
       
  1839 "/ I disabled the stepIn / stepOut buttons - for now.
       
  1840 "/ they do not work relyable with inlined blocks yet.
       
  1841 "/
       
  1842 
       
  1843 
       
  1844 "/    img := Image fromFile:'bitmaps/stepIn.xpm'.
       
  1845 "/    img isNil ifTrue:[
       
  1846 "/        img := (resources at:'next')
       
  1847 "/    ].
       
  1848 "/    nextButton := Button
       
  1849 "/                        label:img
       
  1850 "/                        action:[stepButton turnOff. self doNext]
       
  1851 "/                        in:bpanel.
       
  1852 "/
       
  1853 "/    img := Image fromFile:'bitmaps/stepOver.xpm'.
       
  1854 "/    img isNil ifTrue:[
       
  1855 "/        img := (resources at:'over')
       
  1856 "/    ].
       
  1857 "/    nextOverButton := Button
       
  1858 "/                        label:img
       
  1859 "/                        action:[stepButton turnOff. self doNextOver]
       
  1860 "/                        in:bpanel.
       
  1861 "/
       
  1862 "/    img := Image fromFile:'bitmaps/stepOut.xpm'.
       
  1863 "/    img isNil ifTrue:[
       
  1864 "/        img := (resources at:'out')
       
  1865 "/    ].
       
  1866 "/    nextOutButton := Button
       
  1867 "/                        label:img
       
  1868 "/                        action:[stepButton turnOff. self doNextOut]
       
  1869 "/                        in:bpanel.
       
  1870 
       
  1871     sendButton := Button 
       
  1872                 label:(resources at:'send')
       
  1873                 action:[
       
  1874                     sendButton turnOff.
       
  1875                     self doSend
       
  1876                 ]
       
  1877                 in:bpanel.
  1460     separator := View extent:(30 @ 5) in:bpanel.
  1878     separator := View extent:(30 @ 5) in:bpanel.
  1461     separator borderWidth:0; level:0.
  1879     separator borderWidth:0; level:0.
  1462     defineButton := Button
  1880 
  1463                         label:(resources at:'define')
  1881     terminateButton := Button 
  1464                         action:[defineButton turnOffWithoutRedraw. self doDefine]
  1882                 label:(resources at:'terminate')
  1465                         in:bpanel.
  1883                 action:[
  1466     defineButton beInvisible.
  1884                     terminateButton turnOffWithoutRedraw.
  1467 
  1885                     self doTerminate
  1468     bpanel origin:(0.0 @ 0.0)
  1886                 ]
  1469            extent:(1.0 @ (bpanel preferredExtent y)).
  1887                 in:bpanel.
  1470 
  1888     separator := View extent:(30 @ 5) in:bpanel.
  1471     panel := VariableVerticalPanel
  1889     separator borderWidth:0; level:0.
  1472                         origin:(0.0 @ bpanel height)
  1890 
  1473                         corner:(1.0 @ 1.0)
  1891     defineButton := Button 
  1474                             in:self.
  1892                 label:(resources at:'define')
       
  1893                 action:[
       
  1894                     defineButton turnOffWithoutRedraw.
       
  1895                     self doDefine
       
  1896                 ]
       
  1897                 in:bpanel.
       
  1898     defineButton beInvisible
       
  1899 !
       
  1900 
       
  1901 initializeCodeViewIn:panel
       
  1902     |v|
       
  1903 
       
  1904     v := HVScrollableView 
       
  1905                 for:CodeView 
       
  1906                 miniScrollerH:true
       
  1907                 miniScrollerV:false
       
  1908                 in:panel.
       
  1909 
       
  1910 "/    v autoHideScrollBars:true.
       
  1911     codeView := v scrolledView.
       
  1912 
       
  1913     ^ v
       
  1914 !
       
  1915 
       
  1916 initializeContextListViewIn:panel
       
  1917     |v|
  1475 
  1918 
  1476     v := HVScrollableView 
  1919     v := HVScrollableView 
  1477                 for:SelectionInListView 
  1920                 for:SelectionInListView 
  1478                 miniScrollerH:true
  1921                 miniScrollerH:true
  1479                 miniScrollerV:false
  1922                 miniScrollerV:false
  1480                 in:panel.
  1923                 in:panel.
  1481     v autoHideHorizontalScrollBar:true.
  1924     v autoHideHorizontalScrollBar:true.
  1482     v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
       
  1483 
  1925 
  1484     contextView := v scrolledView.
  1926     contextView := v scrolledView.
  1485     contextView action:[:lineNr | self showSelection:lineNr].
  1927     contextView action:[:lineNr | self showSelection:lineNr].
  1486     contextView doubleClickAction:[:line | self browse].
  1928     contextView doubleClickAction:[:line | self browseImplementingClass].
  1487     contextView selectConditionBlock:[:line | self checkSelectionChangeAllowed:line].
  1929     contextView selectConditionBlock:[:line | self checkSelectionChangeAllowed:line].
  1488 
  1930 
  1489     v := HVScrollableView 
  1931     ^ v
  1490                 for:CodeView 
  1932 !
  1491                 miniScrollerH:true
  1933 
  1492                 miniScrollerV:false
  1934 initializeInspectorViewsIn:panel
  1493                 in:panel.
  1935     |hpanel|
  1494     v origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
       
  1495 "/    v autoHideScrollBars:true.
       
  1496     codeView := v scrolledView.
       
  1497 
  1936 
  1498     hpanel := VariableHorizontalPanel in:panel.
  1937     hpanel := VariableHorizontalPanel in:panel.
  1499     hpanel origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
       
  1500 
  1938 
  1501     receiverInspector := InspectorView
  1939     receiverInspector := InspectorView
  1502                                 origin:(0.0 @ 0.0) corner:(0.5 @ 1.0)
  1940                                 origin:(0.0 @ 0.0) corner:(0.5 @ 1.0)
  1503                                     in:hpanel.
  1941                                     in:hpanel.
  1504     receiverInspector label:'receiver'.
  1942     receiverInspector label:'receiver'.
  1506     contextInspector := ContextInspectorView
  1944     contextInspector := ContextInspectorView
  1507                                 origin:(0.5 @ 0.0) corner:(1.0 @ 1.0)
  1945                                 origin:(0.5 @ 0.0) corner:(1.0 @ 1.0)
  1508                                     in:hpanel.
  1946                                     in:hpanel.
  1509     contextInspector label:'context'.
  1947     contextInspector label:'context'.
  1510 
  1948 
  1511     "Modified: / 29.7.1998 / 21:56:51 / cg"
  1949     ^ hpanel
  1512 !
  1950 !
  1513 
  1951 
  1514 initializeMiddleButtonMenu
  1952 initializeMiddleButtonMenu
  1515     <resource: #programMenu >
  1953     <resource: #programMenu >
  1516 
  1954 
  1565                     ).
  2003                     ).
  1566         ].
  2004         ].
  1567 
  2005 
  1568         items := items , #(
  2006         items := items , #(
  1569                     ('-'                                                        )
  2007                     ('-'                                                        )
  1570                     ('Browse (implementing class)'      browse                  )
  2008                     ('Browse (implementing class)'      browseImplementingClass )
  1571                     ('Browse (receivers class)'         browseClass             )
  2009                     ('Browse (receivers class)'         browseReceiversClass    )
  1572                     ('Browse class hierarchy'           browseClassHierarchy    )
  2010                     ('Browse class hierarchy'           browseClassHierarchy    )
  1573                     ('Browse full class protocol'       browseFullClassProtocol )
  2011                     ('Browse full class protocol'       browseFullClassProtocol )
  1574                     ('Implementors'                     browseImplementors      )
  2012                     ('Implementors'                     browseImplementors      )
  1575                     ('Implementors of...'               browseImplementorsOf    )
  2013                     ('Implementors of...'               browseImplementorsOf    )
  1576                     ('Senders'                          browseSenders           )
  2014                     ('Senders'                          browseSenders           )
  1599 
  2037 
  1600     contextView middleButtonMenu:m. 
  2038     contextView middleButtonMenu:m. 
  1601 
  2039 
  1602     inspecting ifTrue:[
  2040     inspecting ifTrue:[
  1603         m notNil ifTrue:[
  2041         m notNil ifTrue:[
  1604             m disableAll:#(doTraceStep removeBreakpoint browse browseClass
  2042             m disableAll:#(doTraceStep removeBreakpoint browseImplementingClass browseReceiversClass
  1605                            browseClassHierarchy browseFullClassProtocol
  2043                            browseClassHierarchy browseFullClassProtocol
  1606                            browseImplementors browseSenders inspectContext skip doStepOut).
  2044                            browseImplementors browseSenders inspectContext skip doStepOut).
  1607         ].
  2045         ].
  1608     ]
  2046     ].
       
  2047     self updateMenuItems
  1609 
  2048 
  1610     "Modified: / 29.10.1997 / 03:40:16 / cg"
  2049     "Modified: / 29.10.1997 / 03:40:16 / cg"
  1611 !
  2050 !
  1612 
  2051 
  1613 postRealize
  2052 postRealize
  1623                 priority:((inspectedProcess priority + 2 min:16) max:9).
  2062                 priority:((inspectedProcess priority + 2 min:16) max:9).
  1624         ]
  2063         ]
  1625     ]
  2064     ]
  1626 
  2065 
  1627     "Created: 24.7.1997 / 18:17:44 / cg"
  2066     "Created: 24.7.1997 / 18:17:44 / cg"
       
  2067 !
       
  2068 
       
  2069 pullDownMenu
       
  2070     "return the top (pullDown) menu"
       
  2071 
       
  2072     <resource: #programMenu>
       
  2073 
       
  2074     |m|
       
  2075 
       
  2076     m := self class menuSpec.
       
  2077     m := m decodeAsLiteralArray.
       
  2078     m receiver:self.
       
  2079     m findGuiResourcesIn:self.
       
  2080     ^ m.
  1628 !
  2081 !
  1629 
  2082 
  1630 reinitialize
  2083 reinitialize
  1631     "/ redefined - since the debugView runs on top of
  2084     "/ redefined - since the debugView runs on top of
  1632     "/ the debuggee, there would be no event loop for me.
  2085     "/ the debuggee, there would be no event loop for me.
  2264             ] forkAt:(Processor activePriority - 1)
  2717             ] forkAt:(Processor activePriority - 1)
  2265     ]
  2718     ]
  2266 
  2719 
  2267 !
  2720 !
  2268 
  2721 
  2269 browse
  2722 browseClass
       
  2723     "browse the reveivers class (of the selected contexts message)"
       
  2724 
       
  2725     |cls sel|
       
  2726 
       
  2727     selectedContext isNil ifTrue:[^ self].
       
  2728 
       
  2729     cls := selectedContext receiver class.
       
  2730     sel := selectedContext selector.
       
  2731     (cls implements:sel) ifFalse:[
       
  2732         sel := nil
       
  2733     ].
       
  2734     cls browserClass openInClass:cls selector:sel.
       
  2735 
       
  2736     "Modified: / 3.2.1998 / 20:23:36 / cg"
       
  2737 !
       
  2738 
       
  2739 browseClassHierarchy
       
  2740     "browse the reveivers classHierarchy (of the selected contexts message)"
       
  2741 
       
  2742     |cls mthd|
       
  2743 
       
  2744     selectedContext isNil ifTrue:[^ self].
       
  2745 
       
  2746     mthd := selectedContext method.
       
  2747     mthd isNil ifTrue:[
       
  2748         cls := selectedContext receiver class
       
  2749     ] ifFalse:[
       
  2750         cls := mthd containingClass.
       
  2751     ].
       
  2752     cls browserClass browseClassHierarchy:cls.
       
  2753 
       
  2754     "Modified: / 3.2.1998 / 20:23:40 / cg"
       
  2755 !
       
  2756 
       
  2757 browseFullClassProtocol
       
  2758     "browse the reveivers full protocol (of the selected contexts message)"
       
  2759 
       
  2760     |cls mthd|
       
  2761 
       
  2762     selectedContext isNil ifTrue:[^ self].
       
  2763 
       
  2764     mthd := selectedContext method.
       
  2765     mthd isNil ifTrue:[
       
  2766         cls := selectedContext receiver class
       
  2767     ] ifFalse:[
       
  2768         cls := mthd containingClass.
       
  2769     ].
       
  2770     cls browserClass browseFullClassProtocol:cls.
       
  2771 
       
  2772     "Modified: / 3.2.1998 / 20:23:44 / cg"
       
  2773 !
       
  2774 
       
  2775 browseImplementingClass
       
  2776     "browse the implementing class (of the selected contexts message)"
       
  2777 
  2270     |mthd who sel cls|
  2778     |mthd who sel cls|
  2271 
  2779 
  2272     selectedContext isNil ifTrue:[^ self].
  2780     selectedContext isNil ifTrue:[^ self].
  2273 
  2781 
  2274     mthd := selectedContext method.
  2782     mthd := selectedContext method.
  2288 
  2796 
  2289     "Created: / 22.11.1995 / 21:27:01 / cg"
  2797     "Created: / 22.11.1995 / 21:27:01 / cg"
  2290     "Modified: / 3.2.1998 / 19:46:40 / cg"
  2798     "Modified: / 3.2.1998 / 19:46:40 / cg"
  2291 !
  2799 !
  2292 
  2800 
  2293 browseClass
       
  2294     |cls|
       
  2295 
       
  2296     selectedContext isNil ifTrue:[^ self].
       
  2297 
       
  2298     cls := selectedContext receiver class.
       
  2299     cls browserClass openInClass:cls selector:nil.
       
  2300 
       
  2301     "Modified: / 3.2.1998 / 20:23:36 / cg"
       
  2302 !
       
  2303 
       
  2304 browseClassHierarchy
       
  2305     |cls mthd|
       
  2306 
       
  2307     selectedContext isNil ifTrue:[^ self].
       
  2308 
       
  2309     mthd := selectedContext method.
       
  2310     mthd isNil ifTrue:[
       
  2311         cls := selectedContext receiver class
       
  2312     ] ifFalse:[
       
  2313         cls := mthd containingClass.
       
  2314     ].
       
  2315     cls browserClass browseClassHierarchy:cls.
       
  2316 
       
  2317     "Modified: / 3.2.1998 / 20:23:40 / cg"
       
  2318 !
       
  2319 
       
  2320 browseFullClassProtocol
       
  2321     |cls mthd|
       
  2322 
       
  2323     selectedContext isNil ifTrue:[^ self].
       
  2324 
       
  2325     mthd := selectedContext method.
       
  2326     mthd isNil ifTrue:[
       
  2327         cls := selectedContext receiver class
       
  2328     ] ifFalse:[
       
  2329         cls := mthd containingClass.
       
  2330     ].
       
  2331     cls browserClass browseFullClassProtocol:cls.
       
  2332 
       
  2333     "Modified: / 3.2.1998 / 20:23:44 / cg"
       
  2334 !
       
  2335 
       
  2336 browseImplementors
  2801 browseImplementors
  2337     "open a browser on the implementors of the selected methods selector"
  2802     "open a browser on the implementors of the selected methods selector"
  2338 
  2803 
  2339     selectedContext isNil ifTrue:[
  2804     selectedContext isNil ifTrue:[
  2340         ^ self showError:'** select a context first **'
  2805         ^ self showError:'** select a context first **'
  2364         UserPreferences systemBrowserClass
  2829         UserPreferences systemBrowserClass
  2365             browseImplementorsOf:selector asSymbol.
  2830             browseImplementorsOf:selector asSymbol.
  2366     ]
  2831     ]
  2367 
  2832 
  2368     "Modified: / 6.2.2000 / 01:05:14 / cg"
  2833     "Modified: / 6.2.2000 / 01:05:14 / cg"
       
  2834 !
       
  2835 
       
  2836 browseReceiversClass
       
  2837     "browse the reveivers class (of the selected contexts message)"
       
  2838 
       
  2839     |cls sel|
       
  2840 
       
  2841     selectedContext isNil ifTrue:[^ self].
       
  2842 
       
  2843     cls := selectedContext receiver class.
       
  2844     sel := selectedContext selector.
       
  2845     (cls implements:sel) ifFalse:[
       
  2846         sel := nil
       
  2847     ].
       
  2848     cls browserClass openInClass:cls selector:sel.
       
  2849 
       
  2850     "Modified: / 3.2.1998 / 20:23:36 / cg"
  2369 !
  2851 !
  2370 
  2852 
  2371 browseSenders
  2853 browseSenders
  2372     "open a browser on the senders of the selected methods selector"
  2854     "open a browser on the senders of the selected methods selector"
  2373 
  2855 
  2526     "Modified: / 5.10.1998 / 13:03:47 / cg"
  3008     "Modified: / 5.10.1998 / 13:03:47 / cg"
  2527     "Modified: / 26.7.1999 / 15:38:45 / stefan"
  3009     "Modified: / 26.7.1999 / 15:38:45 / stefan"
  2528 !
  3010 !
  2529 
  3011 
  2530 doDefine
  3012 doDefine
       
  3013     |sel|
       
  3014 
       
  3015     sel := contextView selection.
       
  3016 
  2531     self 
  3017     self 
  2532         codeAccept:('%1\    self halt:''%1 is not yet implemented''.' bindWith:actualContext selector) withCRs
  3018         codeAccept:('%1\    self halt:''%1 is not yet implemented''.' bindWith:actualContext selector) withCRs
  2533         unwind:false.
  3019         unwind:false.
       
  3020 
       
  3021     self doShowSelection:sel.
       
  3022     self doRestart
  2534 !
  3023 !
  2535 
  3024 
  2536 doIgnoreBreakpoints
  3025 doIgnoreBreakpoints
  2537     ignoreBreakpoints := true.
  3026     ignoreBreakpoints := true.
  2538     self initializeMiddleButtonMenu
  3027     self initializeMiddleButtonMenu
  3019 
  3508 
  3020 busy
  3509 busy
  3021     ^ busy
  3510     ^ busy
  3022 !
  3511 !
  3023 
  3512 
       
  3513 canBrowseClassHierarchy
       
  3514     |m|
       
  3515 
       
  3516     m := contextView middleButtonMenu.
       
  3517     ^ m notNil and:[m isEnabled:#browseClassHierarchy]
       
  3518 !
       
  3519 
       
  3520 canBrowseFullClassProtocol
       
  3521     |m|
       
  3522 
       
  3523     m := contextView middleButtonMenu.
       
  3524     ^ m notNil and:[m isEnabled:#browseFullClassProtocol]
       
  3525 !
       
  3526 
       
  3527 canBrowseImplementingClass
       
  3528     |m|
       
  3529 
       
  3530     m := contextView middleButtonMenu.
       
  3531     ^ m notNil and:[m isEnabled:#browseImplementingClass]
       
  3532 !
       
  3533 
       
  3534 canBrowseReceiversClass
       
  3535     |m|
       
  3536 
       
  3537     m := contextView middleButtonMenu.
       
  3538     ^ m notNil and:[m isEnabled:#browseReceiversClass]
       
  3539 !
       
  3540 
       
  3541 canDefineMethod
       
  3542     ^ defineButton isVisible
       
  3543 !
       
  3544 
       
  3545 canRemoveBreakpoint
       
  3546     |m|
       
  3547 
       
  3548     m := contextView middleButtonMenu.
       
  3549     ^ m notNil and:[m isEnabled:#removeBreakpoint]
       
  3550 !
       
  3551 
       
  3552 canShowMore
       
  3553     ^ canShowMore
       
  3554 !
       
  3555 
  3024 exclusive:aBoolean
  3556 exclusive:aBoolean
  3025     exclusive := aBoolean
  3557     exclusive := aBoolean
  3026 !
  3558 !
  3027 
  3559 
  3028 goodSkipUntilSelector
  3560 goodSkipUntilSelector
  3138 
  3670 
  3139     m := contextView middleButtonMenu.
  3671     m := contextView middleButtonMenu.
  3140     m notNil ifTrue:[
  3672     m notNil ifTrue:[
  3141         m disable:#showMore.
  3673         m disable:#showMore.
  3142     ].
  3674     ].
       
  3675     canShowMore := false.
  3143 
  3676 
  3144     aContext isNil ifTrue:[
  3677     aContext isNil ifTrue:[
  3145         text := Array with:'** no context **'.
  3678         text := Array with:'** no context **'.
  3146         contextArray := nil.
  3679         contextArray := nil.
  3147     ] ifFalse:[
  3680     ] ifFalse:[
  3325             ]
  3858             ]
  3326         ] ifFalse:[
  3859         ] ifFalse:[
  3327             m notNil ifTrue:[
  3860             m notNil ifTrue:[
  3328                 m enable:#showMore.
  3861                 m enable:#showMore.
  3329             ].
  3862             ].
       
  3863             canShowMore := true.
  3330             text add:(resources string:'*** more walkback follows - click here to see them ***')
  3864             text add:(resources string:'*** more walkback follows - click here to see them ***')
  3331         ].
  3865         ].
  3332     ].
  3866     ].
  3333 
  3867 
  3334     contextView setList:text.
  3868     contextView setList:text.
  3340 
  3874 
  3341     m notNil ifTrue:[
  3875     m notNil ifTrue:[
  3342         m disable:#removeBreakpoint.
  3876         m disable:#removeBreakpoint.
  3343         m disable:#browseImplementors.
  3877         m disable:#browseImplementors.
  3344         m disable:#browseSenders.
  3878         m disable:#browseSenders.
  3345         m disable:#browseClass.
  3879         m disable:#browseReceiversClass.
  3346     ].
  3880     ].
  3347     ^ true
  3881     ^ true
  3348 
  3882 
  3349     "Created: / 14.12.1995 / 19:10:31 / cg"
  3883     "Created: / 14.12.1995 / 19:10:31 / cg"
  3350     "Modified: / 30.9.1998 / 21:29:07 / cg"
  3884     "Modified: / 30.9.1998 / 21:29:07 / cg"
  4004         ] do:[
  4538         ] do:[
  4005             self updateForContext:lineNr
  4539             self updateForContext:lineNr
  4006         ].
  4540         ].
  4007     ] ifFalse:[
  4541     ] ifFalse:[
  4008         self updateForContext:lineNr
  4542         self updateForContext:lineNr
  4009     ]
  4543     ].
       
  4544     self updateMenuItems
  4010 !
  4545 !
  4011 
  4546 
  4012 showSelection:lineNr
  4547 showSelection:lineNr
  4013     "user clicked on a header line - show selected code in textView.
  4548     "user clicked on a header line - show selected code in textView.
  4014      Also sent to autoselect an interesting context on entry."
  4549      Also sent to autoselect an interesting context on entry."
  4053      Also used to autoselect an interesting context on entry."
  4588      Also used to autoselect an interesting context on entry."
  4054 
  4589 
  4055     |con homeContext sel method code canAccept
  4590     |con homeContext sel method code canAccept
  4056      implementorClass lineNrInMethod rec m line
  4591      implementorClass lineNrInMethod rec m line
  4057      sender selSender tryVars possibleBlocks errMsg 
  4592      sender selSender tryVars possibleBlocks errMsg 
  4058      mthd cls mCls rCls codeSet highlighter evaluatorClass
  4593      codeSet highlighter evaluatorClass
  4059      canDefine|
  4594      canDefine|
  4060 
  4595 
  4061     canDefine := false.
  4596     canDefine := false.
  4062     currentMethod := nil.
  4597     currentMethod := nil.
  4063 
  4598 
  4392     ].
  4927     ].
  4393 
  4928 
  4394     "
  4929     "
  4395      enable/disable some menu items
  4930      enable/disable some menu items
  4396     "
  4931     "
  4397     m := contextView middleButtonMenu.
  4932     self updateMenuItems
  4398     (m notNil and:[selectedContext notNil]) ifTrue:[
       
  4399         m enableAll:#(browseImplementors browseSenders inspectContext skip skipForReturn).
       
  4400 
       
  4401         (method notNil and:[method isWrapped]) ifTrue:[
       
  4402             m enable:#removeBreakpoint.
       
  4403         ] ifFalse:[
       
  4404             m disable:#removeBreakpoint.
       
  4405         ].
       
  4406 
       
  4407         mthd := selectedContext method.
       
  4408         mthd notNil ifTrue:[
       
  4409             cls := mCls := mthd containingClass.
       
  4410         ].
       
  4411         rCls := selectedContext receiver class.
       
  4412         cls isNil ifTrue:[
       
  4413             cls := rCls
       
  4414         ].
       
  4415         cls notNil ifTrue:[
       
  4416             m enableAll:#(browse browseClass browseClassHierarchy browseFullClassProtocol).
       
  4417             rCls == mCls ifTrue:[
       
  4418                 m disable:#browseClass
       
  4419             ].
       
  4420             mCls isNil ifTrue:[
       
  4421                 m disable:#browse
       
  4422             ]
       
  4423 
       
  4424         ] ifFalse:[
       
  4425             m disableAll:#(browse browseClass browseClassHierarchy browseFullClassProtocol).
       
  4426         ].
       
  4427     ]
       
  4428 
  4933 
  4429     "Created: / 14.8.1997 / 20:15:00 / cg"
  4934     "Created: / 14.8.1997 / 20:15:00 / cg"
  4430     "Modified: / 13.11.1998 / 23:19:35 / cg"
  4935     "Modified: / 13.11.1998 / 23:19:35 / cg"
       
  4936 !
       
  4937 
       
  4938 updateMenuItems
       
  4939     |m mthd cls mCls rCls|
       
  4940 
       
  4941     "
       
  4942      enable/disable some menu items
       
  4943     "
       
  4944     m := contextView middleButtonMenu.
       
  4945     m notNil ifTrue:[
       
  4946         m disable:#removeBreakpoint.
       
  4947         canShowMore ifFalse:[
       
  4948             m disable:#showMore
       
  4949         ].
       
  4950 
       
  4951         selectedContext notNil ifTrue:[
       
  4952             m enableAll:#(browseImplementors browseSenders inspectContext skip skipForReturn).
       
  4953 
       
  4954             mthd := selectedContext method.
       
  4955             mthd notNil ifTrue:[
       
  4956                 cls := mCls := mthd containingClass.
       
  4957                 mthd isBreakpointed ifTrue:[
       
  4958                     m enable:#removeBreakpoint.
       
  4959                 ]
       
  4960             ].
       
  4961             rCls := selectedContext receiver class.
       
  4962             cls isNil ifTrue:[
       
  4963                 cls := rCls
       
  4964             ].
       
  4965             cls notNil ifTrue:[
       
  4966                 m enableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
       
  4967                 rCls == mCls ifTrue:[
       
  4968                     m disable:#browseReceiversClass
       
  4969                 ].
       
  4970                 mCls isNil ifTrue:[
       
  4971                     m disable:#browseImplementingClass
       
  4972                 ]
       
  4973 
       
  4974             ] ifFalse:[
       
  4975                 m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
       
  4976             ].
       
  4977         ] ifFalse:[
       
  4978             m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
       
  4979         ]
       
  4980     ]
  4431 ! !
  4981 ! !
  4432 
  4982 
  4433 !DebugView class methodsFor:'documentation'!
  4983 !DebugView class methodsFor:'documentation'!
  4434 
  4984 
  4435 version
  4985 version
  4436     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.283 2001-09-26 09:57:05 cg Exp $'
  4986     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.284 2001-10-08 14:16:22 cg Exp $'
  4437 ! !
  4987 ! !
  4438 DebugView initialize!
  4988 DebugView initialize!