Tools__ViewTreeApplication.st
author anharman
Tue, 03 Mar 2020 12:23:31 +0100
changeset 3870 dc8e882c27ce
parent 3867 dde568e1aae8
child 3877 a83ee9732d8f
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2748
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
     1
"
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
     2
 COPYRIGHT (c) 2007 by eXept Software AG
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
     3
	      All Rights Reserved
2748
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
     4
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
     5
 This software is furnished under a license and may be used
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
     6
 only in accordance with the terms of that license and with the
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
     8
 be provided or otherwise made available to, or used by, any
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
     9
 other person.  No title to or ownership of the software is
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    10
 hereby transferred.
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    11
"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
    12
"{ Package: 'stx:libtool2' }"
87bb1815460b initial checkin
ca
parents:
diff changeset
    13
87bb1815460b initial checkin
ca
parents:
diff changeset
    14
"{ NameSpace: Tools }"
87bb1815460b initial checkin
ca
parents:
diff changeset
    15
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    16
ToolApplicationModel subclass:#ViewTreeInspectorApplication
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
    17
	instanceVariableNames:'model treeView hasSingleSelectionHolder clickedItem clickedPoint
2770
9322aee00ea0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2762
diff changeset
    18
		motionAction process followFocusChannel showNamesHolder
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
    19
		inspectorView inspectorModeIndexHolder path
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
    20
		isCatchingEventsChannel browser'
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
    21
	classVariableNames:''
87bb1815460b initial checkin
ca
parents:
diff changeset
    22
	poolDictionaries:''
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    23
	category:'Interface-Smalltalk'
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
    24
!
87bb1815460b initial checkin
ca
parents:
diff changeset
    25
87bb1815460b initial checkin
ca
parents:
diff changeset
    26
Object subclass:#MenuDesc
87bb1815460b initial checkin
ca
parents:
diff changeset
    27
	instanceVariableNames:'title value action'
87bb1815460b initial checkin
ca
parents:
diff changeset
    28
	classVariableNames:''
87bb1815460b initial checkin
ca
parents:
diff changeset
    29
	poolDictionaries:''
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    30
	privateIn:ViewTreeInspectorApplication
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    31
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    32
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    33
HierarchicalItem subclass:#ViewTreeItem
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
    34
	instanceVariableNames:'widget menuItem isDrawnShown exists xOffsetAdditionalName'
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    35
	classVariableNames:'HandleExtent'
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    36
	poolDictionaries:''
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    37
	privateIn:ViewTreeInspectorApplication
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
    38
!
87bb1815460b initial checkin
ca
parents:
diff changeset
    39
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    40
ValueModel subclass:#ViewTreeModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    41
	instanceVariableNames:'lockSema selectedSuperItems selection hiddenLevel listOfItems
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    42
		inputEventAction mappedViewAction beforeSelectionChangedAction
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    43
		icons timedUpdateTask selectOnClickHolder testModeChannel
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
    44
		hasTargetWidgetChannel catchEvents'
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    45
	classVariableNames:''
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    46
	poolDictionaries:''
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    47
	privateIn:ViewTreeInspectorApplication
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    48
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    49
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    50
HierarchicalList subclass:#ItemList
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    51
	instanceVariableNames:'treeModel eventHook eventHookInitialized showWidgetNames'
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    52
	classVariableNames:''
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    53
	poolDictionaries:''
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    54
	privateIn:ViewTreeInspectorApplication::ViewTreeModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    55
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    56
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    57
!ViewTreeInspectorApplication class methodsFor:'documentation'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
    58
2748
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    59
copyright
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    60
"
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    61
 COPYRIGHT (c) 2007 by eXept Software AG
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
    62
	      All Rights Reserved
2748
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    63
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    64
 This software is furnished under a license and may be used
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    65
 only in accordance with the terms of that license and with the
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    66
 inclusion of the above copyright notice.   This software may not
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    67
 be provided or otherwise made available to, or used by, any
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    68
 other person.  No title to or ownership of the software is
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    69
 hereby transferred.
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    70
"
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    71
!
76f6fd319918 added: #copyright
Claus Gittinger <cg@exept.de>
parents: 2747
diff changeset
    72
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
    73
documentation
87bb1815460b initial checkin
ca
parents:
diff changeset
    74
"
87bb1815460b initial checkin
ca
parents:
diff changeset
    75
     Small application showing a ViewTreeModel use.
87bb1815460b initial checkin
ca
parents:
diff changeset
    76
87bb1815460b initial checkin
ca
parents:
diff changeset
    77
     It displays a hierarchical list of a selected TopView and
87bb1815460b initial checkin
ca
parents:
diff changeset
    78
     all its contained subViews.
87bb1815460b initial checkin
ca
parents:
diff changeset
    79
     Useful to have a look at subcomponents - to see how views
87bb1815460b initial checkin
ca
parents:
diff changeset
    80
     are structured.
87bb1815460b initial checkin
ca
parents:
diff changeset
    81
87bb1815460b initial checkin
ca
parents:
diff changeset
    82
87bb1815460b initial checkin
ca
parents:
diff changeset
    83
    [Instance variables:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
    84
	model           <ViewTreeModel>      the used ViewTreeModel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
    85
	clickedItem     <ViewTreeItem>       item under the clickedPoint (motion action)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
    86
	clickedPoint    <Point>              point where the motion action started from.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
    87
	motionAction    <Action>             (oneArg-) action called durring buttonMotion.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
    88
87bb1815460b initial checkin
ca
parents:
diff changeset
    89
87bb1815460b initial checkin
ca
parents:
diff changeset
    90
    [author:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
    91
	Claus Atzkern
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
    92
87bb1815460b initial checkin
ca
parents:
diff changeset
    93
    [see also:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
    94
	ViewTreeModel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
    95
	ViewTreeItem
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
    96
"
87bb1815460b initial checkin
ca
parents:
diff changeset
    97
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
    98
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
    99
!ViewTreeInspectorApplication class methodsFor:'initialization'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   100
87bb1815460b initial checkin
ca
parents:
diff changeset
   101
initialize
87bb1815460b initial checkin
ca
parents:
diff changeset
   102
    "add myself to the launcher menu
87bb1815460b initial checkin
ca
parents:
diff changeset
   103
    "
87bb1815460b initial checkin
ca
parents:
diff changeset
   104
    self installInLauncher.
87bb1815460b initial checkin
ca
parents:
diff changeset
   105
!
87bb1815460b initial checkin
ca
parents:
diff changeset
   106
87bb1815460b initial checkin
ca
parents:
diff changeset
   107
installInLauncher
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   108
    "add myself to the launcher menu"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   109
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   110
    |menuItem icon|
87bb1815460b initial checkin
ca
parents:
diff changeset
   111
87bb1815460b initial checkin
ca
parents:
diff changeset
   112
    NewLauncher isNil ifTrue:[^ self].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   113
    "/ cg - disabled. the icon is too ugly.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   114
    ^ self.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   115
3341
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   116
"/    icon := ToolbarIconLibrary inspectLocals20x20Icon magnifiedTo:28@28.
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   117
"/
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   118
"/    menuItem := MenuItem new
3341
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   119
"/                    label: 'View Tree Inspector';
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   120
"/                    value: [ ViewTreeInspectorApplication open];
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   121
"/                    isButton: true;
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   122
"/                    icon: icon;
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   123
"/                    nameKey: #viewInspect.
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   124
"/
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   125
"/    menuItem startGroup:#right.
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   126
"/    NewLauncher addMenuItem:menuItem in:'toolbar'
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   127
"/                   position:#( #before #help)
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   128
"/                      space:false.
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   129
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   130
    "
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   131
     self installInLauncher
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   132
     self removeFromLauncher
2089a2debb66 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
   133
    "
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   134
!
87bb1815460b initial checkin
ca
parents:
diff changeset
   135
87bb1815460b initial checkin
ca
parents:
diff changeset
   136
postAutoload
87bb1815460b initial checkin
ca
parents:
diff changeset
   137
    "add myself to the launcher menu
87bb1815460b initial checkin
ca
parents:
diff changeset
   138
    "
87bb1815460b initial checkin
ca
parents:
diff changeset
   139
    self installInLauncher.
87bb1815460b initial checkin
ca
parents:
diff changeset
   140
"
87bb1815460b initial checkin
ca
parents:
diff changeset
   141
self installInLauncher
87bb1815460b initial checkin
ca
parents:
diff changeset
   142
self removeFromLauncher
87bb1815460b initial checkin
ca
parents:
diff changeset
   143
"
87bb1815460b initial checkin
ca
parents:
diff changeset
   144
!
87bb1815460b initial checkin
ca
parents:
diff changeset
   145
87bb1815460b initial checkin
ca
parents:
diff changeset
   146
removeFromLauncher
87bb1815460b initial checkin
ca
parents:
diff changeset
   147
    "remove myself from the launcher menu
87bb1815460b initial checkin
ca
parents:
diff changeset
   148
    "
87bb1815460b initial checkin
ca
parents:
diff changeset
   149
    NewLauncher isNil ifTrue:[^ self].
87bb1815460b initial checkin
ca
parents:
diff changeset
   150
    NewLauncher removeUserTool:#viewInspect
87bb1815460b initial checkin
ca
parents:
diff changeset
   151
87bb1815460b initial checkin
ca
parents:
diff changeset
   152
"
87bb1815460b initial checkin
ca
parents:
diff changeset
   153
self installInLauncher
87bb1815460b initial checkin
ca
parents:
diff changeset
   154
self removeFromLauncher
87bb1815460b initial checkin
ca
parents:
diff changeset
   155
"
87bb1815460b initial checkin
ca
parents:
diff changeset
   156
!
87bb1815460b initial checkin
ca
parents:
diff changeset
   157
87bb1815460b initial checkin
ca
parents:
diff changeset
   158
unload
87bb1815460b initial checkin
ca
parents:
diff changeset
   159
    "class is about to be unloaded - remove myself from the launcher menu
87bb1815460b initial checkin
ca
parents:
diff changeset
   160
    "
87bb1815460b initial checkin
ca
parents:
diff changeset
   161
    self removeFromLauncher.
87bb1815460b initial checkin
ca
parents:
diff changeset
   162
    super unload.
87bb1815460b initial checkin
ca
parents:
diff changeset
   163
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
   164
3070
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   165
!ViewTreeInspectorApplication class methodsFor:'help specs'!
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   166
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   167
helpSpec
3070
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   168
    <resource: #help>
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   169
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   170
    ^super helpSpec addPairsFrom:#(
3070
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   171
3186
80a20e5881a5 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3185
diff changeset
   172
#doRedraw
80a20e5881a5 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3185
diff changeset
   173
'Force the application to redraw its windows'
80a20e5881a5 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3185
diff changeset
   174
3070
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   175
#doUncatchEvents
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   176
'Release picked view and uncatch events\(currently locked for widget selection)'
3070
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   177
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   178
#doCatchEvents
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   179
'Lock view and catch events for widget selection\(currently unlocked)'
3070
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   180
3186
80a20e5881a5 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3185
diff changeset
   181
#doInspectApplication
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   182
'Inspect the selected view''s application'
3186
80a20e5881a5 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3185
diff changeset
   183
80a20e5881a5 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3185
diff changeset
   184
#doBrowseApplication
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   185
'Browse the selected view''s application'
3186
80a20e5881a5 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3185
diff changeset
   186
80a20e5881a5 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3185
diff changeset
   187
#doPickView
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   188
'Pick a widget with the mouse and inspect its view hierarchy'
3186
80a20e5881a5 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3185
diff changeset
   189
3070
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   190
)
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   191
! !
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   192
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   193
!ViewTreeInspectorApplication class methodsFor:'image specs'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   194
2759
Claus Gittinger <cg@exept.de>
parents: 2758
diff changeset
   195
crossHairIcon
3824
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   196
    <resource: #programImage>
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   197
3185
3592ea3afb9e class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   198
    ^ ToolbarIconLibrary bigCrossHairIcon
2759
Claus Gittinger <cg@exept.de>
parents: 2758
diff changeset
   199
!
Claus Gittinger <cg@exept.de>
parents: 2758
diff changeset
   200
3824
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   201
defaultIcon
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   202
    <resource: #programImage>
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   203
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   204
    ^ ToolbarIconLibrary viewInspect22x22Icon
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   205
!
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   206
3070
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   207
lockViewIcon
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   208
    "This resource specification was automatically generated
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   209
     by the ImageEditor of ST/X."
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   210
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   211
    "Do not manually edit this!! If it is corrupted,
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   212
     the ImageEditor may not be able to read the specification."
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   213
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   214
    "
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   215
     self lockViewIcon inspect
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   216
     ImageEditor openOnClass:self andSelector:#lockViewIcon
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   217
     Icon flushCachedIcons
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   218
    "
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   219
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   220
    <resource: #image>
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   221
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   222
    ^Icon
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   223
	constantNamed:'Tools::ViewTreeInspectorApplication lockViewIcon'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   224
	ifAbsentPut:[(Depth8Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
3070
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   225
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   226
@@@@@@@@@@@@@@A8^G!!7O3ACP5*P@@A8^G @@@@@@@@@@@A8^@@@OE0/!!P0S#0@@^G @@@@@@@@@@@B (@D''D#48"1.CX5H@(J@@@@@@@@@@@@B (B(>SAT"
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   227
''%!!/P7,@(J@@@@@@@@@@@@@%IB0#M"H%IRTQV5P@IRT@@@@@@@@@@@ANSX:U]PANS$8:T80@S$8@@@@@@@@@@@AN&UYWK(EYQ@\FUPQHXT8@@@@@@@@@@@AN
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   228
HC2!!TVY:Y#-%I*IKMD8@@@@@@@@@@@A$\@83XBEG%).GGX _!!&P@@@@@@@@@@@AO[P5+ &(WPYN@["!!E\$<@@@@@@@@@@@B_F''FQPAXX_!!&TGH4HB9<@@@@@
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   229
@@@@@@B_%3HCJ7=BKPU,Q)01B9<@@@@@@@@@@@@PBP8T_F!!''JPI)_Y"D&!!@@@@@@@@@@@@@$B)I9TGXO''WQIWQ93W0@@@@@@@@@@@@@$"U=JR$)JR$)JR$)_
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   230
"P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   231
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@') ; colorMapFromArray:#[132 141 152 147 150 154 250 223 1 246 214 0 205 172 133 238 195 0 213 180 146 217 186 150 188 136 0 206 151 0 183 125 9 208 208 202 196 204 214 255 255 210 255 255 219 210 178 65 242 242 235 106 112 117 96 107 126 250 255 255 255 241 0 154 154 151 255 227 0 67 35 0 52 17 0 253 211 0 208 159 0 167 178 193 222 168 0 248 231 45 208 174 26 199 152 26 225 184 36 255 249 75 220 220 215 77 88 108 241 241 235 245 245 239 255 250 109 242 249 255 255 255 142 255 237 1 142 148 162 242 212 1 143 154 176 174 133 0 222 189 144 169 179 192 177 184 193 184 129 0 255 255 194 253 241 60 210 210 205 214 214 209 77 83 92 230 230 225 98 106 114 243 243 238 117 117 114 255 252 115 255 255 255 115 123 147 130 140 156 152 156 159 241 210 0 53 18 0 151 116 0 162 170 184 218 187 150 193 143 4 220 165 0 206 188 46 181 130 21 204 173 44 206 206 201 208 167 44 72 84 108 240 240 234 244 244 238 243 243 237 212 182 79 255 255 126 131 135 141 119 133 159 132 141 163 195 162 126 219 188 133 218 185 135 180 180 176 221 190 150 175 181 191 176 183 196 181 189 201 202 170 38 209 209 204 207 207 202 251 241 74 229 229 224 238 238 233 226 234 245 244 244 237 255 251 113 255 255 124 255 241 2 255 234 3 249 219 0 255 249 29 252 243 30 227 181 0 212 165 5 222 170 0 173 179 194 216 171 19 255 255 198 208 208 203 156 90 7 206 175 50 91 91 95 211 180 71 242 242 237 246 246 241 212 182 80 255 255 123 129 137 152 255 239 8 251 223 0 59 25 0 251 215 0 228 183 0 222 191 149 249 238 43 177 186 197 187 129 0 186 194 206 209 209 203 249 238 67 255 255 211 226 226 221 235 235 229 100 103 111 76 93 127 255 255 112 88 104 139 130 135 148 149 155 158 247 218 0 224 194 126 255 217 0 228 184 0 13 30 68 161 138 32 204 152 0 255 255 53 206 155 18 207 207 201 255 250 72 255 255 82 209 176 59 232 232 227 243 243 236 245 245 240 255 255 115 255 255 251]; mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@G8@@O<@@_>@@^^@@\N@@\N@@?? @?? @?? @?? @?? @?? @?? @?? @_?@@@@@@@@@@@@@@@@@@@@@') ; yourself); yourself]
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   232
!
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   233
3000
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   234
releaseViewIcon
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   235
    "This resource specification was automatically generated
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   236
     by the ImageEditor of ST/X."
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   237
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   238
    "Do not manually edit this!! If it is corrupted,
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   239
     the ImageEditor may not be able to read the specification."
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   240
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   241
    "
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   242
     self releaseViewIcon inspect
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   243
     ImageEditor openOnClass:self andSelector:#releaseViewIcon
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   244
     Icon flushCachedIcons
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   245
    "
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   246
    <resource: #image>
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   247
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   248
    ^Icon
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   249
	constantNamed:'Tools::ViewTreeInspectorApplication releaseViewIcon'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   250
	ifAbsentPut:[(Depth8Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
3000
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   251
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   252
@@@@@@@@@@@@@@A8^G!!7O3ACP5*P@@A8^G @@@@@@@@@@@A8^@@@OE0/!!P0S#0@@^G @@@@@@@@@@@B (@@''D#48"1.CX5H@(J@@@@@@@@@@@@B (@@@@@@"
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   253
''%!!/P7,@(J@@@@@@@@@@@@@%I@@@@BH%IRTQV5P@IRT@@@@@@@@@@@ANSP@@@@ANS$8:T80@S$8@@@@@@@@@@@AN&UYWK(EYQ@\FUPQHXT8@@@@@@@@@@@AN
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   254
HC2!!TVY:Y#-%I*IKMD8@@@@@@@@@@@A$\@83XBEG%).GGX _!!&P@@@@@@@@@@@AO[P5+ &(WPYN@["!!E\$<@@@@@@@@@@@B_F''FQPAXX_!!&TGH4HB9<@@@@@
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   255
@@@@@@B_%3HCJ7=BKPU,Q)01B9<@@@@@@@@@@@@PBP8T_F!!''JPI)_Y"D&!!@@@@@@@@@@@@@$B)I9TGXO''WQIWQ93W0@@@@@@@@@@@@@$"U=JR$)JR$)JR$)_
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   256
"P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
7b530cc76688 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2978
diff changeset
   257
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@') ; colorMapFromArray:#[132 141 152 147 150 154 250 223 1 246 214 0 205 172 133 238 195 0 213 180 146 217 186 150 188 136 0 206 151 0 183 125 9 208 208 202 196 204 214 255 255 210 255 255 219 210 178 65 242 242 235 106 112 117 96 107 126 250 255 255 255 241 0 154 154 151 255 227 0 67 35 0 52 17 0 253 211 0 208 159 0 167 178 193 222 168 0 248 231 45 208 174 26 199 152 26 225 184 36 255 249 75 220 220 215 77 88 108 241 241 235 245 245 239 255 250 109 242 249 255 255 255 142 255 237 1 142 148 162 242 212 1 143 154 176 174 133 0 222 189 144 169 179 192 177 184 193 184 129 0 255 255 194 253 241 60 210 210 205 214 214 209 77 83 92 230 230 225 98 106 114 243 243 238 117 117 114 255 252 115 255 255 255 115 123 147 130 140 156 152 156 159 241 210 0 53 18 0 151 116 0 162 170 184 218 187 150 193 143 4 220 165 0 206 188 46 181 130 21 204 173 44 206 206 201 208 167 44 72 84 108 240 240 234 244 244 238 243 243 237 212 182 79 255 255 126 131 135 141 119 133 159 132 141 163 195 162 126 219 188 133 218 185 135 180 180 176 221 190 150 175 181 191 176 183 196 181 189 201 202 170 38 209 209 204 207 207 202 251 241 74 229 229 224 238 238 233 226 234 245 244 244 237 255 251 113 255 255 124 255 241 2 255 234 3 249 219 0 255 249 29 252 243 30 227 181 0 212 165 5 222 170 0 173 179 194 216 171 19 255 255 198 208 208 203 156 90 7 206 175 50 91 91 95 211 180 71 242 242 237 246 246 241 212 182 80 255 255 123 129 137 152 255 239 8 251 223 0 59 25 0 251 215 0 228 183 0 222 191 149 249 238 43 177 186 197 187 129 0 186 194 206 209 209 203 249 238 67 255 255 211 226 226 221 235 235 229 100 103 111 76 93 127 255 255 112 88 104 139 130 135 148 149 155 158 247 218 0 224 194 126 255 217 0 228 184 0 13 30 68 161 138 32 204 152 0 255 255 53 206 155 18 207 207 201 255 250 72 255 255 82 209 176 59 232 232 227 243 243 236 245 245 240 255 255 115 255 255 251]; mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@G8@@O<@@O>@@@^@@@N@@@N@@?? @?? @?? @?? @?? @?? @?? @?? @_?@@@@@@@@@@@@@@@@@@@@@') ; yourself); yourself]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   258
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   259
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   260
!ViewTreeInspectorApplication class methodsFor:'interface specs'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   261
87bb1815460b initial checkin
ca
parents:
diff changeset
   262
windowSpec
87bb1815460b initial checkin
ca
parents:
diff changeset
   263
    "This resource specification was automatically generated
87bb1815460b initial checkin
ca
parents:
diff changeset
   264
     by the UIPainter of ST/X."
87bb1815460b initial checkin
ca
parents:
diff changeset
   265
87bb1815460b initial checkin
ca
parents:
diff changeset
   266
    "Do not manually edit this!! If it is corrupted,
87bb1815460b initial checkin
ca
parents:
diff changeset
   267
     the UIPainter may not be able to read the specification."
87bb1815460b initial checkin
ca
parents:
diff changeset
   268
87bb1815460b initial checkin
ca
parents:
diff changeset
   269
    "
2757
6c83d6b487b2 changed:
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   270
     UIPainter new openOnClass:Tools::ViewTreeInspectorApplication andSelector:#windowSpec
6c83d6b487b2 changed:
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   271
     Tools::ViewTreeInspectorApplication new openInterface:#windowSpec
6c83d6b487b2 changed:
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   272
     Tools::ViewTreeInspectorApplication open
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   273
    "
87bb1815460b initial checkin
ca
parents:
diff changeset
   274
87bb1815460b initial checkin
ca
parents:
diff changeset
   275
    <resource: #canvas>
87bb1815460b initial checkin
ca
parents:
diff changeset
   276
3824
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   277
    ^ 
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
   278
    #(FullSpec
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
   279
       name: windowSpec
3867
dde568e1aae8 #UI_ENHANCEMENT by exept
anharman
parents: 3827
diff changeset
   280
       uuid: 'f797d0f4-1dde-11b2-87da-c45444825dc9'
3824
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   281
       window: 
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
   282
      (WindowSpec
3824
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   283
         label: 'View Tree Inspector'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   284
         name: 'View Tree Inspector'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   285
         uuid: 'aebcdfb2-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   286
         min: (Point 10 10) max: (Point 1024 9999) bounds: (Rectangle 0 0 693 643) menu: menu
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   287
         icon: defaultIcon
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   288
      ) component: 
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
   289
      (SpecCollection
3824
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   290
         collection: (
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   291
          (MenuPanelSpec
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   292
             name: 'toolbarMenu'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   293
             layout: (LayoutFrame 0 0.0 0 0 0 1.0 40 0) uuid: 'aebce2fa-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   294
             menu: toolbarMenu
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   295
             textDefault: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   296
          )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   297
          (VariableVerticalPanelSpec
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   298
             name: 'VariableVerticalPanel1'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   299
             layout: (LayoutFrame 0 0.0 40 0.0 0 1.0 0 1.0) uuid: 'aebce480-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   300
             component: 
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   301
            (SpecCollection
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   302
               collection: (
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   303
                (ViewSpec
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   304
                   name: 'PathAndListPane'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   305
                   uuid: 'aebce5e8-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   306
                   component: 
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   307
                  (SpecCollection
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   308
                     collection: (
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   309
                      (ViewSpec
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   310
                         name: 'PathPane'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   311
                         layout: (LayoutFrame 0 0 0 0 0 1 25 0) uuid: 'aebce67e-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   312
                         component: 
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   313
                        (SpecCollection
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   314
                           collection: (
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   315
                            (InputFieldSpec
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   316
                               name: 'Path'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   317
                               layout: (LayoutFrame 0 0 0 0 0 1 0 1) uuid: 'aebce6ec-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   318
                               model: path
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   319
                               acceptOnReturn: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   320
                               acceptOnTab: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   321
                               acceptOnPointerLeave: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   322
                               emptyFieldReplacementText: 'No View Selected'
3867
dde568e1aae8 #UI_ENHANCEMENT by exept
anharman
parents: 3827
diff changeset
   323
                               translateEmptyFieldReplacementText: true
3824
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   324
                            )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   325
                          )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   326
                        )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   327
                      )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   328
                      (HierarchicalListViewSpec
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   329
                         name: 'List'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   330
                         layout: (LayoutFrame 0 0 25 0 0 1 0 1) uuid: 'aebce8e0-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   331
                         level: 1
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   332
                         model: model
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   333
                         menu: middleButtonMenu
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   334
                         hasHorizontalScrollBar: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   335
                         hasVerticalScrollBar: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   336
                         miniScrollerHorizontal: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   337
                         miniScrollerVertical: false
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   338
                         listModel: listOfItems
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   339
                         multipleSelectOk: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   340
                         useIndex: false
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   341
                         highlightMode: label
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   342
                         showLeftIndicators: false
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   343
                         indicatorSelector: indicatorClicked:
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   344
                         useDefaultIcons: false
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   345
                         postBuildCallback: postBuildTree:
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   346
                      )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   347
                    )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   348
                  )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   349
                )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   350
                (ViewSpec
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   351
                   name: 'Box2'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   352
                   uuid: 'aebceb6a-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   353
                   component: 
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   354
                  (SpecCollection
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   355
                     collection: (
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   356
                      (TabViewSpec
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   357
                         name: 'TabHeader1'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   358
                         layout: (LayoutFrame 0 0.0 0 0 0 1.0 25 0) uuid: 'aebcebe2-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   359
                         model: inspectorModeIndexHolder
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   360
                         menu: inspectorModes
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   361
                         useIndex: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   362
                         translateLabel: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   363
                      )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   364
                      (SubCanvasSpec
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   365
                         name: 'Browser'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   366
                         layout: (LayoutFrame 0 0 26 0 0 1 0 1) uuid: 'aebced36-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   367
                         visibilityChannel: browserVisibleHolder
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   368
                         hasHorizontalScrollBar: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   369
                         hasVerticalScrollBar: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   370
                         majorKey: #'Tools::NewSystemBrowser'
3867
dde568e1aae8 #UI_ENHANCEMENT by exept
anharman
parents: 3827
diff changeset
   371
                         minorKey: multipleClassBrowserSpec
3824
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   372
                         createNewApplication: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   373
                         createNewBuilder: true
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   374
                         postBuildCallback: postBuildBrowserCanvas:
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   375
                      )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   376
                      (ViewSpec
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   377
                         name: 'Inspector'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   378
                         layout: (LayoutFrame 0 0 26 0 0 1 0 1) uuid: 'aebceec6-3384-11b2-a28b-00d861a3d4eb'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   379
                         visibilityChannel: inspectorVisibleHolder
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   380
                         viewClassName: 'InspectorView'
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   381
                         postBuildCallback: postBuildInspectorView:
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   382
                      )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   383
                    )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   384
                  )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   385
                )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   386
              )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   387
            ) handles: (Any 0.5 1.0)
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   388
          )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   389
        )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   390
      )
7d83538ca900 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   391
    )
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   392
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
   393
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   394
!ViewTreeInspectorApplication class methodsFor:'menu specs'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   395
87bb1815460b initial checkin
ca
parents:
diff changeset
   396
menu
87bb1815460b initial checkin
ca
parents:
diff changeset
   397
    "This resource specification was automatically generated
87bb1815460b initial checkin
ca
parents:
diff changeset
   398
     by the MenuEditor of ST/X."
87bb1815460b initial checkin
ca
parents:
diff changeset
   399
87bb1815460b initial checkin
ca
parents:
diff changeset
   400
    "Do not manually edit this!! If it is corrupted,
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   401
     the MenuEditor may not be able to read the specification."
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   402
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   403
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   404
    "
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   405
     MenuEditor new openOnClass:Tools::ViewTreeInspectorApplication andSelector:#menu
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   406
     (Menu new fromLiteralArrayEncoding:(Tools::ViewTreeInspectorApplication menu)) startUp
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   407
    "
87bb1815460b initial checkin
ca
parents:
diff changeset
   408
87bb1815460b initial checkin
ca
parents:
diff changeset
   409
    <resource: #menu>
87bb1815460b initial checkin
ca
parents:
diff changeset
   410
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   411
    ^
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   412
     #(Menu
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   413
	(
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   414
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   415
	    label: 'File'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   416
	    submenu:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   417
	   (Menu
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   418
	      (
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   419
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   420
		  label: 'Pick a View'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   421
		  itemValue: doPickView
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   422
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   423
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   424
		  enabled: hasTargetWidgetChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   425
		  label: 'Release Picked View'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   426
		  itemValue: doUnpick
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   427
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   428
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   429
		  label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   430
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   431
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   432
		  label: 'Settings'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   433
		  submenu:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   434
		 (Menu
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   435
		    (
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   436
		     (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   437
			label: 'Test Mode'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   438
			hideMenuOnActivated: false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   439
			indication: testModeChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   440
		      )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   441
		     (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   442
			enabled: testModeChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   443
			label: 'Follow Focus'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   444
			hideMenuOnActivated: false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   445
			indication: followFocusChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   446
		      )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   447
		     (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   448
			label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   449
		      )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   450
		     (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   451
			label: 'Select on Click'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   452
			hideMenuOnActivated: false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   453
			indication: selectOnClickHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   454
		      )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   455
		     (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   456
			label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   457
		      )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   458
		     (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   459
			label: 'Show Name of Widgets'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   460
			hideMenuOnActivated: false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   461
			indication: showNamesHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   462
		      )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   463
		     )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   464
		    nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   465
		    nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   466
		  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   467
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   468
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   469
		  label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   470
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   471
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   472
		  label: 'Exit'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   473
		  itemValue: closeRequest
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   474
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   475
	       )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   476
	      nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   477
	      nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   478
	    )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   479
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   480
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   481
	    enabled: hasSingleSelectionHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   482
	    label: 'Selection'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   483
	    submenuChannel: middleButtonMenu
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   484
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   485
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   486
	    label: 'Widget'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   487
	    submenu:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   488
	   (Menu
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   489
	      (
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   490
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   491
		  enabled: hasSingleSelectionHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   492
		  label: 'Browse'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   493
		  itemValue: doBrowse:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   494
		  argument: view
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   495
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   496
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   497
		  enabled: hasSingleSelectionHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   498
		  label: 'Inspect'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   499
		  itemValue: doInspect:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   500
		  argument: view
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   501
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   502
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   503
		  label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   504
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   505
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   506
		  enabled: hasTargetWidgetChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   507
		  label: 'All Components'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   508
		  startGroup: right
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   509
		  submenuChannel: submenuComponents:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   510
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   511
	       )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   512
	      nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   513
	      nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   514
	    )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   515
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   516
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   517
	    label: 'Application'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   518
	    submenu:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   519
	   (Menu
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   520
	      (
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   521
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   522
		  label: 'Redraw'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   523
		  itemValue: doRedraw
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   524
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   525
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   526
		  label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   527
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   528
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   529
		  enabled: hasSingleSelectionHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   530
		  label: 'Browse'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   531
		  itemValue: doBrowse:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   532
		  argument: application
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   533
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   534
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   535
		  enabled: hasSingleSelectionHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   536
		  label: 'Inspect'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   537
		  itemValue: doInspect:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   538
		  argument: application
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   539
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   540
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   541
		  label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   542
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   543
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   544
		  enabled: canBrowseWindowSpecMethod
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   545
		  label: 'Browse Window Spec Method'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   546
		  itemValue: doBrowseWindowSpecMethod
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   547
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   548
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   549
		  enabled: canEditWindowSpec
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   550
		  label: 'Edit Window Spec'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   551
		  itemValue: doEditWindowSpec
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   552
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   553
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   554
		  label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   555
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   556
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   557
		  enabled: hasTargetWidgetChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   558
		  label: 'All Applications'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   559
		  submenuChannel: submenuApplications:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   560
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   561
	       )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   562
	      nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   563
	      nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   564
	    )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   565
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   566
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   567
	    label: 'Process'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   568
	    submenu:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   569
	   (Menu
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   570
	      (
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   571
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   572
		  enabled: hasSingleSelectionHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   573
		  label: 'Debug'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   574
		  itemValue: doDebugProcess
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   575
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   576
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   577
		  enabled: hasSingleSelectionHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   578
		  label: 'Inspect'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   579
		  itemValue: doInspect:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   580
		  argument: process
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   581
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   582
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   583
		  label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   584
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   585
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   586
		  label: 'Open Process Monitor'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   587
		  itemValue: doOpenProcessMonitor
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   588
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   589
	       )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   590
	      nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   591
	      nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   592
	    )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   593
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   594
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   595
	    label: 'Help'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   596
	    startGroup: conditionalRight
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   597
	    submenu:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   598
	   (Menu
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   599
	      (
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   600
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   601
		  label: 'Documentation'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   602
		  itemValue: openDocumentation
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   603
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   604
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   605
		  label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   606
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   607
	       (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   608
		  label: 'About this Application...'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   609
		  itemValue: openAboutThisApplication
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   610
		)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   611
	       )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   612
	      nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   613
	      nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   614
	    )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   615
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   616
	 )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   617
	nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   618
	nil
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   619
      )
87bb1815460b initial checkin
ca
parents:
diff changeset
   620
!
87bb1815460b initial checkin
ca
parents:
diff changeset
   621
87bb1815460b initial checkin
ca
parents:
diff changeset
   622
middleButtonMenu
87bb1815460b initial checkin
ca
parents:
diff changeset
   623
    "This resource specification was automatically generated
87bb1815460b initial checkin
ca
parents:
diff changeset
   624
     by the MenuEditor of ST/X."
87bb1815460b initial checkin
ca
parents:
diff changeset
   625
87bb1815460b initial checkin
ca
parents:
diff changeset
   626
    "Do not manually edit this!! If it is corrupted,
87bb1815460b initial checkin
ca
parents:
diff changeset
   627
     the MenuEditor may not be able to read the specification."
87bb1815460b initial checkin
ca
parents:
diff changeset
   628
3213
33e1f779fa15 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   629
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   630
    "
3213
33e1f779fa15 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   631
     MenuEditor new openOnClass:Tools::ViewTreeInspectorApplication andSelector:#middleButtonMenu
33e1f779fa15 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   632
     (Menu new fromLiteralArrayEncoding:(Tools::ViewTreeInspectorApplication middleButtonMenu)) startUp
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   633
    "
87bb1815460b initial checkin
ca
parents:
diff changeset
   634
87bb1815460b initial checkin
ca
parents:
diff changeset
   635
    <resource: #menu>
87bb1815460b initial checkin
ca
parents:
diff changeset
   636
3752
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   637
    ^ 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   638
     #(Menu 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   639
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   640
          label: 'Browse'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   641
          nameKey: BrowseMenu
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   642
          submenu: 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   643
         (Menu 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   644
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   645
              label: 'View Class (Widget)'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   646
              itemValue: doBrowse:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   647
              argument: view
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   648
           ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   649
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   650
              label: 'Model Class'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   651
              itemValue: doBrowse:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   652
              isVisible: hasModel
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   653
              argument: model
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   654
           ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   655
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   656
              label: 'Application Class'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   657
              itemValue: doBrowse:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   658
              isVisible: hasApplication
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   659
              argument: application
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   660
           ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   661
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   662
              enabled: hasMasterApplication
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   663
              label: 'Master Application Class'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   664
              itemValue: doBrowse:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   665
              isVisible: hasApplication
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   666
              argument: masterApplication
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   667
           ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   668
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   669
              label: 'Controller Class'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   670
              itemValue: doBrowse:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   671
              isVisible: hasController
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   672
              argument: controller
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   673
           )
3628
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
   674
         )
3752
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   675
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   676
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   677
          label: 'Inspect'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   678
          nameKey: InspectMenu
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   679
          submenu: 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   680
         (Menu 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   681
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   682
              label: 'View (Widget)'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   683
              itemValue: doInspect:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   684
              argument: view
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   685
           ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   686
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   687
              label: 'Model'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   688
              itemValue: doInspect:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   689
              isVisible: hasModel
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   690
              argument: model
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   691
           ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   692
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   693
              label: 'Application'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   694
              itemValue: doInspect:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   695
              isVisible: hasApplication
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   696
              argument: application
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   697
           ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   698
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   699
              enabled: hasMasterApplication
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   700
              label: 'Master Application'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   701
              itemValue: doInspect:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   702
              isVisible: hasApplication
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   703
              argument: masterApplication
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   704
           ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   705
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   706
              label: 'Window Group'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   707
              itemValue: doInspect:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   708
              argument: group
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   709
           ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   710
           (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   711
              label: 'Controller'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   712
              itemValue: doInspect:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   713
              isVisible: hasController
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   714
              argument: controller
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   715
           )
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   716
         )
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   717
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   718
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   719
          label: '-'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   720
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   721
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   722
          label: 'Edit Language Resources'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   723
          itemValue: doEditLanguageResources
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   724
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   725
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   726
          label: '-'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   727
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   728
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   729
          label: 'Flash'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   730
          itemValue: doFlash
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   731
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   732
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   733
          label: '-'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   734
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   735
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   736
          label: 'Destroy View'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   737
          itemValue: doDestroy
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   738
          labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Destroy View')
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   739
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   740
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   741
          label: '-'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   742
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   743
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   744
          label: 'Geometry'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   745
          submenuChannel: submenuGeometry:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   746
          keepLinkedMenu: true
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   747
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   748
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   749
          label: 'Interface'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   750
          submenuChannel: submenuInterface:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   751
          keepLinkedMenu: true
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   752
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   753
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   754
          label: 'Visibility'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   755
          submenuChannel: submenuVisibility:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   756
          keepLinkedMenu: true
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   757
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   758
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   759
          label: 'Presentation'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   760
          submenuChannel: submenuPresentation:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   761
          keepLinkedMenu: true
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   762
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   763
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   764
          label: 'Instance Variables'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   765
          submenuChannel: submenuInspector:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   766
          keepLinkedMenu: true
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   767
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   768
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   769
          label: '='
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   770
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   771
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   772
          label: ''
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   773
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   774
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   775
          enabled: selectedComponentHasChildren
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   776
          label: 'Applications'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   777
          nameKey: single
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   778
          submenuChannel: submenuApplications:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   779
          keepLinkedMenu: true
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   780
       ) 
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   781
       (MenuItem
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   782
          enabled: selectedComponentHasChildren
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   783
          label: 'Components'
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   784
          nameKey: single
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   785
          submenuChannel: submenuComponents:
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   786
          keepLinkedMenu: true
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   787
       )
24695ab8fa75 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   788
     )
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   789
!
87bb1815460b initial checkin
ca
parents:
diff changeset
   790
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   791
middleButtonMenuForMenuItems
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   792
    "This resource specification was automatically generated
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   793
     by the MenuEditor of ST/X."
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   794
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   795
    "Do not manually edit this!! If it is corrupted,
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   796
     the MenuEditor may not be able to read the specification."
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   797
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   798
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   799
    "
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   800
     MenuEditor new openOnClass:Tools::ViewTreeInspectorApplication andSelector:#middleButtonMenu
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   801
     (Menu new fromLiteralArrayEncoding:(Tools::ViewTreeInspectorApplication middleButtonMenu)) startUp
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   802
    "
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   803
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   804
    <resource: #menu>
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   805
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   806
    ^
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   807
     #(Menu
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   808
	(
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   809
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   810
	    label: 'Browse Menu Item''s Class'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   811
	    itemValue: doBrowse:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   812
	    argument: menuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   813
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   814
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   815
	    label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   816
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   817
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   818
	    label: 'Inspect Menu Item'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   819
	    itemValue: doInspect:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   820
	    argument: menuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   821
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   822
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   823
	    label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   824
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   825
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   826
	    label: 'Interface'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   827
	    submenuChannel: submenuMenuItemInterface:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   828
	    keepLinkedMenu: true
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   829
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   830
	 )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   831
	nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   832
	nil
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   833
      )
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   834
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   835
    "Created: / 16-08-2017 / 13:48:49 / cg"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   836
!
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
   837
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   838
toolbarMenu
87bb1815460b initial checkin
ca
parents:
diff changeset
   839
    "This resource specification was automatically generated
87bb1815460b initial checkin
ca
parents:
diff changeset
   840
     by the MenuEditor of ST/X."
87bb1815460b initial checkin
ca
parents:
diff changeset
   841
87bb1815460b initial checkin
ca
parents:
diff changeset
   842
    "Do not manually edit this!! If it is corrupted,
87bb1815460b initial checkin
ca
parents:
diff changeset
   843
     the MenuEditor may not be able to read the specification."
87bb1815460b initial checkin
ca
parents:
diff changeset
   844
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   845
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   846
    "
2757
6c83d6b487b2 changed:
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   847
     MenuEditor new openOnClass:Tools::ViewTreeInspectorApplication andSelector:#toolbarMenu
6c83d6b487b2 changed:
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   848
     (Menu new fromLiteralArrayEncoding:(Tools::ViewTreeInspectorApplication toolbarMenu)) startUp
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   849
    "
87bb1815460b initial checkin
ca
parents:
diff changeset
   850
87bb1815460b initial checkin
ca
parents:
diff changeset
   851
    <resource: #menu>
87bb1815460b initial checkin
ca
parents:
diff changeset
   852
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   853
    ^
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   854
     #(Menu
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   855
	(
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   856
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   857
	    enabled: hasTargetWidgetChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   858
	    label: 'Redraw'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   859
	    itemValue: doRedraw
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   860
	    isButton: true
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   861
	    labelImage: (ResourceRetriever ToolbarIconLibrary reloadIcon)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   862
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   863
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   864
	    label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   865
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   866
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   867
	    label: 'Pick a View and Catch Events'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   868
	    itemValue: doPickView
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   869
	    translateLabel: false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   870
	    isButton: true
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   871
	    hideMenuOnActivated: false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   872
	    labelImage: (ResourceRetriever ToolbarIconLibrary pickWindowIcon)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   873
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   874
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   875
	    enabled: hasTargetWidgetChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   876
	    isVisible: isNotCatchingEventsChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   877
	    label: 'Catch Events of Picked View'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   878
	    activeHelpKey: doCatchEvents
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   879
	    itemValue: doCatchEvents
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   880
	    nameKey: doCatchEvents
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   881
	    isButton: true
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   882
	    labelImage: (ResourceRetriever nil releaseViewIcon)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   883
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   884
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   885
	    enabled: hasTargetWidgetChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   886
	    isVisible: isCatchingEventsChannel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   887
	    label: 'Release Picked View and Uncatch Events'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   888
	    activeHelpKey: doUncatchEvents
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   889
	    itemValue: doUncatchEvents
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   890
	    nameKey: doUncatchEvents
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   891
	    isButton: true
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   892
	    labelImage: (ResourceRetriever nil lockViewIcon)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   893
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   894
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   895
	    label: '-'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   896
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   897
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   898
	    activeHelpKey: doBrowseApplication
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   899
	    enabled: hasSingleSelectionHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   900
	    label: 'Browse Application'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   901
	    itemValue: doBrowse:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   902
	    translateLabel: false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   903
	    isButton: true
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   904
	    hideMenuOnActivated: false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   905
	    labelImage: (ResourceRetriever ToolbarIconLibrary systemBrowser24x24Icon2)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   906
	    argument: application
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   907
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   908
	 (MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   909
	    activeHelpKey: doInspectApplication
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   910
	    enabled: hasSingleSelectionHolder
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   911
	    label: 'Inspect Application'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   912
	    itemValue: doInspect:
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   913
	    translateLabel: false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   914
	    isButton: true
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   915
	    hideMenuOnActivated: false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   916
	    labelImage: (ResourceRetriever ToolbarIconLibrary inspect22x24Icon)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   917
	    argument: application
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   918
	  )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   919
	 )
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   920
	nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   921
	nil
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   922
      )
87bb1815460b initial checkin
ca
parents:
diff changeset
   923
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
   924
2747
717a0dcc710d added: #openInPickMode
Claus Gittinger <cg@exept.de>
parents: 2744
diff changeset
   925
!ViewTreeInspectorApplication class methodsFor:'startup'!
717a0dcc710d added: #openInPickMode
Claus Gittinger <cg@exept.de>
parents: 2744
diff changeset
   926
717a0dcc710d added: #openInPickMode
Claus Gittinger <cg@exept.de>
parents: 2744
diff changeset
   927
openInPickMode
717a0dcc710d added: #openInPickMode
Claus Gittinger <cg@exept.de>
parents: 2744
diff changeset
   928
    |app|
717a0dcc710d added: #openInPickMode
Claus Gittinger <cg@exept.de>
parents: 2744
diff changeset
   929
717a0dcc710d added: #openInPickMode
Claus Gittinger <cg@exept.de>
parents: 2744
diff changeset
   930
    app := self new.
717a0dcc710d added: #openInPickMode
Claus Gittinger <cg@exept.de>
parents: 2744
diff changeset
   931
    app open.
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
   932
    app doPickView.
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   933
    ^ app
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   934
!
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   935
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   936
openInPickModeAndRelease
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   937
    "release the pick-lock after picking"
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   938
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   939
    |app|
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   940
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   941
    app := self openInPickMode.
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   942
    app doUncatchEvents.
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   943
    ^ app
3014
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   944
!
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   945
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   946
openOn:aView
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   947
    "show a particular window's topView hierarchy,
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   948
     select the given view"
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   949
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   950
    |app|
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   951
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   952
    app := self new.
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   953
    app open.
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   954
    app showWindow:aView.
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
   955
    ^ app
2747
717a0dcc710d added: #openInPickMode
Claus Gittinger <cg@exept.de>
parents: 2744
diff changeset
   956
! !
717a0dcc710d added: #openInPickMode
Claus Gittinger <cg@exept.de>
parents: 2744
diff changeset
   957
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   958
!ViewTreeInspectorApplication methodsFor:'actions'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   959
87bb1815460b initial checkin
ca
parents:
diff changeset
   960
indicatorClicked:anIndex
87bb1815460b initial checkin
ca
parents:
diff changeset
   961
    |item sensor|
87bb1815460b initial checkin
ca
parents:
diff changeset
   962
87bb1815460b initial checkin
ca
parents:
diff changeset
   963
    item := model listOfItems at:anIndex ifAbsent:nil.
87bb1815460b initial checkin
ca
parents:
diff changeset
   964
87bb1815460b initial checkin
ca
parents:
diff changeset
   965
    item notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   966
	(     (sensor := self window sensor) notNil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   967
	 and:[(sensor ctrlDown or:[sensor shiftDown])]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   968
	) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   969
	    item recursiveToggleExpand
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   970
	] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   971
	    item toggleExpand
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   972
	]
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   973
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
   974
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
   975
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
   976
!ViewTreeInspectorApplication methodsFor:'aspects'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
   977
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   978
browserVisibleHolder
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   979
    "what is shown in the inspector:
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   980
     1->Widget
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   981
     2->Application
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   982
     3->WindowGroup
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   983
     4->Sensor
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   984
     5->Model
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   985
     6->Widget Class
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   986
     7->Application Class
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   987
    "
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   988
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   989
    ^ BlockValue
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   990
	with:[:v | self inspectorMode == #widgetClass or:[self inspectorMode == #applicationClass] ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
   991
	argument:self inspectorModeIndexHolder
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   992
!
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
   993
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   994
canBrowseWindowSpecMethod
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   995
    ^ self hasSingleSelectionHolder value and:[ self windowSpecMethodOfSelection notNil ]
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   996
!
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   997
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   998
canEditWindowSpec
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   999
    ^ self hasSingleSelectionHolder value and:[ self windowSpecMethodOfSelection notNil ]
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1000
!
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1001
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1002
followFocusChannel
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1003
    "boolean holder, which indicates whether selection changed dependend on the focus view"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1004
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1005
    ^ followFocusChannel
87bb1815460b initial checkin
ca
parents:
diff changeset
  1006
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1007
87bb1815460b initial checkin
ca
parents:
diff changeset
  1008
hasSingleSelectionHolder
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1009
    "boolean holder, true if one item is selected"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1010
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1011
    ^ hasSingleSelectionHolder
87bb1815460b initial checkin
ca
parents:
diff changeset
  1012
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1013
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1014
hasTargetWidgetChannel
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1015
    "answer the channel which is set to true if a target widget exists"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1016
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1017
    ^ model hasTargetWidgetChannel
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1018
!
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1019
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1020
inspectorMode
3049
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1021
    "what is shown in the inspector:
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1022
     1->widget
3049
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1023
     2->application
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1024
     3->WindowGroup
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1025
     4->Sensor
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1026
     5->Model
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1027
     6->Widget Class
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1028
     7->Application Class
3574
ea4dce86360d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3573
diff changeset
  1029
     8 -> Resources
3049
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1030
    "
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1031
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1032
    |mode|
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1033
    mode := inspectorModeIndexHolder value.
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1034
    ^ #( widget application group sensor model widgetClass applicationClass resources) at:mode ifAbsent:#widget
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1035
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1036
    "Created: / 30-07-2013 / 07:44:59 / cg"
3574
ea4dce86360d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3573
diff changeset
  1037
    "Modified (comment): / 17-07-2018 / 09:27:13 / Claus Gittinger"
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1038
!
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1039
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1040
inspectorModeIndexHolder
3049
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1041
    "what is shown in the inspector:
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1042
     1->Widget
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1043
     2->Application
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1044
     3->WindowGroup
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1045
     4->Sensor
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1046
     5->Model
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1047
     6->Widget Class
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1048
     7->Application Class
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1049
     8->Resources
3049
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  1050
    "
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1051
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1052
    ^ inspectorModeIndexHolder
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1053
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1054
    "Created: / 30-07-2013 / 07:44:07 / cg"
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1055
    "Modified (comment): / 17-07-2018 / 08:46:12 / Claus Gittinger"
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1056
!
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1057
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1058
inspectorModes
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1059
    "/ labels of tabs
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1060
    ^ #('Widget' 'Application' 'WindowGroup' 'Sensor' 'Model' 'Widget Class' 'App Class' 'Resources')
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1061
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1062
    "Created: / 30-07-2013 / 09:42:16 / cg"
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1063
    "Modified: / 17-07-2018 / 08:45:56 / Claus Gittinger"
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1064
!
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1065
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1066
inspectorVisibleHolder
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1067
    "what is shown in the inspector:
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1068
     1->Widget
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1069
     2->Application
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1070
     3->WindowGroup
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1071
     4->Sensor
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1072
     5->Model
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1073
     6->Widget Class
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1074
     7->Application Class
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1075
    "
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1076
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1077
    ^ BlockValue
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1078
	with:[:v | v not ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1079
	argument:self browserVisibleHolder
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1080
!
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1081
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  1082
isCatchingEventsChannel
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  1083
    ^ isCatchingEventsChannel
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  1084
!
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  1085
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  1086
isNotCatchingEventsChannel
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  1087
    ^ BlockValue forLogicalNot:self isCatchingEventsChannel
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  1088
!
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  1089
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1090
listOfItems
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1091
    "returns the hierarchical list of items"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1092
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1093
    ^ model listOfItems
87bb1815460b initial checkin
ca
parents:
diff changeset
  1094
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1095
87bb1815460b initial checkin
ca
parents:
diff changeset
  1096
model
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1097
    "returns my selection model, a ViewTreeModel"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1098
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1099
    ^ model
87bb1815460b initial checkin
ca
parents:
diff changeset
  1100
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1101
3112
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  1102
path
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  1103
    <resource: #uiAspect>
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  1104
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  1105
    path isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1106
	path := PluggableAdaptor
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1107
		    on: self model
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1108
		    getter:[ :model | model path ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1109
		    setter:[ :model :newValue |  ]
3112
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  1110
    ].
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  1111
    ^ path.
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  1112
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  1113
    "Modified: / 19-05-2014 / 18:40:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  1114
!
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  1115
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1116
selectOnClickHolder
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1117
    "boolean holder, which indicates whether the selection will change on click"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1118
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1119
    ^ model selectOnClickHolder
87bb1815460b initial checkin
ca
parents:
diff changeset
  1120
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1121
2451
cbda60900ced *** empty log message ***
ca
parents: 2177
diff changeset
  1122
showNamesHolder
cbda60900ced *** empty log message ***
ca
parents: 2177
diff changeset
  1123
    "boolean holder, which indicates whether application names or widget names
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1124
     as additional text are shown for the items"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1125
2451
cbda60900ced *** empty log message ***
ca
parents: 2177
diff changeset
  1126
    ^ showNamesHolder
cbda60900ced *** empty log message ***
ca
parents: 2177
diff changeset
  1127
!
cbda60900ced *** empty log message ***
ca
parents: 2177
diff changeset
  1128
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1129
testModeChannel
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1130
    "answer a boolean channel which describes the behaviour how to process
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1131
     events on the target view.
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1132
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1133
     false: all input events are eaten and the selection is shown on the target view.
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1134
     true:  no  input events are eaten and no  selection is shown on the target view."
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1135
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1136
    ^ model testModeChannel
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1137
!
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1138
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1139
windowSpecMethodOfSelection
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1140
    |item view app nonMeta meta masterApp
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1141
     spec builder specSelector implementors|
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1142
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1143
    item := model selectedItem.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1144
    item isNil ifTrue:[^ nil].
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1145
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1146
    view := item widget.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1147
    view isNil ifTrue:[^ nil].
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1148
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1149
    app := view application.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1150
    app isNil ifTrue:[^ nil].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1151
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1152
    builder := app builder.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1153
    builder isNil ifTrue:[^ nil].
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1154
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1155
    spec := builder spec.
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1156
    spec isNil ifTrue:[^ nil].
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1157
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1158
    specSelector := spec name.
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1159
    specSelector isNil ifTrue:[^ nil].
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1160
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1161
    ((nonMeta := app class theNonMetaclass) canUnderstand:specSelector) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1162
	^ nonMeta lookupMethodFor:specSelector.
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1163
    ].
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1164
    ((meta := app class theMetaclass) canUnderstand:specSelector) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1165
	^ meta lookupMethodFor:specSelector.
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1166
    ].
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1167
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1168
    "/ maybe a simple dialog given a spec
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1169
    (masterApp := app masterApplication) notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1170
	((nonMeta := masterApp class theNonMetaclass) canUnderstand:specSelector) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1171
	    ^ nonMeta lookupMethodFor:specSelector.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1172
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1173
	((meta := masterApp class theMetaclass) canUnderstand:specSelector) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1174
	    ^ meta lookupMethodFor:specSelector.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1175
	].
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1176
    ].
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1177
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1178
    implementors := Smalltalk allImplementorsOf: specSelector.
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1179
    implementors size == 1 ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1180
	^ implementors first compiledMethodAt:specSelector.
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1181
    ].
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1182
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1183
    ^ nil
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1184
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  1185
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  1186
!ViewTreeInspectorApplication methodsFor:'change & update'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1187
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1188
inspectorModeIndexHolderChanged
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1189
    self updateInspector
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1190
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1191
    "Created: / 30-07-2013 / 09:21:51 / cg"
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1192
!
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1193
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1194
selectionChanged
87bb1815460b initial checkin
ca
parents:
diff changeset
  1195
    |info view item|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1196
87bb1815460b initial checkin
ca
parents:
diff changeset
  1197
    item := model selectedItem.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1198
    item notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1199
	|state|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1200
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1201
	view := item widget.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1202
	view isNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1203
	    info := '%1 [%2]' bindWith:(item menuItem label asString)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1204
				  with:(item menuItem value asString).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1205
	] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1206
	    view id isNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1207
		state := 'no ID'.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1208
	    ] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1209
		view shown ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1210
		    state := 'visible'.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1211
		] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1212
		    state := 'invisible'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1213
		].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1214
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1215
	    info := '%1 [%2] - %3' bindWith:(view class name)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1216
				       with:(view name ? '') with:state allBold.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1217
	]
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1218
    ] ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1219
	info := ''
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1220
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1221
    hasSingleSelectionHolder value:(view notNil).
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1222
    self updateInspector
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1223
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1224
    "Modified: / 16-08-2017 / 13:44:59 / cg"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1225
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1226
87bb1815460b initial checkin
ca
parents:
diff changeset
  1227
update:something with:someArgument from:aModel
2454
4867f3e9dd43 *** empty log message ***
ca
parents: 2451
diff changeset
  1228
    |oldSelection|
4867f3e9dd43 *** empty log message ***
ca
parents: 2451
diff changeset
  1229
2451
cbda60900ced *** empty log message ***
ca
parents: 2177
diff changeset
  1230
    aModel == showNamesHolder ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1231
	oldSelection := model selectedItem.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1232
	model selectedItem:nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1233
	self listOfItems showWidgetNames:(aModel value).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1234
	model selectedItem:oldSelection.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1235
	^ self
2451
cbda60900ced *** empty log message ***
ca
parents: 2177
diff changeset
  1236
    ].
2458
64d8f3c973b3 *** empty log message ***
ca
parents: 2455
diff changeset
  1237
64d8f3c973b3 *** empty log message ***
ca
parents: 2455
diff changeset
  1238
    aModel == model ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1239
	self selectionChanged.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1240
	^ self
2458
64d8f3c973b3 *** empty log message ***
ca
parents: 2455
diff changeset
  1241
    ].
64d8f3c973b3 *** empty log message ***
ca
parents: 2455
diff changeset
  1242
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1243
    super update:something with:someArgument from:aModel.
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1244
!
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1245
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1246
updateBrowser
3827
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1247
    |cls widget navigationState|
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1248
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1249
    widget := self selectedView.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1250
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1251
    "/ update the browser
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1252
    self inspectorMode == #widgetClass ifTrue:[
3827
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1253
        cls := widget class.
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1254
    ] ifFalse:[
3827
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1255
        cls := widget application class
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1256
    ].
3827
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1257
    "/ browser switchToClass:cls selector:nil.
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1258
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1259
    navigationState := browser navigationState.
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1260
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1261
    navigationState classList value:(cls theNonMetaclass withAllSuperclasses).
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1262
    navigationState meta value:(cls isMetaclass).
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1263
    browser classListGenerator value:(cls theNonMetaclass withAllSuperclasses).
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1264
    browser sortByNameAndInheritance value:true.
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1265
    browser
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1266
        selectClass:cls;
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1267
        selectProtocol: (Tools::BrowserList nameListEntryForALL).
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1268
    browser switchToClass:cls selector:nil updateHistory: false.
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1269
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1270
    "/ sigh must be done after postbuild
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1271
    "/ navigationState classListApplication addOwnerClasses value:false.
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1272
!
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1273
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1274
updateInspector
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1275
    |view mode obj|
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1276
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1277
    view := self selectedView.
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1278
    mode := self inspectorMode.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1279
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1280
    ((mode == #widgetClass) or:[(mode == #applicationClass)]) ifTrue:[
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1281
        "/ update the browser
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1282
        view notNil ifTrue:[
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1283
            self updateBrowser.
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1284
        ].
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1285
        ^ self.
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1286
    ].
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1287
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1288
    (view isNil or:[mode == #widget]) ifTrue:[
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1289
        obj := view.
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1290
    ] ifFalse:[ (mode == #group) ifTrue:[
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1291
        obj := view windowGroup
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1292
    ] ifFalse:[ (mode == #sensor) ifTrue:[
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1293
        obj := view sensor
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1294
    ] ifFalse:[ (mode == #model) ifTrue:[
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1295
        obj := view model
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1296
    ] ifFalse:[ (mode == #resources) ifTrue:[
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1297
        obj := view resources
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1298
    ] ifFalse:[
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1299
        obj := view application.
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1300
    ]]]]].
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1301
    inspectorView inspect:obj.
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1302
    inspectorView headLineLabel:(obj class nameWithoutPrefix)
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1303
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1304
    "Created: / 30-07-2013 / 09:21:16 / cg"
3573
fc569c283368 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3568
diff changeset
  1305
    "Modified: / 17-07-2018 / 08:46:40 / Claus Gittinger"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1306
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  1307
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  1308
!ViewTreeInspectorApplication methodsFor:'event processing'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1309
87bb1815460b initial checkin
ca
parents:
diff changeset
  1310
processButtonMotionEvent:ev
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1311
    |click rootView|
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1312
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1313
    motionAction isNil ifTrue:[^ self].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1314
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1315
    (rootView := model rootView) isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1316
	clickedItem := motionAction := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1317
	^ self
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1318
    ].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1319
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1320
    click := rootView device
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1321
	    translatePoint:((ev x)@ (ev y))
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1322
	    fromView:(ev view)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1323
	    toView:rootView.
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1324
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1325
    click = clickedPoint ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1326
	(clickedItem isNil or:[(click dist:clickedPoint) > 5.0]) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1327
	    motionAction value:click
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1328
	]
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1329
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1330
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1331
87bb1815460b initial checkin
ca
parents:
diff changeset
  1332
processButtonPressEvent:ev
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1333
    |rootView sensor lastRectangle|
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1334
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1335
    rootView    := model rootView.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1336
    sensor      := model rootView sensor.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1337
    clickedItem := model listOfItems detectItemRespondsToView:(ev view).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1338
87bb1815460b initial checkin
ca
parents:
diff changeset
  1339
    (sensor ctrlDown or:[sensor shiftDown]) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1340
	clickedItem notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1341
	    self selectOnClickHolder value ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1342
		model toggleSelectItem:clickedItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1343
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1344
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1345
	clickedItem := motionAction := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1346
	^ self
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1347
    ].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1348
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1349
    clickedPoint := rootView device translatePoint:((ev x)@ (ev y))  fromView:(ev view) toView:rootView.
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1350
    lastRectangle := nil.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1351
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1352
    motionAction :=[:p|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1353
	rootView    := model rootView device rootView.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1354
	rootView    := model rootView.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1355
	clickedItem := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1356
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1357
	rootView xoring:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1358
	    lastRectangle notNil ifTrue:[ rootView displayRectangle:lastRectangle ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1359
				ifFalse:[ rootView clippedByChildren:false ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1360
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1361
	    p isNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1362
		rootView clippedByChildren:true.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1363
		motionAction := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1364
	    ] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1365
		lastRectangle := Rectangle origin:(clickedPoint min:p) corner:(clickedPoint max:p).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1366
		rootView displayRectangle:lastRectangle.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1367
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1368
	    rootView flush.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1369
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1370
	lastRectangle
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1371
    ].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1372
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1373
87bb1815460b initial checkin
ca
parents:
diff changeset
  1374
processButtonReleaseEvent:anEvent
87bb1815460b initial checkin
ca
parents:
diff changeset
  1375
    |rootView rectangle newItems widget origin|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1376
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1377
    (rootView := model rootView) isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1378
	clickedItem := motionAction := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1379
	^ self
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1380
    ].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1381
    motionAction isNil ifTrue:[ ^ self ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1382
    clickedItem notNil ifTrue:[ ^ model selectItem:clickedItem ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1383
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1384
    rectangle := motionAction value:nil.
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1385
    rectangle isNil ifTrue:[^ self].
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1386
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1387
    newItems := OrderedCollection new.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1388
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1389
    model rootItem recursiveDo:[:anItem|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1390
	widget := anItem widget.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1391
	widget notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1392
	    origin := widget originRelativeTo:rootView.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1393
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1394
	    (rectangle containsRect:(Rectangle origin:origin extent:(widget extent))) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1395
		newItems add:anItem.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1396
	    ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1397
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1398
    ].
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1399
    model value:newItems.
3500
51cbdcf5b2cb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3457
diff changeset
  1400
51cbdcf5b2cb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3457
diff changeset
  1401
    "Modified: / 11-11-2017 / 17:24:59 / cg"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1402
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1403
87bb1815460b initial checkin
ca
parents:
diff changeset
  1404
processEvent:anEvent
87bb1815460b initial checkin
ca
parents:
diff changeset
  1405
    |button menu|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1406
2758
c61fe917957a comment/format in:8 methods
Claus Gittinger <cg@exept.de>
parents: 2757
diff changeset
  1407
    anEvent isKeyPressEvent ifTrue:[ self processKeyPressEvent:anEvent. ^ self  ].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1408
    anEvent isButtonEvent  ifFalse:[ ^ self ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1409
87bb1815460b initial checkin
ca
parents:
diff changeset
  1410
    button := anEvent button.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1411
87bb1815460b initial checkin
ca
parents:
diff changeset
  1412
    (button == 2 or:[button == #menu]) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1413
	motionAction isNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1414
	    anEvent isButtonPressEvent ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1415
		self selectOnClickHolder value ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1416
		    menu := self middleButtonMenu value.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1417
		    menu notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1418
			menu := MenuPanel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1419
				    menu:(Menu new fromLiteralArrayEncoding:menu)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1420
				    receiver:self.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1421
			menu startUp.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1422
		    ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1423
		].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1424
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1425
	    clickedItem := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1426
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1427
	^ self
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1428
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1429
2758
c61fe917957a comment/format in:8 methods
Claus Gittinger <cg@exept.de>
parents: 2757
diff changeset
  1430
    anEvent isButtonPressEvent  ifTrue:[ self processButtonPressEvent:anEvent. ^ self ].
c61fe917957a comment/format in:8 methods
Claus Gittinger <cg@exept.de>
parents: 2757
diff changeset
  1431
    anEvent isButtonMotionEvent ifTrue:[ self processButtonMotionEvent:anEvent. ^ self ].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1432
87bb1815460b initial checkin
ca
parents:
diff changeset
  1433
    anEvent isButtonReleaseEvent ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1434
	self selectOnClickHolder value ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1435
	    self processButtonReleaseEvent:anEvent
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1436
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1437
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1438
    clickedItem := motionAction := nil.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1439
87bb1815460b initial checkin
ca
parents:
diff changeset
  1440
    anEvent type == #'buttonMultiPress:x:y:' ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1441
	self selectOnClickHolder value ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1442
	    self doInspect:#view.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1443
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1444
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1445
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1446
87bb1815460b initial checkin
ca
parents:
diff changeset
  1447
processKeyPressEvent:anEvent
87bb1815460b initial checkin
ca
parents:
diff changeset
  1448
    |item prnt idx key max next|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1449
87bb1815460b initial checkin
ca
parents:
diff changeset
  1450
    key := anEvent key.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1451
    key isSymbol ifFalse:[^ self].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1452
87bb1815460b initial checkin
ca
parents:
diff changeset
  1453
    key == #Delete    ifTrue:[ ^ self doDestroy ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1454
    key == #InspectIt ifTrue:[ ^ self doInspect:#view ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1455
87bb1815460b initial checkin
ca
parents:
diff changeset
  1456
    (   key == #CursorUp
87bb1815460b initial checkin
ca
parents:
diff changeset
  1457
    or:[key == #CursorDown
87bb1815460b initial checkin
ca
parents:
diff changeset
  1458
    or:[key == #CursorLeft
87bb1815460b initial checkin
ca
parents:
diff changeset
  1459
    or:[key == #CursorRight]]]
87bb1815460b initial checkin
ca
parents:
diff changeset
  1460
    ) ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1461
	^ self
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1462
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1463
    item := model selectedItem.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1464
87bb1815460b initial checkin
ca
parents:
diff changeset
  1465
    item isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1466
	^ model selectedItem:(model first ? model rootItem)
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1467
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1468
87bb1815460b initial checkin
ca
parents:
diff changeset
  1469
    prnt := item parent.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1470
    prnt isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1471
	"/ is the root item
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1472
	(key == #CursorUp or:[key == #CursorLeft]) ifTrue:[item := model listOfItems last]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1473
						  ifFalse:[item := item at:1 ifAbsent:item].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1474
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1475
	^ model selectedItem:item
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1476
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1477
    key == #CursorLeft ifTrue:[ ^ model selectedItem:prnt ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1478
87bb1815460b initial checkin
ca
parents:
diff changeset
  1479
    key == #CursorRight ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1480
	next := item at:1 ifAbsent:nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1481
	next notNil ifTrue:[ model selectedItem:next ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1482
	^ self
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1483
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1484
87bb1815460b initial checkin
ca
parents:
diff changeset
  1485
    max := prnt size.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1486
87bb1815460b initial checkin
ca
parents:
diff changeset
  1487
    key == #CursorUp ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1488
	idx := prnt identityIndexOf:item.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1489
	idx == 1 ifTrue:[idx := max + 1].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1490
	model selectedItem:(prnt at:idx - 1).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1491
	^ self.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1492
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1493
87bb1815460b initial checkin
ca
parents:
diff changeset
  1494
    key == #CursorDown ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1495
	idx := prnt identityIndexOf:item.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1496
	idx == max ifTrue:[idx := 0].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1497
	model selectedItem:(prnt at:idx + 1).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1498
	^ self.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1499
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1500
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1501
87bb1815460b initial checkin
ca
parents:
diff changeset
  1502
processMappedView:aView
87bb1815460b initial checkin
ca
parents:
diff changeset
  1503
    |parent anchor|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1504
87bb1815460b initial checkin
ca
parents:
diff changeset
  1505
    parent := self listOfItems detectItemRespondsToView:aView.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1506
    parent isNil ifTrue:[ ^ self ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1507
87bb1815460b initial checkin
ca
parents:
diff changeset
  1508
    NotFoundSignal handle:[:ex|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1509
	"contained subvies used by spec are not yet created;
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1510
	 thus we have to wait until last used subview is build
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1511
	"
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1512
	anchor := nil.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1513
    ] do:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1514
	anchor := parent class buildViewsFrom:(parent widget).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1515
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1516
    anchor notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1517
	parent updateFromChildren:anchor children.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1518
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1519
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  1520
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  1521
!ViewTreeInspectorApplication methodsFor:'initialization & release'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1522
87bb1815460b initial checkin
ca
parents:
diff changeset
  1523
closeDownViews
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1524
    "release the grapped application"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1525
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1526
    process := nil.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1527
    super closeDownViews.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1528
    self doUnpick.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1529
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1530
87bb1815460b initial checkin
ca
parents:
diff changeset
  1531
initialize
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1532
    "setup my model and channels"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1533
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1534
    super initialize.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1535
87bb1815460b initial checkin
ca
parents:
diff changeset
  1536
    hasSingleSelectionHolder := false asValue.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1537
    followFocusChannel       := false asValue.
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  1538
    isCatchingEventsChannel  := false asValue.
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1539
    inspectorModeIndexHolder := 1 asValue.
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1540
    inspectorModeIndexHolder onChangeSend:#inspectorModeIndexHolderChanged to:self.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1541
87bb1815460b initial checkin
ca
parents:
diff changeset
  1542
    model := ViewTreeModel new.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1543
    model inputEventAction:[:ev| self processEvent:ev ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1544
    model mappedViewAction:[:vw| self processMappedView:vw ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1545
    model application:self.
2458
64d8f3c973b3 *** empty log message ***
ca
parents: 2455
diff changeset
  1546
    model addDependent:self.
64d8f3c973b3 *** empty log message ***
ca
parents: 2455
diff changeset
  1547
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1548
2451
cbda60900ced *** empty log message ***
ca
parents: 2177
diff changeset
  1549
    showNamesHolder := false asValue.
cbda60900ced *** empty log message ***
ca
parents: 2177
diff changeset
  1550
    showNamesHolder addDependent:self.
3037
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1551
876c28de42da class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3034
diff changeset
  1552
    "Modified: / 30-07-2013 / 09:20:08 / cg"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1553
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1554
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1555
postBuildBrowserCanvas:aSubCanvas
3827
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1556
    |navigationState|
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1557
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1558
    browser := aSubCanvas application.
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1559
3827
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1560
    browser isEmbeddedBrowser:true.
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1561
"/    navigationState := browser navigationState.
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1562
"/
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1563
"/    navigationState classList value:(aClass theNonMetaclass withAllSuperclasses).
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1564
"/    navigationState meta value:(aClass isMetaclass).
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1565
"/    browser classListGenerator value:(aClass theNonMetaclass withAllSuperclasses).
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1566
"/    browser sortByNameAndInheritance value:true.
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1567
"/    browser
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1568
"/        selectClass:aClass;
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1569
"/        selectProtocol: (Tools::BrowserList nameListEntryForALL).
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1570
"/    browser switchToClass:aClass selector:initialSelectorOrNil updateHistory: false.
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1571
"/
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1572
"/    "/ sigh must be done after postbuild
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1573
"/    navigationState classListApplication addOwnerClasses value:false.
d4de0de1a991 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1574
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1575
    "/ browser navigationState meta onChangeEvaluate:(self updateBrowser).
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1576
    "/ self updateBrowser.
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1577
!
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1578
2770
9322aee00ea0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2762
diff changeset
  1579
postBuildInspectorView:anInspector
9322aee00ea0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2762
diff changeset
  1580
    inspectorView := anInspector.
9322aee00ea0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2762
diff changeset
  1581
!
9322aee00ea0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2762
diff changeset
  1582
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1583
postBuildTree:aTree
87bb1815460b initial checkin
ca
parents:
diff changeset
  1584
    treeView := aTree scrolledView.
3105
b33e0b8e6038 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3104
diff changeset
  1585
    "/ treeView hasConstantHeight:true.
3104
59230707e466 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
  1586
!
59230707e466 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
  1587
59230707e466 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
  1588
release
59230707e466 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
  1589
    "release the grapped application"
59230707e466 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
  1590
59230707e466 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
  1591
    super release.
59230707e466 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3079
diff changeset
  1592
    self doUnpick.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1593
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  1594
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  1595
!ViewTreeInspectorApplication methodsFor:'menu queries'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1596
87bb1815460b initial checkin
ca
parents:
diff changeset
  1597
hasApplication
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1598
    "returns true if the current selected view has an application"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1599
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1600
    |view|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1601
87bb1815460b initial checkin
ca
parents:
diff changeset
  1602
    view := self selectedView.
3628
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1603
    ^ (view notNil and:[view application notNil])
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1604
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1605
    "Modified (format): / 30-10-2018 / 16:20:26 / Claus Gittinger"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1606
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1607
87bb1815460b initial checkin
ca
parents:
diff changeset
  1608
hasController
87bb1815460b initial checkin
ca
parents:
diff changeset
  1609
    "returns true if the current selected item's view has a controller
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1610
     other than nil or the view itself"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1611
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1612
    |view controller|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1613
87bb1815460b initial checkin
ca
parents:
diff changeset
  1614
    view := self selectedView.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1615
87bb1815460b initial checkin
ca
parents:
diff changeset
  1616
    view notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1617
	controller := view controller.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1618
      ^ (controller notNil and:[controller ~~ view])
87bb1815460b initial checkin
ca
parents:
diff changeset
  1619
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1620
    ^ false
87bb1815460b initial checkin
ca
parents:
diff changeset
  1621
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1622
3628
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1623
hasMasterApplication
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1624
    "returns true if the current selected view has an application"
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1625
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1626
    |view|
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1627
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1628
    view := self selectedView.
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1629
    ^ (view notNil 
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1630
        and:[view application notNil
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1631
        and:[view application masterApplication notNil]])
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1632
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1633
    "Created: / 30-10-2018 / 16:20:23 / Claus Gittinger"
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1634
!
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  1635
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1636
hasModel
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1637
    "returns true if the current selected view has a model"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1638
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1639
    |view|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1640
87bb1815460b initial checkin
ca
parents:
diff changeset
  1641
    view := self selectedView.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1642
  ^ (view notNil and:[view model notNil])
87bb1815460b initial checkin
ca
parents:
diff changeset
  1643
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  1644
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  1645
!ViewTreeInspectorApplication methodsFor:'menu specs'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1646
87bb1815460b initial checkin
ca
parents:
diff changeset
  1647
middleButtonMenu
3551
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1648
    "returns the middleButton menu for the single selected view tree item or nil"
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1649
3660
4b4a427f8976 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3658
diff changeset
  1650
    <resource: #programMenu >
4b4a427f8976 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3658
diff changeset
  1651
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1652
    ^ [
3551
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1653
        |viewTreeItem|
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1654
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1655
        (viewTreeItem := model selectedItem) notNil ifTrue:[
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1656
            viewTreeItem isView ifTrue:[
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1657
                self class middleButtonMenu
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1658
            ] ifFalse:[
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1659
                self class middleButtonMenuForMenuItems
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1660
            ].
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1661
        ] ifFalse:[
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1662
            nil
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  1663
        ]
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1664
      ]
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1665
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1666
    "Modified: / 16-08-2017 / 13:48:31 / cg"
3660
4b4a427f8976 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3658
diff changeset
  1667
    "Modified: / 02-05-2019 / 22:39:49 / Claus Gittinger"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1668
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1669
87bb1815460b initial checkin
ca
parents:
diff changeset
  1670
submenuApplications:aMenu
87bb1815460b initial checkin
ca
parents:
diff changeset
  1671
    |applications menu item list addBlock|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1672
87bb1815460b initial checkin
ca
parents:
diff changeset
  1673
    item := aMenu selection nameKey == #single ifTrue:[model selectedItem]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1674
					      ifFalse:[model rootItem].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1675
    item isNil ifTrue:[^ nil].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1676
87bb1815460b initial checkin
ca
parents:
diff changeset
  1677
    applications := IdentityDictionary new.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1678
87bb1815460b initial checkin
ca
parents:
diff changeset
  1679
    addBlock := [:el| |cls ctr|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1680
	cls := self resolveApplicationClassFor:el.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1681
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1682
	cls notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1683
	    ctr := applications at:cls ifAbsent:0.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1684
	    applications at:cls put:(ctr + 1).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1685
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1686
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1687
    item recursiveDo:addBlock.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1688
    addBlock value:item.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1689
87bb1815460b initial checkin
ca
parents:
diff changeset
  1690
    applications isEmpty ifTrue:[^ nil ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1691
    list := SortedCollection sortBlock:[:a :b| a title < b title ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1692
87bb1815460b initial checkin
ca
parents:
diff changeset
  1693
    applications keysAndValuesDo:[:cls :ctr|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1694
       list add:(MenuDesc title:(cls name)
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1695
			  value:(ctr printString)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1696
			 action:[self doSelectNextOfApplicationClass:cls startingIn:item]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1697
		 ).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1698
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1699
87bb1815460b initial checkin
ca
parents:
diff changeset
  1700
    menu := MenuDesc buildFromList:list onGC:aMenu.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1701
    menu do:[:el|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1702
	el hideMenuOnActivated:false
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1703
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1704
    ^ menu
87bb1815460b initial checkin
ca
parents:
diff changeset
  1705
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1706
87bb1815460b initial checkin
ca
parents:
diff changeset
  1707
submenuComponents:aMenu
87bb1815460b initial checkin
ca
parents:
diff changeset
  1708
    |widgets list total menu item|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1709
87bb1815460b initial checkin
ca
parents:
diff changeset
  1710
    item := aMenu selection nameKey == #single ifTrue:[model selectedItem]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1711
					      ifFalse:[model rootItem].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1712
    item isNil ifTrue:[^ nil].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1713
87bb1815460b initial checkin
ca
parents:
diff changeset
  1714
    widgets := IdentityDictionary new.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1715
    total   := 0.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1716
87bb1815460b initial checkin
ca
parents:
diff changeset
  1717
    item recursiveDo:[:el| |cls ctr|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1718
	cls := el widget.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1719
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1720
	cls notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1721
	    cls := cls class.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1722
	    ctr := widgets at:cls ifAbsent:0.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1723
	    widgets at:cls put:(ctr + 1).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1724
	    total := total + 1.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1725
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1726
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1727
    total == 0 ifTrue:[^ nil].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1728
    list := SortedCollection sortBlock:[:a :b| a title < b title ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1729
87bb1815460b initial checkin
ca
parents:
diff changeset
  1730
    widgets keysAndValuesDo:[:cls :ctr|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1731
	list add:(MenuDesc title:(cls name)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1732
			   value:(ctr printString)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1733
			  action:[self doSelectNextOfClass:cls startingIn:item]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1734
		 ).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1735
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1736
    list := list asOrderedCollection.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1737
    list add:(MenuDesc separator).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1738
    list add:(MenuDesc title:'Total' value:(total printString)).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1739
    menu := MenuDesc buildFromList:list onGC:aMenu.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1740
    menu do:[:el|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1741
	el hideMenuOnActivated:false
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1742
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1743
    ^ menu
87bb1815460b initial checkin
ca
parents:
diff changeset
  1744
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1745
87bb1815460b initial checkin
ca
parents:
diff changeset
  1746
submenuGeometry:aMenu
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1747
    "builds and returns the geometry submenu"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1748
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1749
    |view point inst list x y|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1750
87bb1815460b initial checkin
ca
parents:
diff changeset
  1751
    view := self selectedView.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1752
    view isNil ifTrue:[^ nil].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1753
87bb1815460b initial checkin
ca
parents:
diff changeset
  1754
    list := OrderedCollection new.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1755
87bb1815460b initial checkin
ca
parents:
diff changeset
  1756
    "/ origin
87bb1815460b initial checkin
ca
parents:
diff changeset
  1757
    point := view relativeOrigin.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1758
    point isNil ifTrue:[ point := view origin ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1759
87bb1815460b initial checkin
ca
parents:
diff changeset
  1760
    x := view left.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1761
    y := view top.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1762
87bb1815460b initial checkin
ca
parents:
diff changeset
  1763
    (x == point x and:[y == point y]) ifTrue:[ inst := point ]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1764
				     ifFalse:[ inst := '%1 --> (%2@%3)' bindWith:point with:x with:y ].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1765
87bb1815460b initial checkin
ca
parents:
diff changeset
  1766
    list add:(MenuDesc title:'origin' value:inst).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1767
87bb1815460b initial checkin
ca
parents:
diff changeset
  1768
    "/ corner
87bb1815460b initial checkin
ca
parents:
diff changeset
  1769
    point := view relativeCorner.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1770
    point isNil ifTrue:[ point := view corner ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1771
87bb1815460b initial checkin
ca
parents:
diff changeset
  1772
    x := view right.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1773
    y := view bottom.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1774
87bb1815460b initial checkin
ca
parents:
diff changeset
  1775
    (x == point x and:[y == point y]) ifTrue:[ inst := point ]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1776
				     ifFalse:[ inst := '%1 --> (%2@%3)' bindWith:point with:x with:y ].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1777
87bb1815460b initial checkin
ca
parents:
diff changeset
  1778
    list add:(MenuDesc title:'corner' value:inst).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1779
87bb1815460b initial checkin
ca
parents:
diff changeset
  1780
    "/ extent
87bb1815460b initial checkin
ca
parents:
diff changeset
  1781
    (point := view relativeExtent) isNil ifTrue:[point := view extent].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1782
    list add:(MenuDesc title:'extent' value:point).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1783
87bb1815460b initial checkin
ca
parents:
diff changeset
  1784
    "/ preferred extent
87bb1815460b initial checkin
ca
parents:
diff changeset
  1785
    list add:(MenuDesc title:'pref. extent' value:(view preferredExtent)).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1786
    list add:(MenuDesc separator).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1787
87bb1815460b initial checkin
ca
parents:
diff changeset
  1788
    "/ view insets
87bb1815460b initial checkin
ca
parents:
diff changeset
  1789
    inst := 'l:%1  r:%2  t:%3  b:%4' bindWith:(view leftInset)
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1790
					 with:(view rightInset)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1791
					 with:(view topInset)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1792
					 with:(view bottomInset).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1793
87bb1815460b initial checkin
ca
parents:
diff changeset
  1794
    list add:(MenuDesc title:'insets'      value:inst).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1795
    list add:(MenuDesc title:'borderWidth' value:(view borderWidth)).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1796
    list add:(MenuDesc title:'level'       value:(view level)).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1797
    list add:(MenuDesc separator).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1798
87bb1815460b initial checkin
ca
parents:
diff changeset
  1799
    (inst := view layout) notNil ifTrue:[ inst := inst displayString ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1800
    list add:(MenuDesc title:'layout' value:inst).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1801
87bb1815460b initial checkin
ca
parents:
diff changeset
  1802
    (inst := view transformation) notNil ifTrue:[ inst := inst displayString ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1803
    list add:(MenuDesc title:'transformation' value:inst).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1804
3183
cd02c3731897 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3174
diff changeset
  1805
    (view isKindOf:Label) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1806
	list add:(MenuDesc separator).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1807
	(inst := view adjust) notNil ifTrue:[ inst := inst displayString ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1808
	list add:(MenuDesc title:'adjust' value:inst).
3183
cd02c3731897 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3174
diff changeset
  1809
    ].
cd02c3731897 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3174
diff changeset
  1810
    (view isKindOf:PanelView) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1811
	list add:(MenuDesc separator).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1812
	(inst := view horizontalLayout ) notNil ifTrue:[ inst := inst displayString ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1813
	list add:(MenuDesc title:'horizontalLayout' value:inst).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1814
	(inst := view verticalLayout ) notNil ifTrue:[ inst := inst displayString ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1815
	list add:(MenuDesc title:'verticalLayout' value:inst).
3183
cd02c3731897 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3174
diff changeset
  1816
    ].
cd02c3731897 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3174
diff changeset
  1817
cd02c3731897 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3174
diff changeset
  1818
    ^ MenuDesc buildFromList:list onGC:aMenu
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1819
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1820
87bb1815460b initial checkin
ca
parents:
diff changeset
  1821
submenuInspector:aMenu
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1822
    "builds and returns the inspector submenu"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1823
3040
b62c4b71910c class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3037
diff changeset
  1824
    |view list n names label value indices|
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1825
87bb1815460b initial checkin
ca
parents:
diff changeset
  1826
    view := self selectedView.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1827
    view isNil ifTrue:[^ nil].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1828
87bb1815460b initial checkin
ca
parents:
diff changeset
  1829
    n := view class instSize.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1830
    n > 0 ifFalse:[^ nil ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1831
87bb1815460b initial checkin
ca
parents:
diff changeset
  1832
    list  := OrderedCollection new:n.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1833
    names := view class allInstVarNames.
3040
b62c4b71910c class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3037
diff changeset
  1834
    indices := (1 to:names size) asArray.
b62c4b71910c class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3037
diff changeset
  1835
    names sortWith:indices.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1836
87bb1815460b initial checkin
ca
parents:
diff changeset
  1837
    1 to:n do:[:i| |action|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1838
	label := (names at:i) printString.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1839
	value := view instVarAt:(indices at:i).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1840
	value isNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1841
	    value  := '------'.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1842
	    action := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1843
	] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1844
	    value  := value displayString contractAtEndTo:40.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1845
	    action := [(view instVarAt:i) inspect].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1846
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1847
	list add:(MenuDesc title:label value:value action:action).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1848
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1849
87bb1815460b initial checkin
ca
parents:
diff changeset
  1850
    ^ MenuDesc buildFromList:list onGC:aMenu
3040
b62c4b71910c class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3037
diff changeset
  1851
b62c4b71910c class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3037
diff changeset
  1852
    "Modified: / 31-07-2013 / 13:12:52 / cg"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1853
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1854
87bb1815460b initial checkin
ca
parents:
diff changeset
  1855
submenuInterface:aMenu
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1856
    "builds and returns the interface submenu"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  1857
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1858
    |view label inst value list|
87bb1815460b initial checkin
ca
parents:
diff changeset
  1859
87bb1815460b initial checkin
ca
parents:
diff changeset
  1860
    view := self selectedView.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1861
    view isNil ifTrue:[^ nil].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1862
87bb1815460b initial checkin
ca
parents:
diff changeset
  1863
    list := OrderedCollection new.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1864
87bb1815460b initial checkin
ca
parents:
diff changeset
  1865
    inst  := view controller.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1866
    value := nil.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1867
87bb1815460b initial checkin
ca
parents:
diff changeset
  1868
    inst isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1869
	label := nil
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1870
    ] ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1871
	inst == view ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1872
	    label := '== view itself'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1873
	] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1874
	    label := inst displayString.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1875
	    value := [view controller inspect].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1876
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1877
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1878
    list add:(MenuDesc title:'controller' value:label action:value).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1879
87bb1815460b initial checkin
ca
parents:
diff changeset
  1880
    inst := view delegate.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1881
    inst notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1882
	list add:(MenuDesc title:'delegate' value:(inst displayString) action:[ view delegate inspect ]).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1883
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1884
87bb1815460b initial checkin
ca
parents:
diff changeset
  1885
    inst := view application.
87bb1815460b initial checkin
ca
parents:
diff changeset
  1886
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1887
    inst notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1888
	|topAppl|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1889
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1890
	list add:(MenuDesc title:'application' value:inst action:[ view application inspect ]).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1891
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1892
	topAppl := inst topApplication.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1893
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1894
	(topAppl notNil and:[topAppl ~~ inst]) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1895
	    list add:(MenuDesc title:'topApplication' value:topAppl action:[ inst topApplication inspect ]).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1896
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1897
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1898
    list add:(MenuDesc separator).
87bb1815460b initial checkin
ca
parents:
diff changeset
  1899
2888
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  1900
    (view respondsTo:#'model') ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1901
	inst := view model.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1902
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1903
	inst isNil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1904
	    ifTrue:[ label := value := nil ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1905
	    ifFalse:[ label := inst displayString.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1906
		      label := label,(self aspectLabelFor:inst inApplicationOf:view).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1907
		      value := [ view model inspect ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1908
		    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1909
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1910
	list add:(MenuDesc title:'model' value:label action:value).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1911
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1912
	(inst notNil and:[view respondsTo:#modelInterface]) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1913
	    view modelInterface keysAndValuesDo:[:key : val|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1914
		val isNil ifTrue:[ label := nil ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1915
			 ifFalse:[ label := val displayString ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1916
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1917
		list add:(MenuDesc title:('      - ', key) value:label ).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1918
	    ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1919
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1920
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1921
87bb1815460b initial checkin
ca
parents:
diff changeset
  1922
    (view respondsTo:#enableChannel) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1923
	inst := view enableChannel.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1924
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1925
	inst isNil ifTrue:[ label := value := nil ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1926
		  ifFalse:[ label := inst displayString.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1927
			    label := label,(self aspectLabelFor:inst inApplicationOf:view).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1928
			    value := [ view enableChannel inspect ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1929
			  ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1930
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1931
	list add:(MenuDesc title:'enableChannel' value:label action:value).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1932
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1933
2888
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  1934
    #( #action #pressAction #releaseAction ) do:[:actionSelector |
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1935
	(view respondsTo:actionSelector) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1936
	    inst := view perform:actionSelector.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1937
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1938
	    inst isNil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1939
		ifTrue:[ label := value := nil ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1940
		ifFalse:[ label := inst displayString.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1941
			    value := [ (view perform:actionSelector) inspect ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1942
			].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1943
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1944
	    list add:(MenuDesc title:actionSelector"'action'" value:label action:value).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1945
	].
2779
10fef360ad85 changed: #submenuInterface:
Claus Gittinger <cg@exept.de>
parents: 2770
diff changeset
  1946
    ].
10fef360ad85 changed: #submenuInterface:
Claus Gittinger <cg@exept.de>
parents: 2770
diff changeset
  1947
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1948
    list last isSeparator ifFalse:[ list add:(MenuDesc separator) ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1949
87bb1815460b initial checkin
ca
parents:
diff changeset
  1950
    (view respondsTo:#listHolder) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1951
	inst := view listHolder.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1952
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1953
	inst isNil ifTrue:[ label := value := nil ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1954
		  ifFalse:[ label := inst class printString.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1955
			    label := label,(self aspectLabelFor:inst inApplicationOf:view).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1956
			    value := [ view listHolder inspect ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1957
			  ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1958
	list add:(MenuDesc title:'listHolder' value:label action:value).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1959
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1960
87bb1815460b initial checkin
ca
parents:
diff changeset
  1961
    (view respondsTo:#list) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1962
	inst := view list.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1963
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1964
	inst isNil ifTrue:[ label := value := nil ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1965
		  ifFalse:[ label := '%1 [%2]' bindWith:(inst class printString) with:(inst size).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1966
			    label := label,(self aspectLabelFor:inst inApplicationOf:view).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1967
			    value := [ view list inspect ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1968
			  ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1969
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1970
	list add:(MenuDesc title:'list' value:label action:value).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1971
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  1972
87bb1815460b initial checkin
ca
parents:
diff changeset
  1973
    list last isSeparator ifTrue:[ list removeLast ].
2888
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  1974
    ^ MenuDesc buildFromList:list onGC:aMenu
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  1975
3040
b62c4b71910c class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3037
diff changeset
  1976
    "Modified: / 31-07-2013 / 13:09:55 / cg"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  1977
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  1978
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1979
submenuMenuItemInterface:aMenu
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1980
    "builds and returns the menuItem interface submenu"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1981
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1982
    |item list|
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1983
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1984
    item := self selectedMenuItem.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1985
    item isNil ifTrue:[^ nil].
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1986
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1987
    list := OrderedCollection new.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1988
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1989
    list add:(MenuDesc
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1990
		title:'itemValue'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1991
		value:(item itemValue)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1992
		action:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1993
		    UserPreferences systemBrowserClass
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1994
			browseImplementorsOf:item itemValue
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  1995
		]).
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1996
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1997
    ^ MenuDesc buildFromList:list onGC:aMenu
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1998
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  1999
    "Created: / 16-08-2017 / 13:51:05 / cg"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2000
!
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2001
3692
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2002
submenuPresentation:aMenu
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2003
    "builds and returns the presentation submenu"
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2004
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2005
    |view list|
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2006
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2007
    view := self selectedView.
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2008
    view isNil ifTrue:[^ nil].
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2009
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2010
    list := OrderedCollection new.
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2011
3693
1b69c8dcdfe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3692
diff changeset
  2012
    list add:(MenuDesc title:'fgColor'     value:(view foregroundColor displayString)).
1b69c8dcdfe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3692
diff changeset
  2013
    list add:(MenuDesc title:'bgColor'     value:(view backgroundColor displayString)).
1b69c8dcdfe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3692
diff changeset
  2014
    list add:(MenuDesc title:'viewBG'      value:(view viewBackground displayString)).
3692
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2015
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2016
    list add:(MenuDesc separator).
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2017
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2018
    list add:(MenuDesc title:'font'        value:(view font printString)).
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2019
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2020
    ^ MenuDesc buildFromList:list onGC:aMenu
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2021
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2022
    "Created: / 18-07-2019 / 12:23:42 / Claus Gittinger"
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2023
!
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2024
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2025
submenuVisibility:aMenu
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2026
    "builds and returns the geometry submenu"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2027
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2028
    |view list value|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2029
87bb1815460b initial checkin
ca
parents:
diff changeset
  2030
    view := self selectedView.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2031
    view isNil ifTrue:[^ nil].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2032
87bb1815460b initial checkin
ca
parents:
diff changeset
  2033
    list := OrderedCollection new.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2034
3692
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2035
    list add:(MenuDesc title:'device'     value:(view device printString) action:[view device inspect]).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2036
    list add:(MenuDesc title:'drawableId' value:(view id)).
3692
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2037
    list add:(MenuDesc title:'gcId'       value:(view gcId) action:[view graphicsContext inspect]).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2038
87bb1815460b initial checkin
ca
parents:
diff changeset
  2039
    list add:(MenuDesc separator).
87bb1815460b initial checkin
ca
parents:
diff changeset
  2040
87bb1815460b initial checkin
ca
parents:
diff changeset
  2041
    list add:(MenuDesc title:'shown'    value:(view shown)).
87bb1815460b initial checkin
ca
parents:
diff changeset
  2042
    list add:(MenuDesc title:'realized' value:(view realized)).
87bb1815460b initial checkin
ca
parents:
diff changeset
  2043
87bb1815460b initial checkin
ca
parents:
diff changeset
  2044
    list add:(MenuDesc separator).
87bb1815460b initial checkin
ca
parents:
diff changeset
  2045
87bb1815460b initial checkin
ca
parents:
diff changeset
  2046
    list add:(MenuDesc title:'hiddenOnRealize' value:(view isHiddenOnRealize)).
87bb1815460b initial checkin
ca
parents:
diff changeset
  2047
87bb1815460b initial checkin
ca
parents:
diff changeset
  2048
    (value := view visibilityChannel) isNil ifTrue:[
3692
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2049
        list add:(MenuDesc title:'visibilityChannel' value:'------').
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2050
    ] ifFalse:[
3692
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2051
        list add:(MenuDesc title:'visibilityChannel'
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2052
                           value:(value displayString)
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2053
                          action:[view visibilityChannel inspect]).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2054
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2055
2758
c61fe917957a comment/format in:8 methods
Claus Gittinger <cg@exept.de>
parents: 2757
diff changeset
  2056
    ^ MenuDesc buildFromList:list onGC:aMenu
3692
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2057
b8a662f98f30 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3689
diff changeset
  2058
    "Modified: / 18-07-2019 / 12:25:39 / Claus Gittinger"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2059
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2060
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2061
!ViewTreeInspectorApplication methodsFor:'private'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2062
2888
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2063
aspectLabelFor:aModel inApplicationOf:aView
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2064
    |app|
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2065
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2066
    aModel isNil ifTrue:[^ ''].
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2067
    aView isNil ifTrue:[^ ''].
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2068
    (app := aView application) isNil ifTrue:[^ ''].
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2069
    app builder bindings keysAndValuesDo:[:aspect :value |
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2070
	value == aModel ifTrue:[^ ' [aspect: ',aspect,']'].
2888
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2071
    ].
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2072
    app class allInstVarNames do:[:nm |
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2073
	(app instVarNamed:nm) == aModel ifTrue:[^ ' [instvar: ',nm,']']
2888
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2074
    ].
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2075
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2076
    ^ ''
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2077
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2078
    "Created: / 27-04-2012 / 14:22:09 / cg"
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2079
!
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  2080
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2081
selectFocusView
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2082
    |rootView focusView|
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2083
87bb1815460b initial checkin
ca
parents:
diff changeset
  2084
    rootView := model rootView.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2085
87bb1815460b initial checkin
ca
parents:
diff changeset
  2086
    (rootView notNil and:[rootView shown]) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2087
	focusView := rootView windowGroup focusView.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2088
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2089
    focusView isNil ifTrue:[^ self ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2090
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2091
    self selectView:focusView
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2092
!
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2093
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2094
selectView:aView
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2095
    |currentItem viewItem|
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2096
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2097
    currentItem := model selectedItem.
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2098
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2099
    (currentItem notNil and:[currentItem widget == aView]) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2100
	^ self
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2101
    ].
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2102
    viewItem := model listOfItems recursiveDetect:[:el| el widget == aView ].
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2103
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2104
    viewItem notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2105
	model selectItem:viewItem.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2106
    ].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2107
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2108
87bb1815460b initial checkin
ca
parents:
diff changeset
  2109
setRootItem:aRootItemOrNil
87bb1815460b initial checkin
ca
parents:
diff changeset
  2110
    |theProcess|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2111
87bb1815460b initial checkin
ca
parents:
diff changeset
  2112
    aRootItemOrNil isNil ifTrue:[
3658
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2113
        process := nil.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2114
    ] ifFalse:[
3658
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2115
        "/ expand tree to level 3
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2116
        aRootItemOrNil do:[:aRootChild|
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2117
            aRootChild do:[:aSubChild| aSubChild expand ].
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2118
            aRootChild expand.
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2119
        ].
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2120
        aRootItemOrNil expand.
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2121
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2122
        process isNil ifTrue:[
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2123
            "/ the focusFollower process terminates itself, when process is not longer theProcess
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2124
            theProcess := process :=
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2125
                Process
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2126
                    for:[
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2127
                        |update testModeChannel|
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2128
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2129
                        update := false.
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2130
                        testModeChannel := model testModeChannel.
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2131
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2132
                        [process == theProcess] whileTrue:[
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2133
                            Delay waitForSeconds:0.5.
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2134
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2135
                            (treeView notNil and:[process == theProcess and:[treeView shown]]) ifTrue:[
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2136
                                (testModeChannel value == true and:[followFocusChannel value == true]) ifTrue:[
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2137
                                    self selectFocusView.
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2138
                                ].
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2139
                                update ifTrue:[
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2140
                                    self updateShownStatus.
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2141
                                ].
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2142
                                update := update not.
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2143
                            ].
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2144
                        ].
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2145
                    ]
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2146
                    priority:(Processor userSchedulingPriority).
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2147
            theProcess name:'ViewTreeInspector - Focus Follower'.
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2148
            theProcess resume.
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2149
        ].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2150
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2151
    model rootItem:aRootItemOrNil.
3034
862cd32dc02f class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3017
diff changeset
  2152
862cd32dc02f class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3017
diff changeset
  2153
    "Modified: / 25-07-2013 / 12:03:44 / cg"
3658
18137fdc0f76 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3628
diff changeset
  2154
    "Modified (format): / 30-04-2019 / 22:32:23 / Claus Gittinger"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2155
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2156
87bb1815460b initial checkin
ca
parents:
diff changeset
  2157
updateShownStatus
87bb1815460b initial checkin
ca
parents:
diff changeset
  2158
    |rootItem min max visState listIdx visY0 visY1 height damage|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2159
87bb1815460b initial checkin
ca
parents:
diff changeset
  2160
    rootItem := model rootItem.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2161
    (rootItem notNil and:[rootItem widget shown]) ifFalse:[^ self].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2162
87bb1815460b initial checkin
ca
parents:
diff changeset
  2163
    max := 0.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2164
    min := 9999999.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2165
87bb1815460b initial checkin
ca
parents:
diff changeset
  2166
    rootItem recursiveEachVisibleItemDo:[:anItem|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2167
	anItem widget notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2168
	    visState := (anItem widget shown).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2169
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2170
	    visState ~~ anItem isDrawnShown ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2171
		anItem isDrawnShown:visState.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2172
		listIdx := treeView identityIndexOf:anItem.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2173
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2174
		listIdx > 0 ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2175
		    max := max max:listIdx.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2176
		    min := min min:listIdx.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2177
		].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2178
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2179
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2180
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2181
    max < min ifTrue:[^ self].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2182
    max := max + 1.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2183
87bb1815460b initial checkin
ca
parents:
diff changeset
  2184
    visY0  := (treeView yVisibleOfLine:min) max:0.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2185
    visY1  := (treeView yVisibleOfLine:max) min:(treeView height).
87bb1815460b initial checkin
ca
parents:
diff changeset
  2186
    height := visY1 - visY0.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2187
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2188
    height > 2 ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2189
	treeView shown ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2190
	    damage := Rectangle left:0 top:visY0 width:(treeView width) height:height.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2191
	    treeView invalidateDeviceRectangle:damage repairNow:false.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2192
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2193
    ].
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2194
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2195
    "Modified: / 16-08-2017 / 12:29:15 / cg"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2196
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2197
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2198
!ViewTreeInspectorApplication methodsFor:'selection'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2199
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2200
selectedMenuItem
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2201
    "answer the selected menuItem or nil"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2202
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2203
    |item|
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2204
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2205
    item := model selectedItem.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2206
    item notNil ifTrue:[ ^ item menuItem ].
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2207
    ^ nil
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2208
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2209
    "Created: / 16-08-2017 / 13:50:35 / cg"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2210
!
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2211
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2212
selectedView
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2213
    "answer the selected view or nil"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2214
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2215
    |item|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2216
87bb1815460b initial checkin
ca
parents:
diff changeset
  2217
    item := model selectedItem.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2218
    item notNil ifTrue:[ ^ item widget ].
3457
3f3ea99e8af5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2219
    ^ nil
3f3ea99e8af5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2220
3f3ea99e8af5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2221
    "Modified (format): / 16-08-2017 / 13:57:30 / cg"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2222
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2223
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2224
!ViewTreeInspectorApplication methodsFor:'testing'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2225
87bb1815460b initial checkin
ca
parents:
diff changeset
  2226
resolveApplicationClassFor:aTreeItem
87bb1815460b initial checkin
ca
parents:
diff changeset
  2227
    aTreeItem isApplicationClass ifTrue:[
87bb1815460b initial checkin
ca
parents:
diff changeset
  2228
       ^ aTreeItem applicationClass
87bb1815460b initial checkin
ca
parents:
diff changeset
  2229
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2230
    ^ nil
87bb1815460b initial checkin
ca
parents:
diff changeset
  2231
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2232
87bb1815460b initial checkin
ca
parents:
diff changeset
  2233
selectedComponentHasChildren
87bb1815460b initial checkin
ca
parents:
diff changeset
  2234
    |item|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2235
87bb1815460b initial checkin
ca
parents:
diff changeset
  2236
    item := model selectedItem.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2237
    ^ (item notNil and:[item hasChildren])
87bb1815460b initial checkin
ca
parents:
diff changeset
  2238
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2239
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2240
!ViewTreeInspectorApplication methodsFor:'user operations'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2241
87bb1815460b initial checkin
ca
parents:
diff changeset
  2242
doBrowse:what
87bb1815460b initial checkin
ca
parents:
diff changeset
  2243
    "open browser on:
3628
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2244
        #view           browse class
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2245
        #model          browse model class
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2246
        #application    browse application class
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2247
        #masterApplication    browse master application class
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2248
        #controller     browse controller class
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2249
    "
3167
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2250
    |inst|
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2251
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2252
    (inst := self objectToInspectOrBrowse:what) isNil ifTrue:[^ self].
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2253
    inst class browserClass openInClass:(inst class) selector:nil
3049
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  2254
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  2255
    "Modified: / 28-08-2013 / 23:57:42 / cg"
3628
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2256
    "Modified (comment): / 30-10-2018 / 16:21:25 / Claus Gittinger"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2257
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2258
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2259
doBrowseWindowSpecMethod
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2260
    |mthd|
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2261
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2262
    mthd := self windowSpecMethodOfSelection.
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2263
    NewSystemBrowser openInClass:mthd mclass selector:mthd selector
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2264
!
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2265
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2266
doCatchEvents
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2267
    model catchEvents:true.
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2268
    isCatchingEventsChannel value:true.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2269
"/    ((builder componentAt:'toolbarMenu') itemAt:#doUncatchEvents)
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2270
"/        enabled:true;
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2271
"/        label:(self class releaseViewIcon);
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2272
"/        activeHelpKey:#doUncatchEvents.
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2273
!
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2274
3171
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2275
doDebugProcess
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2276
    "open debugger on the window process"
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2277
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2278
    |view|
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2279
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2280
    view := self selectedView.
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2281
    view isNil ifTrue:[^ nil].
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2282
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2283
    Debugger openOn:view windowGroup process
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2284
!
16cec0f0e3b4 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3169
diff changeset
  2285
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2286
doDestroy
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2287
    "destroy the current selected view"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2288
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2289
    |item parent|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2290
87bb1815460b initial checkin
ca
parents:
diff changeset
  2291
    item := model selectedItem.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2292
    item isNil ifTrue:[ ^ self].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2293
87bb1815460b initial checkin
ca
parents:
diff changeset
  2294
    parent := item parent.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2295
87bb1815460b initial checkin
ca
parents:
diff changeset
  2296
    parent isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2297
	"/ the root
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2298
	model withSelectionHiddenDo:[item deleteAll].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2299
      ^ self
87bb1815460b initial checkin
ca
parents:
diff changeset
  2300
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2301
87bb1815460b initial checkin
ca
parents:
diff changeset
  2302
    model withSelectionHiddenDo:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2303
	|idx nsel|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2304
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2305
	idx := parent identityIndexOf:item.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2306
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2307
	idx == parent size ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2308
	    nsel := parent at:(idx - 1) ifAbsent:parent
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2309
	] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2310
	    nsel := parent at:(idx + 1)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2311
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2312
	model setValue:nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2313
	item delete.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2314
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2315
	parent isLayoutContainer ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2316
	    parent widget sizeChanged:nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2317
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2318
	model value:nsel.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2319
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2320
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2321
3628
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2322
doEditLanguageResources
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2323
    "open language editor on the application's resources:
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2324
    "
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2325
    |inst|
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2326
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2327
    (inst := self objectToInspectOrBrowse:#application) isNil ifTrue:[^ self].
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2328
    Tools::InternationalLanguageTranslationEditor 
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2329
        openOnPackage:inst class package
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2330
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2331
    "Created: / 30-10-2018 / 16:26:17 / Claus Gittinger"
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2332
!
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2333
3174
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2334
doEditWindowSpec
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2335
    |mthd|
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2336
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2337
    mthd := self windowSpecMethodOfSelection.
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2338
    UIPainter openOnClass:mthd mclass andSelector:mthd selector
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2339
!
cd45c49a0d63 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2340
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2341
doFlash
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2342
    "flash the selected view"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2343
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2344
    |view|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2345
87bb1815460b initial checkin
ca
parents:
diff changeset
  2346
    view := self selectedView.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2347
    view isNil ifTrue:[ ^ self].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2348
87bb1815460b initial checkin
ca
parents:
diff changeset
  2349
    view shown ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2350
	model withSelectionHiddenDo:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2351
	    view perform:#flash ifNotUnderstood:nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2352
	].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2353
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2354
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2355
87bb1815460b initial checkin
ca
parents:
diff changeset
  2356
doInspect:what
87bb1815460b initial checkin
ca
parents:
diff changeset
  2357
    "open inspector on:
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2358
	#view           inspect class
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2359
	#group          inspect windowGroup
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2360
	#model          inspect model
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2361
	#application    inspect application
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2362
	#controller     inspect controller
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2363
	#process        inspect application's process
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2364
    "
3167
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2365
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2366
    |inst|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2367
3167
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2368
    (inst := self objectToInspectOrBrowse:what) isNil ifTrue:[^ self].
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2369
    inst inspect.
3049
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  2370
292d06e8b7ae class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3040
diff changeset
  2371
    "Modified: / 28-08-2013 / 23:58:27 / cg"
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2372
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2373
3034
862cd32dc02f class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3017
diff changeset
  2374
doOpenProcessMonitor
862cd32dc02f class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3017
diff changeset
  2375
    (ProcessMonitorV2 ? ProcessMonitor) open
862cd32dc02f class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3017
diff changeset
  2376
862cd32dc02f class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3017
diff changeset
  2377
    "Created: / 25-07-2013 / 12:34:23 / cg"
862cd32dc02f class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3017
diff changeset
  2378
!
862cd32dc02f class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3017
diff changeset
  2379
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2380
doPickView
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2381
    "pick a window's topView"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2382
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2383
    |screen clickedView topWindow cursor|
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2384
87bb1815460b initial checkin
ca
parents:
diff changeset
  2385
    self doUnpick.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2386
2759
Claus Gittinger <cg@exept.de>
parents: 2758
diff changeset
  2387
    cursor := Cursor fromImage:(self class crossHairIcon).
Claus Gittinger <cg@exept.de>
parents: 2758
diff changeset
  2388
Claus Gittinger <cg@exept.de>
parents: 2758
diff changeset
  2389
    screen := Screen current.
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2390
    clickedView := screen viewFromPoint:(screen pointFromUserShowing:cursor).
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2391
    clickedView isNil ifTrue:[^ self].
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2392
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2393
    topWindow := clickedView topView.
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2394
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2395
    (    topWindow == Screen current rootView
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  2396
     or:[topWindow == self window topView]
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2397
    ) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2398
	^ self
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2399
    ].
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2400
3070
648aad0e3777 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
  2401
    self showWindow:clickedView.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2402
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2403
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2404
doRedraw
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2405
    "redraw the app"
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2406
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2407
    |rootView|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2408
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2409
    (rootView := model rootView) notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2410
	rootView withAllSubViewsDo:[:v | v "redraw; "invalidate].
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2411
    ]
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2412
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2413
    "Modified: / 16-08-2017 / 12:02:11 / cg"
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2414
!
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2415
3168
894c517d8696 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3167
diff changeset
  2416
doSelectNextElementStartingIn:anItem forWhich:aBlock
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2417
    |startItem firstFound searchNext|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2418
87bb1815460b initial checkin
ca
parents:
diff changeset
  2419
    startItem  := model last.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2420
    searchNext := startItem notNil.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2421
    firstFound := nil.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2422
87bb1815460b initial checkin
ca
parents:
diff changeset
  2423
    anItem recursiveDo:[:el|
3525
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2424
        el == startItem ifTrue:[
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2425
            searchNext := false
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2426
        ] ifFalse:[
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2427
            (aBlock value:el) ifTrue:[
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2428
                searchNext ifFalse:[^ model selectItem:el].
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2429
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2430
                firstFound isNil ifTrue:[
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2431
                    firstFound := el
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2432
                ]
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2433
            ]
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2434
        ]
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2435
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2436
    firstFound notNil ifTrue:[
3525
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2437
        self beepInEditor.
5df4da794cd2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3524
diff changeset
  2438
        model selectItem:firstFound
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2439
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2440
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2441
3168
894c517d8696 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3167
diff changeset
  2442
doSelectNextOfApplicationClass:aClass startingIn:anItem
894c517d8696 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3167
diff changeset
  2443
    self doSelectNextElementStartingIn:anItem forWhich:[:el | (self resolveApplicationClassFor:el) == aClass].
894c517d8696 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3167
diff changeset
  2444
!
894c517d8696 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3167
diff changeset
  2445
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2446
doSelectNextOfClass:aClass startingIn:anItem
3168
894c517d8696 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3167
diff changeset
  2447
    self doSelectNextElementStartingIn:anItem forWhich:[:el | el widget class == aClass].
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2448
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2449
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2450
doUncatchEvents
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2451
    "release the inspected window (no longer catch its events)"
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2452
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2453
    model catchEvents:false.
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2454
    isCatchingEventsChannel value:false.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2455
"/    ((builder componentAt:'toolbarMenu') itemAt:#doUncatchEvents)
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2456
"/        label:(self class releaseViewIcon);
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2457
"/        enabled:false;
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2458
"/        activeHelpKey:#doCatchEvents.
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2459
    self doRedraw
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2460
!
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2461
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2462
doUnpick
2455
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2463
    "release current picked window and contained subwindows"
93aaf62a6b95 remove colors from window spec & rework
ca
parents: 2454
diff changeset
  2464
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2465
    self setRootItem:nil.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2466
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2467
3167
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2468
objectToInspectOrBrowse:what
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2469
    "return one of:
3628
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2470
        #view           for inspect/browse view/widget
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2471
        #group          for inspect/browse windowGroup
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2472
        #model          for inspect/browse model
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2473
        #application    for inspect/browse application
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2474
        #masterApplication    for inspect/browse master application
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2475
        #controller     for inspect/browse controller
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2476
        #process        for inspect/browse application's process
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2477
        #widgetClass    for inspect/browse widget's class
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2478
        #menuItem       for inspect/browse menuItem
3167
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2479
    "
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2480
    |view|
3167
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2481
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2482
    what == #menuItem       ifTrue:[
3628
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2483
        ^ model selectedItem menuItem
3457
3f3ea99e8af5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2484
    ].
3f3ea99e8af5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2485
3167
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2486
    view := self selectedView.
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2487
    view isNil ifTrue:[^ nil].
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2488
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2489
    what == #group       ifTrue:[ ^ view windowGroup ].
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2490
    what == #model       ifTrue:[ ^ view model ].
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2491
    what == #controller  ifTrue:[ ^ view controller ].
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2492
    what == #process     ifTrue:[ ^ view windowGroup process ].
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2493
    what == #sensor      ifTrue:[ ^ view sensor ].
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2494
    what == #application ifTrue:[ ^ view application ? view topView ].
3628
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2495
    what == #masterApplication ifTrue:[ ^ view application masterApplication ].
3302
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2496
    what == #applicationClass ifTrue:[ ^ view application ? view topView ].
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2497
413a225308d1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2498
    ^ view
3167
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2499
3457
3f3ea99e8af5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2500
    "Modified: / 16-08-2017 / 13:57:36 / cg"
3628
dae68c3b50a6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3574
diff changeset
  2501
    "Modified: / 30-10-2018 / 16:22:13 / Claus Gittinger"
3167
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2502
!
95025cd0fbce class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3141
diff changeset
  2503
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2504
openDocumentation
3806
17b4f413d051 #OTHER by exept
Claus Gittinger <cg@exept.de>
parents: 3753
diff changeset
  2505
    "Called when <F1> is pressed"
17b4f413d051 #OTHER by exept
Claus Gittinger <cg@exept.de>
parents: 3753
diff changeset
  2506
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2507
    HTMLDocumentView openFullOnDocumentationFile:'tools/misc/TOP.html#VIEWTREEINSPECTOR'
3014
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2508
!
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2509
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2510
showWindow:aView
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2511
    "show a particular window's topView hierarchy,
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2512
     select the given view"
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2513
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2514
    | topWindow |
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2515
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2516
    topWindow := aView topView.
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2517
3124
1973e28a2c75 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3123
diff changeset
  2518
    self doCatchEvents.
3014
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2519
    self setRootItem:(ViewTreeItem buildViewsFrom:topWindow).
05208490cea6 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
  2520
    self selectView:aView.
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2521
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2522
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2523
!ViewTreeInspectorApplication::MenuDesc class methodsFor:'building'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2524
87bb1815460b initial checkin
ca
parents:
diff changeset
  2525
buildFromList:aList onGC:aMenu
87bb1815460b initial checkin
ca
parents:
diff changeset
  2526
    |tabSpec menu w menuPanel|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2527
87bb1815460b initial checkin
ca
parents:
diff changeset
  2528
    w := 0.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2529
    aList do:[:el| w := w max:(el widthOn:aMenu) ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2530
87bb1815460b initial checkin
ca
parents:
diff changeset
  2531
    tabSpec := TabulatorSpecification new.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2532
    tabSpec unit:#pixel.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2533
    tabSpec positions:#(0     1.5 ).
87bb1815460b initial checkin
ca
parents:
diff changeset
  2534
    tabSpec align:#(#left #left).
87bb1815460b initial checkin
ca
parents:
diff changeset
  2535
87bb1815460b initial checkin
ca
parents:
diff changeset
  2536
    w := w + 15.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2537
    tabSpec positions:(Array with:0 with:w).
87bb1815460b initial checkin
ca
parents:
diff changeset
  2538
87bb1815460b initial checkin
ca
parents:
diff changeset
  2539
    menu := Menu new.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2540
87bb1815460b initial checkin
ca
parents:
diff changeset
  2541
    aList do:[:el|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2542
	menu addItem:(el asMenuItemWithTabulatorSpecification:tabSpec).
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2543
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2544
    menuPanel := MenuPanel menu:menu.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2545
    ^ menuPanel
87bb1815460b initial checkin
ca
parents:
diff changeset
  2546
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2547
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2548
!ViewTreeInspectorApplication::MenuDesc class methodsFor:'instance creation'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2549
87bb1815460b initial checkin
ca
parents:
diff changeset
  2550
separator
87bb1815460b initial checkin
ca
parents:
diff changeset
  2551
    ^ self new
87bb1815460b initial checkin
ca
parents:
diff changeset
  2552
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2553
87bb1815460b initial checkin
ca
parents:
diff changeset
  2554
title:aTitle value:aValue
87bb1815460b initial checkin
ca
parents:
diff changeset
  2555
    ^ self title:aTitle value:aValue action:nil
87bb1815460b initial checkin
ca
parents:
diff changeset
  2556
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2557
87bb1815460b initial checkin
ca
parents:
diff changeset
  2558
title:aTitle value:aValue action:anAction
87bb1815460b initial checkin
ca
parents:
diff changeset
  2559
    ^ self new title:aTitle value:aValue action:anAction
87bb1815460b initial checkin
ca
parents:
diff changeset
  2560
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2561
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2562
!ViewTreeInspectorApplication::MenuDesc methodsFor:'accessing'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2563
87bb1815460b initial checkin
ca
parents:
diff changeset
  2564
title
87bb1815460b initial checkin
ca
parents:
diff changeset
  2565
    ^ title
87bb1815460b initial checkin
ca
parents:
diff changeset
  2566
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2567
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2568
!ViewTreeInspectorApplication::MenuDesc methodsFor:'building'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2569
87bb1815460b initial checkin
ca
parents:
diff changeset
  2570
asMenuItemWithTabulatorSpecification:aTabSpec
87bb1815460b initial checkin
ca
parents:
diff changeset
  2571
    |array|
87bb1815460b initial checkin
ca
parents:
diff changeset
  2572
87bb1815460b initial checkin
ca
parents:
diff changeset
  2573
    title isNil ifTrue:[ ^ MenuItem label:value ].     "/ separator
87bb1815460b initial checkin
ca
parents:
diff changeset
  2574
87bb1815460b initial checkin
ca
parents:
diff changeset
  2575
    array := Array with:(title, ':') with:'------'.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2576
87bb1815460b initial checkin
ca
parents:
diff changeset
  2577
    value notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2578
	array at:2 put:(value printString, ' ')
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2579
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2580
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2581
   ^ MenuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2582
	label:(MultiColListEntry fromStrings:array tabulatorSpecification:aTabSpec)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2583
	value:action
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2584
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2585
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2586
!ViewTreeInspectorApplication::MenuDesc methodsFor:'instance creation'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2587
87bb1815460b initial checkin
ca
parents:
diff changeset
  2588
title:aTitle value:aValue action:anAction
87bb1815460b initial checkin
ca
parents:
diff changeset
  2589
    "test for separator
87bb1815460b initial checkin
ca
parents:
diff changeset
  2590
    "
87bb1815460b initial checkin
ca
parents:
diff changeset
  2591
    title  := aTitle withoutSeparators.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2592
    action := anAction.
87bb1815460b initial checkin
ca
parents:
diff changeset
  2593
87bb1815460b initial checkin
ca
parents:
diff changeset
  2594
    aValue notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2595
	value := aValue printString.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2596
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2597
	value size > 70 ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2598
	    value := value copyFrom:1 to:70.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2599
	    value := value, '...'
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2600
	]
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2601
    ].
87bb1815460b initial checkin
ca
parents:
diff changeset
  2602
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2603
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2604
!ViewTreeInspectorApplication::MenuDesc methodsFor:'queries'!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2605
87bb1815460b initial checkin
ca
parents:
diff changeset
  2606
isSeparator
87bb1815460b initial checkin
ca
parents:
diff changeset
  2607
    ^ title isNil
87bb1815460b initial checkin
ca
parents:
diff changeset
  2608
!
87bb1815460b initial checkin
ca
parents:
diff changeset
  2609
87bb1815460b initial checkin
ca
parents:
diff changeset
  2610
widthOn:aGC
87bb1815460b initial checkin
ca
parents:
diff changeset
  2611
    title isNil ifTrue:[^ 5].  "/ separator
2758
c61fe917957a comment/format in:8 methods
Claus Gittinger <cg@exept.de>
parents: 2757
diff changeset
  2612
    ^ title widthOn:aGC
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2613
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2614
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2615
!ViewTreeInspectorApplication::ViewTreeItem class methodsFor:'building'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2616
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2617
buildMenuItemsFrom:aMenuItem
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2618
    "build the items starting from a source menu item;
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2619
     returns the anchor.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2620
    "
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2621
    |item subMenu subItems|
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2622
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2623
    aMenuItem isNil ifTrue:[^ nil].
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2624
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2625
    item     := self forMenuItem:aMenuItem.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2626
    subItems := OrderedCollection new.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2627
    (subMenu := aMenuItem submenuOrNil) notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2628
	subMenu items do:[:eachMenuItem |
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2629
	    subItems add:(self buildMenuItemsFrom:eachMenuItem)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2630
	].
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2631
    ].
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2632
    item children:subItems.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2633
    ^ item
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2634
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2635
    "Created: / 16-08-2017 / 12:23:02 / cg"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2636
!
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2637
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2638
buildViewsFrom:aView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2639
    "build the items starting from a source view;
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2640
     returns the anchor.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2641
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2642
    |item subViews subItems|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2643
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2644
    aView isNil ifTrue:[^ nil].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2645
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2646
    item     := self forView:aView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2647
    subViews := aView subViews.
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2648
    subItems := OrderedCollection new.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2649
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2650
    subViews notEmptyOrNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2651
	subViews do:[:aSubView|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2652
	    subItems add:(self buildViewsFrom:aSubView).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2653
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2654
    ].
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2655
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2656
    (aView isKindOf:MenuPanel) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2657
	(aView items ? #()) do:[:eachMenuItem |
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2658
	    subItems add:(self buildMenuItemsFrom:eachMenuItem)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2659
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2660
    ].
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2661
    item children:subItems.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2662
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2663
    ^ item
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2664
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2665
    "Modified: / 16-08-2017 / 12:43:35 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2666
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2667
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2668
!ViewTreeInspectorApplication::ViewTreeItem class methodsFor:'documentation'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2669
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2670
documentation
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2671
"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2672
    ViewTreeItems represants a pickable object within a ViewTreeModel.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2673
    The class is used to build up the hierarchical tree.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2674
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2675
    [Instance variables:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2676
	widget        <View>            the widget represented by the item
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2677
	spec          <UISpecification> the UISpecification or nil
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2678
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2679
    [Class variables:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2680
	HandleExtent  <Point>           keeps the extent of a handle
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2681
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2682
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2683
    [author:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2684
	Claus Atzkern
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2685
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2686
    [see also:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2687
	HierarchicalItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2688
	ViewTreeModel
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2689
"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2690
!
2177
87bb1815460b initial checkin
ca
parents:
diff changeset
  2691
87bb1815460b initial checkin
ca
parents:
diff changeset
  2692
version
87bb1815460b initial checkin
ca
parents:
diff changeset
  2693
    ^ '$Header$'
87bb1815460b initial checkin
ca
parents:
diff changeset
  2694
! !
87bb1815460b initial checkin
ca
parents:
diff changeset
  2695
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2696
!ViewTreeInspectorApplication::ViewTreeItem class methodsFor:'initialization'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2697
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2698
initialize
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2699
    "set the extent of the Handle
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2700
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2701
    HandleExtent := 6@6.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2702
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2703
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2704
!ViewTreeInspectorApplication::ViewTreeItem class methodsFor:'instance creation'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2705
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2706
forMenuItem:aMenuItem
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2707
    |item|
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2708
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2709
    item := self basicNew initialize.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2710
    item forMenuItem:aMenuItem.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2711
    ^ item
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2712
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2713
    "Created: / 16-08-2017 / 12:07:55 / cg"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2714
!
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2715
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2716
forView:aView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2717
    |item|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2718
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2719
    item := self basicNew initialize.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2720
    item forView:aView.
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2721
    ^ item
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2722
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2723
    "Modified (format): / 16-08-2017 / 12:07:40 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2724
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2725
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2726
new
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2727
    self error:'not allowed'.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2728
  ^ nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2729
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2730
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2731
on:aView withSpec:aSpec
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2732
    |item|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2733
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2734
    item := self basicNew initialize.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2735
    item on:aView withSpec:aSpec.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2736
  ^ item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2737
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2738
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2739
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'accessing'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2740
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2741
applicationClass
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2742
    |appl|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2743
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2744
    widget notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2745
	appl := widget application.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2746
	appl notNil ifTrue:[^ appl class ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2747
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2748
    ^ nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2749
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2750
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2751
isDrawnShown
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2752
    "returns true if the last display operations was done during the widget was shown
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2753
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2754
    ^ isDrawnShown
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2755
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2756
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2757
isDrawnShown:aBoolean
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2758
    isDrawnShown := aBoolean.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2759
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2760
3551
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  2761
isMenuItem
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  2762
    ^ menuItem notNil
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  2763
!
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  2764
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2765
menuItem
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2766
    ^ menuItem
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2767
!
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2768
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2769
parent:aParent
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2770
    super parent:aParent.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2771
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2772
    "Created: / 16-08-2017 / 12:40:26 / cg"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2773
!
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2774
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2775
rootView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2776
    "returns the widget assigned to the root or nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2777
    "
3216
41118d54b47c class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
  2778
    parent isNil ifTrue:[^ nil].
41118d54b47c class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
  2779
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2780
    ^ parent rootView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2781
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2782
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2783
specClass
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2784
    "returns the spec-class assigned to the item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2785
    "
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2786
    widget isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2787
	^ MenuPanelSpec
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2788
    ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2789
    ^ widget specClass
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2790
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2791
    "Modified (format): / 16-08-2017 / 12:31:36 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2792
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2793
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2794
treeModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2795
    "returns the assigned treeModel, an instance of ViewTreeModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2796
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2797
    ^ parent treeModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2798
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2799
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2800
widget
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2801
    "returns the widget assigned to the item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2802
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2803
    ^ widget
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2804
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2805
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2806
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'accessing layout'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2807
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2808
boundsRelativeToRoot
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2809
    "returns the bounds relative to the root widget
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2810
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2811
    ^ self originRelativeToRoot extent:(widget extent)
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2812
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2813
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2814
cornerRelativeToRoot
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2815
    "returns the corner relative to the root widget
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2816
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2817
    ^ self originRelativeToRoot + (widget extent)
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2818
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2819
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2820
extent
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2821
    "returns the extent of the widget
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2822
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2823
    ^ widget extent
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2824
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2825
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2826
layoutType
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2827
    "returns the type of layout assigned to the wiget; nil if the
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2828
     superView cannot resize its sub widgets
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2829
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2830
    |layout specClass superView|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2831
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2832
    (superView := widget superView) isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2833
	^ #Extent
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2834
    ].
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2835
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2836
    specClass := superView specClass.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2837
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2838
    (specClass notNil and:[specClass isLayoutContainer]) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2839
	^ specClass canResizeSubComponents ifTrue:[#Extent] ifFalse:[nil]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2840
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2841
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2842
    (layout := widget geometryLayout) isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2843
	^ #Extent
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2844
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2845
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2846
    layout isLayout ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2847
	layout isLayoutFrame        ifTrue:[ ^ #LayoutFrame ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2848
	layout isAlignmentOrigin    ifTrue:[ ^ #AlignmentOrigin ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2849
	layout isLayoutOrigin       ifTrue:[ ^ #LayoutOrigin ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2850
    ] ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2851
	layout isRectangle          ifTrue:[ ^ #Rectangle ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2852
	layout isPoint              ifTrue:[ ^ #Point ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2853
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2854
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2855
    Transcript showCR:'UNSUPPORTRD LAYOUT: ', layout printString.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2856
  ^ nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2857
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2858
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2859
originRelativeToRoot
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2860
    "returns the origin relative to the root widget
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2861
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2862
    ^ widget originRelativeTo:(self rootView)
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2863
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2864
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2865
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'accessing optimize'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2866
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2867
children
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2868
    "redefined: optimize
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2869
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2870
    ^ children
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2871
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2872
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2873
hasChildren
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2874
    "not only a query; also builds"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2875
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2876
    |subViews list item subMenu|
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2877
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2878
    children isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2879
	isExpanded := false.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2880
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2881
	list := OrderedCollection new.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2882
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2883
	"/ it's either a widget or a menuItem
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2884
	widget notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2885
	    subViews := widget subViews.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2886
	    subViews notEmptyOrNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2887
		subViews do:[:aSubView|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2888
		    item := self class buildViewsFrom:aSubView.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2889
		    item parent:self.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2890
		    list add:item.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2891
		].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2892
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2893
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2894
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2895
	menuItem notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2896
	    (subMenu := menuItem submenuOrNil) notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2897
		subMenu items do:[:aSubItem|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2898
		    item := self class buildMenuItemsFrom:aSubItem.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2899
		    item parent:self.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2900
		    list add:item.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2901
		].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2902
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2903
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2904
	children := list.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2905
    ].
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2906
    ^ children notEmpty
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2907
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2908
    "Modified: / 16-08-2017 / 12:27:23 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2909
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2910
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2911
size
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2912
    "redefined: returns list of children
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2913
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2914
    ^ children size
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2915
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2916
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2917
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'displaying'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2918
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2919
additionalLabelForItem:anItem
3017
d971763e5d03 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3014
diff changeset
  2920
    "answer an additional label for an Item"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2921
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2922
    parent notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2923
	^ parent additionalLabelForItem:anItem
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2924
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2925
    ^ nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2926
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2927
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2928
displayIcon:anIcon atX:x y:y on:aGC
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2929
    |x0 y0 y1 w|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2930
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2931
    super displayIcon:anIcon atX:x y:y on:aGC.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2932
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2933
    self exists ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2934
	aGC paint:(Color red).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2935
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2936
	y0 := y + 1.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2937
	y1 := y + anIcon height - 2.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2938
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2939
	x0 := x - 1.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2940
	w  := anIcon width.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2941
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2942
	2 timesRepeat:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2943
	    aGC displayLineFromX:x0 y:y0 toX:(x0 + w) y:y1.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2944
	    aGC displayLineFromX:x0 y:y1 toX:(x0 + w) y:y0.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2945
	    x0 := x0 + 1.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2946
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2947
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2948
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2949
3184
7ff3f8fb0b79 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3183
diff changeset
  2950
displayOn:aGC x:x y:y h:h isHighlightedAsSelected:isHighlightedAsSelected
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2951
    |labelHeight additionalName label isValidAndShown|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2952
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2953
    label := self label.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2954
    label isEmptyOrNil ifTrue:[^ self].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2955
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2956
    widget isNil ifTrue:[
3674
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2957
        isValidAndShown := true.
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2958
    ] ifFalse:[
3674
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2959
        widget id isNil ifTrue:[
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2960
            isDrawnShown := false.
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2961
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2962
            self exists ifFalse:[
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2963
                xOffsetAdditionalName := nil.
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2964
            ].
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2965
            isValidAndShown := false.
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2966
        ] ifFalse:[
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2967
            isValidAndShown := widget shown.
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2968
        ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2969
    ].
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2970
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2971
    isValidAndShown ifFalse:[
3753
eb97ded9cc8e #OTHER by exept
Claus Gittinger <cg@exept.de>
parents: 3752
diff changeset
  2972
        label := label allItalic allGray.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2973
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2974
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2975
    labelHeight := self heightOn:aGC.
3184
7ff3f8fb0b79 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3183
diff changeset
  2976
    self displayLabel:label h:labelHeight on:aGC x:x y:y h:h isHighlightedAsSelected:isHighlightedAsSelected.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2977
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2978
    xOffsetAdditionalName notNil ifTrue:[
3674
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2979
        additionalName := self additionalLabelForItem:self.
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2980
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2981
        additionalName notNil ifTrue:[
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2982
            self displayLabel:additionalName
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2983
                            h:labelHeight on:aGC
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2984
                            x:(x + xOffsetAdditionalName) y:y
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2985
                            h:h.
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2986
        ] ifFalse:[
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2987
            xOffsetAdditionalName := nil.
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2988
        ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2989
    ].
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2990
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  2991
    "Modified (format): / 16-08-2017 / 12:57:39 / cg"
3674
693d13243c07 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  2992
    "Modified: / 07-06-2019 / 22:14:30 / Claus Gittinger"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2993
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2994
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2995
recursiveAdditionalNameBehaviourChanged
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2996
    width := xOffsetAdditionalName := nil.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2997
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  2998
    children notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  2999
	children do:[:each| each recursiveAdditionalNameBehaviourChanged ]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3000
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3001
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3002
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3003
widthOn:aGC
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3004
    "return the width of the receiver, if it is to be displayed on aGC
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3005
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3006
    |additionalName|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3007
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3008
    width isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3009
	width := self widthOf:(self label) on:aGC.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3010
	width := width + 2.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3011
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3012
	additionalName := self additionalLabelForItem:self.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3013
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3014
	additionalName notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3015
	    xOffsetAdditionalName := width + 10.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3016
	    width := xOffsetAdditionalName + (self widthOf:additionalName on:aGC).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3017
	    width := width + 2.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3018
	] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3019
	    xOffsetAdditionalName := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3020
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3021
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3022
    ^ width
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3023
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3024
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3025
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'enumerating'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3026
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3027
handlesDo:aTwoArgAction
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3028
    "evaluate the two arg block on each handle; the arguments to the block is
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3029
     the rectangle relative to the rootView and the handle type which is
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3030
     set to nil if not resizeable.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3031
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3032
     TYPES:     type    position( X - Y )
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3033
		-------------------------
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3034
		#LT     Left   - Top
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3035
		#LC     Left   - Center
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3036
		#LB     Left   - Bottom
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3037
		#CT     Center - Top
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3038
		#CB     Center - Bottom
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3039
		#RT     Right  - Top
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3040
		#RC     Right  - Center
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3041
		#RB     Right  - Bottom
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3042
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3043
		nil     ** handle not pickable **
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3044
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3045
    |type relOrg relCrn maxExt rootView w h
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3046
     xL    "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3047
     xC    "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3048
     xR    "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3049
     yT    "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3050
     yC    "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3051
     yB    "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3052
    |
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3053
    rootView := self rootView.
3217
af9fd0c681e0 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3216
diff changeset
  3054
    rootView isNil ifTrue:[^ self ].
af9fd0c681e0 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3216
diff changeset
  3055
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3056
    widget isNil ifTrue:[^ self].
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3057
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3058
    relOrg   := widget originRelativeTo:rootView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3059
    relOrg isNil ifTrue:[ ^ self ].    "/ widget destroyed
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3060
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3061
    relOrg   := relOrg - (HandleExtent // 2).
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3062
    relCrn   := relOrg + widget extent.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3063
    maxExt   := rootView extent - HandleExtent.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3064
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3065
    xL := relOrg x max:0.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3066
    xR := relCrn x min:(maxExt x).
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3067
    xC := xR + xL // 2.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3068
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3069
    yT := relOrg y max:0.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3070
    yB := relCrn y min:(maxExt y).
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3071
    yC := yB + yT // 2.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3072
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3073
    type := self layoutType.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3074
    w   := HandleExtent x.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3075
    h   := HandleExtent y.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3076
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3077
    (type == #LayoutFrame or:[type == #Rectangle]) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3078
	aTwoArgAction value:(Rectangle left:xL top:yT width:w height:h) value:#LT.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3079
	aTwoArgAction value:(Rectangle left:xL top:yC width:w height:h) value:#LC.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3080
	aTwoArgAction value:(Rectangle left:xL top:yB width:w height:h) value:#LB.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3081
	aTwoArgAction value:(Rectangle left:xC top:yT width:w height:h) value:#CT.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3082
	aTwoArgAction value:(Rectangle left:xC top:yB width:w height:h) value:#CB.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3083
	aTwoArgAction value:(Rectangle left:xR top:yT width:w height:h) value:#RT.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3084
	aTwoArgAction value:(Rectangle left:xR top:yC width:w height:h) value:#RC.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3085
	aTwoArgAction value:(Rectangle left:xR top:yB width:w height:h) value:#RB.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3086
      ^ self
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3087
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3088
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3089
    aTwoArgAction value:(Rectangle left:xL top:yT width:w height:h) value:nil.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3090
    aTwoArgAction value:(Rectangle left:xL top:yB width:w height:h) value:nil.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3091
    aTwoArgAction value:(Rectangle left:xR top:yT width:w height:h) value:nil.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3092
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3093
    type == #Extent ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3094
	aTwoArgAction value:(Rectangle left:xC top:yB width:w height:h) value:#CB.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3095
	aTwoArgAction value:(Rectangle left:xR top:yC width:w height:h) value:#RC.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3096
	aTwoArgAction value:(Rectangle left:xR top:yB width:w height:h) value:#RB.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3097
      ^ self
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3098
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3099
    aTwoArgAction value:(Rectangle left:xR top:yB width:w height:h) value:nil.
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3100
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3101
    "Modified: / 16-08-2017 / 13:04:27 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3102
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3103
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3104
recursiveEachVisibleItemDo:anOneArgBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3105
    "recursive evaluate the block on each child which is visible
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3106
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3107
    (isExpanded and:[children size > 0]) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3108
	children do:[:aChild|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3109
	    anOneArgBlock value:aChild.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3110
	    aChild recursiveEachVisibleItemDo:anOneArgBlock.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3111
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3112
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3113
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3114
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3115
subViewsDo:aOneArgBlock
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3116
    "evaluate aBlock for all subviews other than InputView's
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3117
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3118
    |subViews|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3119
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3120
    subViews := widget subViews.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3121
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3122
    subViews notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3123
	subViews do:aOneArgBlock
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3124
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3125
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3126
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3127
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'initialization'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3128
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3129
forMenuItem:aMenuItem
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3130
    menuItem := aMenuItem.
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3131
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3132
    "Created: / 16-08-2017 / 12:08:50 / cg"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3133
!
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3134
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3135
forView:aView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3136
    widget := aView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3137
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3138
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3139
initialize
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3140
    "setup default attributes
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3141
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3142
    super initialize.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3143
    isDrawnShown := false.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3144
    isExpanded   := false.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3145
    children     := OrderedCollection new.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3146
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3147
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3148
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'operations delete'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3149
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3150
delete
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3151
    "delete self and all contained items; the assigned views are destroyed
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3152
     in case of rootView, only the children are deleted
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3153
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3154
    parent isHierarchicalItem ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3155
	self criticalDo:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3156
	    parent remove:self.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3157
	    widget destroy.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3158
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3159
    ] ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3160
	self deleteAll
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3161
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3162
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3163
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3164
deleteAll
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3165
    "delete all contained items; the assigned views are destroyed
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3166
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3167
    children size == 0 ifTrue:[^ self].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3168
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3169
    self criticalDo:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3170
	self nonCriticalDo:[:el| el widget destroy ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3171
	self removeAll
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3172
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3173
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3174
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3175
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'operations layout'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3176
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3177
asLayoutFrame
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3178
    "convert the layout of the widget to a LayoutFrame;
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3179
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3180
    |extent layout newLyt lftFrc lftOff topFrc topOff|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3181
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3182
    layout := widget geometryLayout.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3183
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3184
    layout isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3185
	^ widget bounds asLayout
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3186
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3187
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3188
    layout isLayout ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3189
	layout isRectangle ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3190
	    ^ LayoutFrame leftOffset:(layout left) rightOffset:(layout right)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3191
			   topOffset:(layout top) bottomOffset:(layout bottom)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3192
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3193
	layout isPoint ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3194
	    extent := widget extent.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3195
	  ^ LayoutFrame leftOffset:(layout x)  rightOffset:(layout x + extent x)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3196
			 topOffset:(layout y) bottomOffset:(layout y + extent y)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3197
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3198
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3199
	Transcript showCR:'UNSUPPORTRD LAYOUT: ', layout printString.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3200
      ^ nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3201
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3202
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3203
    layout isLayoutFrame ifTrue:[ ^ layout copy ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3204
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3205
    lftFrc := layout leftFraction.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3206
    lftOff := layout leftOffset.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3207
    topFrc := layout topFraction.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3208
    topOff := layout topOffset.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3209
    extent := widget extent.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3210
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3211
    newLyt := LayoutFrame leftFraction:lftFrc offset:lftOff
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3212
			 rightFraction:lftFrc offset:(lftOff + extent x)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3213
			   topFraction:topFrc offset:topOff
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3214
			bottomFraction:topFrc offset:(topOff + extent y).
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3215
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3216
    (      layout isAlignmentOrigin
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3217
     and:[(layout leftAlignmentFraction ~= 0 or:[layout topAlignmentFraction ~= 0])]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3218
    ) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3219
	|svRc prBd dlta|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3220
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3221
	svRc := widget superView viewRectangle.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3222
	prBd := widget preferredBounds.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3223
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3224
	dlta := (  ((layout rectangleRelativeTo:svRc preferred:prBd) corner)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3225
		 - ((newLyt rectangleRelativeTo:svRc preferred:prBd) corner)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3226
		) rounded.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3227
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3228
	newLyt   leftOffset:(lftOff + dlta x).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3229
	newLyt  rightOffset:(lftOff + extent x + dlta x).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3230
	newLyt    topOffset:(topOff + dlta y).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3231
	newLyt bottomOffset:(topOff + extent y + dlta y).
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3232
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3233
    ^ newLyt
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3234
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3235
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3236
moveLeft:l top:t
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3237
    "move the widget n pixele left and right
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3238
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3239
    |layout|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3240
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3241
    self isMoveable ifFalse:[ ^ self ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3242
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3243
    (layout := widget geometryLayout) isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3244
	"Extent"
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3245
	widget origin:(widget origin + (l@t)).
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3246
      ^ self
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3247
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3248
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3249
    layout := layout copy.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3250
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3251
    layout isLayout ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3252
	layout leftOffset:(layout leftOffset + l)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3253
		topOffset:(layout topOffset  + t).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3254
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3255
	layout isLayoutFrame ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3256
	    layout  rightOffset:(layout rightOffset  + l).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3257
	    layout bottomOffset:(layout bottomOffset + t).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3258
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3259
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3260
    ] ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3261
	layout isRectangle ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3262
	    layout setLeft:(layout left + l).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3263
	    layout  setTop:(layout top  + t).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3264
	] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3265
	    layout isPoint ifFalse:[^ self].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3266
	    layout x:(layout x + l) y:(layout y + t).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3267
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3268
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3269
    widget geometryLayout:layout.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3270
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3271
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3272
resizeLeft:l top:t right:r bottom:b
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3273
    "resize the widget measured in pixels
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3274
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3275
    |layout|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3276
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3277
    self isResizeable ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3278
	^ self
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3279
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3280
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3281
    (layout := widget geometryLayout) isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3282
	"Extent"
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3283
	(r == l and:[b == t]) ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3284
	    widget extent:(widget computeExtent + ((r-l) @ (b-t))).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3285
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3286
	^ self
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3287
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3288
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3289
    layout isLayout ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3290
	layout := layout copy.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3291
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3292
	layout leftOffset:(layout leftOffset + l)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3293
		topOffset:(layout topOffset  + t).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3294
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3295
	layout isLayoutFrame ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3296
	    layout bottomOffset:(layout bottomOffset + b).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3297
	    layout  rightOffset:(layout rightOffset  + r).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3298
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3299
    ] ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3300
	layout isRectangle ifFalse:[^ self].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3301
	layout := layout copy.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3302
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3303
	layout left:(layout left   + l)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3304
	      right:(layout right  + r)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3305
		top:(layout top    + t)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3306
	     bottom:(layout bottom + b).
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3307
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3308
    widget geometryLayout:layout.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3309
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3310
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3311
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'operations update'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3312
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3313
updateChildren
3209
c13a1f4f4ccb class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3186
diff changeset
  3314
    |queue|
c13a1f4f4ccb class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3186
diff changeset
  3315
3532
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3316
    queue := OrderedCollection with:self.
3209
c13a1f4f4ccb class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3186
diff changeset
  3317
c13a1f4f4ccb class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3186
diff changeset
  3318
    self criticalDo:[
3532
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3319
        [queue notEmpty] whileTrue:[
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3320
            |toRemove  elProcessed|
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3321
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3322
            elProcessed := queue removeFirst.
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3323
            toRemove := nil.
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3324
            elProcessed nonCriticalDo:[:el|
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3325
                el exists ifTrue:[
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3326
                    queue add:el.
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3327
                ] ifFalse:[
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3328
                    toRemove isNil ifTrue:[toRemove := OrderedCollection new].
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3329
                    toRemove add:el.
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3330
                ]
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3331
            ].
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3332
            toRemove notNil ifTrue:[
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3333
                toRemove do:[:el| elProcessed remove:el ].
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3334
            ].
12b7b904b5e1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3525
diff changeset
  3335
        ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3336
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3337
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3338
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3339
updateFromChildren:mergedList
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3340
    "update my children against the list of items derived from
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3341
     the merged list.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3342
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3343
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3344
    mergedList size == 0 ifTrue:[ ^ self removeAll ].
3747
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3345
    children   size == 0 ifTrue:[ self addAll:mergedList. ^mergedList ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3346
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3347
    self criticalDo:[
3747
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3348
        self nonCriticalDo:[:el| |wdg|
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3349
            wdg := el widget.
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3350
            mergedList detect:[:e2| e2 widget == wdg ] ifNone:[ self remove:el ].
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3351
        ].
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3352
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3353
        mergedList keysAndValuesDo:[:i :el| |wdg e2|
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3354
            wdg := el widget.
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3355
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3356
            e2  := self at:i ifAbsent:nil.
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3357
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3358
            (e2 isNil or:[e2 widget ~~ wdg]) ifTrue:[
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3359
                self add:el beforeIndex:i
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3360
            ]
92077573d5c4 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 3746
diff changeset
  3361
        ]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3362
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3363
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3364
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3365
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'printing & storing'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3366
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3367
icon
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3368
    "get the icon used for presentation"
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3369
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3370
    |specClass model|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3371
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3372
    menuItem notNil ifTrue:[
3667
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3373
        menuItem isSeparator ifTrue:[
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3374
            (parent widget perform:#isVerticalLayout ifNotUnderstood:[^ DividerSpec icon]) ifTrue:[
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3375
                ^ DividerSpec horizontalIcon.
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3376
            ].    
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3377
            ^ DividerSpec verticalIcon.
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3378
        ].    
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3379
        menuItem label isImage ifTrue:[
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3380
            ^ menuItem label magnifiedTo:20@20.
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3381
        ].
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3382
    ].
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3383
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3384
    specClass := self specClass.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3385
    specClass isNil ifTrue:[^ nil].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3386
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3387
    model := self treeModel.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3388
    model notNil ifTrue:[
3667
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3389
        ^ model iconAt:specClass ifNonePut:[specClass icon]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3390
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3391
    ^ specClass icon
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3392
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3393
    "Modified: / 16-08-2017 / 13:00:35 / cg"
3667
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  3394
    "Modified: / 27-05-2019 / 13:27:28 / Claus Gittinger"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3395
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3396
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3397
label
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3398
    "get the label used for presentation
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3399
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3400
    ^ self string
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3401
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3402
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3403
printOn:aStream
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3404
    "append a a printed representation of the item to aStream
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3405
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3406
    aStream nextPutAll:(self string)
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3407
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3408
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3409
string
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3410
    "get the string
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3411
    "
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3412
    widget isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3413
	^ menuItem class name
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3414
    ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3415
    ^ widget class name.
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3416
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3417
    "Modified: / 16-08-2017 / 13:45:39 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3418
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3419
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3420
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'queries'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3421
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3422
canChangeLayout
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3423
    "returns true if the layout of the widget can be changed and the
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3424
     layout is not organized by its superView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3425
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3426
    ^ self isResizeable
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3427
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3428
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3429
canResizeSubComponents
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3430
    "returns true if the widget can resize its sub components
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3431
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3432
    |specClass|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3433
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3434
    specClass := self specClass.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3435
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3436
    specClass notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3437
	^ specClass canResizeSubComponents
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3438
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3439
    ^ false
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3440
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3441
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3442
exists
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3443
    widget isNil ifTrue:[^ menuItem notNil].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3444
    widget id notNil ifTrue:[^ true ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3445
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3446
    exists ~~ false ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3447
	exists := false.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3448
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3449
	widget superView notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3450
	    (parent isHierarchicalItem and:[parent exists]) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3451
		exists := (parent widget subViews includesIdentical:widget).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3452
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3453
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3454
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3455
    ^ exists
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3457
    "Modified: / 16-08-2017 / 12:47:50 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3458
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3459
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3460
isApplicationClass
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3461
    |cls|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3462
3551
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  3463
    widget isNil ifTrue:[^ false].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3464
    cls := widget class.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3465
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3466
    ^ (    cls == ApplicationSubView
3551
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  3467
        or:[cls == ApplicationWindow
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  3468
        or:[cls == SubCanvas]]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3469
      )
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3470
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3471
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3472
isSelected
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3473
    |model|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3474
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3475
    model := self treeModel.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3476
    model notNil ifTrue:[^ model isSelected:self].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3477
    ^ false
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3478
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3479
3551
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  3480
isView
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  3481
    ^ widget notNil
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  3482
!
94a23bbd725b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3532
diff changeset
  3483
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3484
supportsSubComponents
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3485
    "returns true if the widget supports sub components
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3486
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3487
    |specClass|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3488
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3489
    widget isScrollWrapper ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3490
	^ false
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3491
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3492
    specClass := self specClass.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3493
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3494
    specClass notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3495
	^ specClass supportsSubComponents
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3496
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3497
    ^ false
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3498
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3499
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3500
!ViewTreeInspectorApplication::ViewTreeItem methodsFor:'testing'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3501
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3502
isInLayoutContainer
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3503
    "returns true if the widget is in a layout container
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3504
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3505
    |sv specClass|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3506
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3507
    sv := widget superView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3508
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3509
    sv notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3510
	specClass := sv specClass.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3511
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3512
	specClass notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3513
	    ^ specClass isLayoutContainer
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3514
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3515
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3516
    ^ false
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3517
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3518
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3519
isLayoutContainer
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3520
    "answer whether corresponding view instances of the spec class can contain
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3521
     (and arrange) other view
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3522
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3523
    |specClass|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3524
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3525
    specClass := self specClass.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3526
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3527
    specClass notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3528
	^ specClass isLayoutContainer
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3529
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3530
    ^ false
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3531
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3532
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3533
isMoveable
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3534
    "returns true if the widget is not in a layout container
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3535
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3536
    self isInLayoutContainer ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3537
	^ widget superView notNil
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3538
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3539
    ^ false
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3540
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3541
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3542
isResizeable
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3543
    "returns true if the widget is resizeable
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3544
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3545
    |sv specClass|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3546
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3547
    sv := widget superView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3548
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3549
    sv notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3550
	specClass := sv specClass.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3551
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3552
	specClass notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3553
	    ^ specClass canResizeSubComponents
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3554
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3555
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3556
    ^ false
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3557
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3558
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3559
!ViewTreeInspectorApplication::ViewTreeModel class methodsFor:'documentation'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3560
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3561
documentation
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3562
"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3563
    Instances of ViewTreeModel can be used as model on a View and all
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3564
    it contained subviews for a HierarchicalListView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3565
    The model keeps two values, the hierarchical representation of the views
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3566
    and subviews (ViewTreeItems) and the selection, a list of selected ViewTreeItems's.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3567
    It shows the selected items highlighted.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3568
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3569
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3570
    [Instance variables:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3571
	lockSema            <Semaphore>         lock selection notifications and redraws
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3572
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3573
	testModeChannel     <ValueHolder>       true, than running in test mode.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3574
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3575
	hasTargetWidgetChannel <ValueHolder>    true, than any target view is grapped
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3576
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3577
	selection           <Sequence or nil>   selected items or nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3578
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3579
	hiddenLevel         <Integer>           internal use; redrawing the selection
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3580
						only is done if the counter is 0.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3581
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3582
	listOfItems         <HierarchicalList>  hiearchical list build from existing items.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3583
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3584
	selectedSuperItems  <Sequence>          list of selected super items; items selected
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3585
						but not contained in another selected item.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3586
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3587
	inputEventAction    <Action>            called for each InputEvent
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3588
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3589
	mappedViewAction    <Action>            called for a new mapped view which
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3590
						can not be found in the current item list.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3591
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3592
	beforeSelectionChangedAction <Action>   called before the selection changed
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3593
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3594
    [author:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3595
	Claus Atzkern
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3596
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3597
    [see also:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3598
	ViewTreeItem
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3599
"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3600
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3601
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3602
examples
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3603
"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3604
    example 1: pick any window and show views and contained views
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3605
										[exBegin]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3606
    |top sel model panel|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3607
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3608
    model := ViewTreeModel new.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3609
    top   := StandardSystemView new; extent:440@400.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3610
    sel   := ScrollableView for:HierarchicalListView miniScroller:true origin:0.0@0.0 corner:1.0@1.0 in:top.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3611
    sel bottomInset:24.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3612
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3613
    panel := HorizontalPanelView origin:0.0@1.0 corner:1.0@1.0 in:top.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3614
    panel topInset:-24.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3615
    panel horizontalLayout:#fitSpace.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3616
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3617
    Button label:'Exit'       action:[model rootItem:nil. top destroy] in:panel.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3618
    Button label:'Pick Views' action:[  |win|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3619
					(     (win := Screen current viewFromUser) notNil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3620
					 and:[(win := win topView) ~~ Screen current rootView
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3621
					 and:[win ~~ top]]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3622
					) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3623
					    model rootItem:(ViewTreeItem buildViewsFrom:win)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3624
					] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3625
					    model rootItem:nil
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3626
					]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3627
				     ] in:panel.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3628
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3629
    sel  multipleSelectOk:true.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3630
    sel              list:model listOfItems.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3631
    sel             model:model.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3632
    sel          useIndex:false.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3633
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3634
    sel doubleClickAction:[:i| |el|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3635
	el := model listOfItems at:i.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3636
	el spec notNil ifTrue:[ el spec   inspect ] ifFalse:[ el widget inspect ]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3637
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3638
    sel indicatorAction:[:i| (model listOfItems at:i) toggleExpand ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3639
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3640
    model inputEventAction:[:anEvent| |item|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3641
	anEvent isButtonEvent ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3642
	    anEvent isButtonPressEvent ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3643
		model selectedItem:(model listOfItems detectItemRespondsToView:(anEvent view)).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3644
	    ] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3645
		anEvent type == #'buttonMultiPress:x:y:' ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3646
		    (item := model selectedItem) notNil ifTrue:[item widget inspect]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3647
		]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3648
	    ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3649
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3650
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3651
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3652
    top openAndWait.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3653
    [[top shown] whileTrue:[Delay waitForSeconds:0.5]. model rootItem:nil] forkAt:8
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3654
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3655
										[exEnd]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3656
"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3657
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3658
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3659
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'accessing'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3660
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3661
application:anApplication
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3662
    listOfItems application:anApplication.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3663
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3664
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  3665
catchEvents:aBoolean
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  3666
    catchEvents := aBoolean.
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  3667
    aBoolean ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3668
	self redrawUnselected:selection andLock:false checkTestMode:false.
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  3669
    ].
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  3670
!
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  3671
3112
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3672
path
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3673
    "Return a XPath like path to this item"
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3674
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3675
    | view views|
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3676
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3677
    selection isNil ifTrue:[ ^ nil ].
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3678
    selection isCollection ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3679
	selection size ~~ 1 ifTrue:[ ^ nil ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3680
	view := selection anElement widget.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3681
    ] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3682
	view := selection widget.
3112
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3683
    ].
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3684
    view isNil ifTrue:[^ nil].
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3685
3112
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3686
    views := OrderedCollection new.
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3687
    [ view notNil ] whileTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3688
	views add: view.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3689
	view := view superView.
3112
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3690
    ].
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3691
    views removeLast.
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3692
    ^ String streamContents:[ :s|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3693
	views reverseDo:[:each |
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3694
	    s nextPutAll:'/'.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3695
	    s nextPutAll: each name asString "storeString".
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3696
	].
3112
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3697
    ]
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3698
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3699
    "Created: / 19-05-2014 / 18:15:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  3700
    "Modified: / 16-08-2017 / 13:03:47 / cg"
3112
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3701
!
80453ab62df9 Added field that shows XPath like path to selected widged.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
  3702
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3703
rootItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3704
    "get the rootItem the event viewer is established on
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3705
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3706
    ^ listOfItems root
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3707
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3708
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3709
rootItem:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3710
    "set the rootItem the event viewer is established on
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3711
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3712
    |expanded|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3713
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3714
    timedUpdateTask := nil.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3715
    self deselect.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3716
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3717
    lockSema critical:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3718
	anItem notNil ifTrue:[ expanded := anItem isExpanded ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3719
		     ifFalse:[ expanded := false ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3720
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3721
	self value:nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3722
	listOfItems root:anItem.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3723
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3724
	anItem notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3725
	    timedUpdateTask := Process for:[ self timedUpdateTaskCycle ] priority:8.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3726
	    timedUpdateTask name:'Update'.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3727
	    timedUpdateTask resume.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3728
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3729
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3730
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3731
    (expanded and:[anItem notNil]) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3732
	anItem expand
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3733
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3734
    ^ anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3735
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3736
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3737
rootView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3738
    "get the top widget the event viewer is established on, a View
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3739
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3740
    ^ listOfItems rootView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3741
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3742
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3743
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'accessing actions'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3745
beforeSelectionChangedAction
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3746
    "none argument action which is called before
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3747
     the selection changed
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3748
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3749
    ^ beforeSelectionChangedAction
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3750
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3751
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3752
beforeSelectionChangedAction:aNoneArgBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3753
    "none argument action which is called before
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3754
     the selection changed
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3755
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3756
    beforeSelectionChangedAction := aNoneArgBlock.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3757
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3758
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3759
inputEventAction
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3760
    "called for each input event; the argument to the action is the WindowEvent
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3761
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3762
    ^ inputEventAction
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3763
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3764
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3765
inputEventAction:aOneArgActionTheEvent
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3766
    "called for each input event; the argument to the action is the WindowEvent
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3767
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3768
    inputEventAction := aOneArgActionTheEvent.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3769
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3770
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3771
mappedViewAction
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3772
    "called for a new mapped view which can not be found
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3773
     in the current item list
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3774
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3775
    ^ mappedViewAction
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3776
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3777
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3778
mappedViewAction:aOneArgBlockTheMappedView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3779
    "called for a new mapped view which can not be found
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3780
     in the current item list
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3781
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3782
    mappedViewAction := aOneArgBlockTheMappedView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3783
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3784
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3785
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'accessing look'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3786
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3787
iconAt:aKey ifNonePut:aNoneArgBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3788
    |icon view|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3789
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3790
    icon := icons at:aKey ifAbsent:nil.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3791
    icon notNil ifTrue:[^ icon].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3792
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3793
    icon := aNoneArgBlock value.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3794
    icon isNil ifTrue:[^ nil].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3795
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3796
    view := self rootView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3797
    view isNil ifTrue:[^ icon].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3798
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3799
    icon := icon copy onDevice:(view device).
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3800
    icon isImage ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3801
	icon clearMaskedPixels.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3802
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3803
    icons at:aKey put:icon.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3804
    ^ icon
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3805
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3806
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3807
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'accessing visibility'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3808
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3809
signalHiddenLevel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3810
    "show the selection if signaled; increments hiddenLevel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3811
     see: #waitHiddenLevel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3812
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3813
    (hiddenLevel := hiddenLevel - 1) < 1 ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3814
	hiddenLevel := 0.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3815
	self invalidateSelection.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3816
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3817
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3818
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3819
waitHiddenLevel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3820
    "hide the selection until signaled; increments hiddenLevel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3821
     see: #signalHiddenLevel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3822
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3823
    self redrawUnselected:selection andLock:true
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3824
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3825
3453
01e6b207c1b4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3398
diff changeset
  3826
withSelectionHiddenDo:aZeroArgumentBlock
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3827
    "apply block with selection hidden
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3828
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3829
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3830
    [
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3831
	self waitHiddenLevel.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3832
	aZeroArgumentBlock value
3453
01e6b207c1b4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3398
diff changeset
  3833
    ] ensure:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3834
	self signalHiddenLevel.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3835
    ].
3453
01e6b207c1b4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3398
diff changeset
  3836
01e6b207c1b4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3398
diff changeset
  3837
    "Modified (format): / 17-07-2017 / 10:44:01 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3838
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3839
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3840
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'aspects'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3841
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3842
hasTargetWidgetChannel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3843
    "answer the channel which is set to true if a target widget exists"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3844
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3845
    ^ hasTargetWidgetChannel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3846
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3847
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3848
listOfItems
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3849
    "hiearchical list build from existing items"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3850
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3851
    ^ listOfItems
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3852
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3853
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3854
selectOnClickHolder
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3855
    "boolean holder, which indicates whether the selection will change on click
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3856
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3857
    ^ selectOnClickHolder
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3858
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3859
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3860
testModeChannel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3861
    "answer a boolean channel which describes the behaviour how to process
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3862
     events on the target view.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3863
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3864
     false: all input events are eaten and the selection is shown on the target view.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3865
     true:  no  input events are eaten and no  selection is shown on the target view."
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3866
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3867
    ^ testModeChannel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3868
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3869
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3870
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'change & update'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3871
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3872
targetWidgetChanged
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3873
    hasTargetWidgetChannel value:(self rootItem notNil).
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3874
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3875
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3876
timedUpdateTaskCycle
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3877
    |view myTaskId|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3878
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3879
    myTaskId := timedUpdateTask.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3880
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3881
    listOfItems root notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3882
	view := listOfItems root widget.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3883
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3884
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3885
    [ view notNil ] whileTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3886
	Delay waitForSeconds:0.5.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3887
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3888
	(myTaskId == timedUpdateTask and:[view id notNil]) ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3889
	    view := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3890
	] ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3891
	    (view sensor hasUserEvent:#updateChildren for:self) ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3892
		view sensor pushUserEvent:#updateChildren for:self.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3893
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3894
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3895
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3896
    timedUpdateTask == myTaskId ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3897
	timedUpdateTask := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3898
	listOfItems root:nil.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3899
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3900
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3901
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3902
update:something with:someArgument from:aModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3903
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3904
    aModel == testModeChannel ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3905
	(hiddenLevel == 0 and:[selection size > 0]) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3906
	    testModeChannel value ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3907
		self redrawUnselected:selection andLock:false checkTestMode:false.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3908
	    ] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3909
		self invalidateSelection.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3910
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3911
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3912
	^ self
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3913
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3914
    super update:something with:someArgument from:aModel.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3915
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3916
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3917
updateChildren
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3918
    |rootItem|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3919
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3920
    rootItem := listOfItems root.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3921
    rootItem isNil ifTrue:[^ self].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3922
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3923
    rootItem exists ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3924
	listOfItems root:nil.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3925
    ] ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3926
	rootItem updateChildren.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3927
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3928
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3929
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3930
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'event processing'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3931
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3932
processEvent:anEvent
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3933
    "catch and process all WindowEvents for the rootComponent and its contained
2757
6c83d6b487b2 changed:
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
  3934
     widgets; redraw selection in case of damage...
6c83d6b487b2 changed:
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
  3935
     return true, if the event was eaten"
6c83d6b487b2 changed:
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
  3936
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3937
    |evView item rootView testMode|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3938
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  3939
    catchEvents ifFalse:[^ false].
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  3940
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3941
    evView := anEvent view.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3942
    evView isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3943
	(anEvent isMessageSendEvent not or:[anEvent receiver ~~ self]) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3944
	    ^ false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3945
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3946
	anEvent value.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3947
	^ true.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3948
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3949
    rootView := listOfItems rootView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3950
    rootView isNil ifTrue:[ ^ false ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3951
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3952
    anEvent isConfigureEvent ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3953
	hiddenLevel == 0 ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3954
	    self redrawUnselected:selection andLock:false.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3955
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3956
	^ false
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3957
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3958
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3959
    "/ check whether view is contained within the rootView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3960
    (evView == rootView or:[evView isComponentOf:rootView]) ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3961
	^ false
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3962
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3963
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3964
    anEvent isInputEvent ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3965
	anEvent isDamage ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3966
	    hiddenLevel == 0 ifTrue:[self invalidateSelection].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3967
	    ^ false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3968
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3969
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3970
	anEvent isMapEvent ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3971
	    mappedViewAction notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3972
		item := listOfItems recursiveDetect:[:el| el widget == evView].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3973
		item isNil ifTrue:[ mappedViewAction value:evView ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3974
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3975
	    ^ false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3976
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3977
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3978
	anEvent type == #terminate ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3979
	    item := listOfItems recursiveDetect:[:el| el widget == evView].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3980
	    item notNil ifTrue:[ self processTerminateForItem:item ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3981
	    ^ false
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3982
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3983
	^ false
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3984
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3985
    testMode := testModeChannel value.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3986
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3987
    anEvent isFocusEvent ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3988
	evView == rootView ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3989
	    self invalidateSelection
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3990
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3991
	^ testMode not.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3992
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3993
    anEvent isPointerEnterLeaveEvent ifTrue:[ ^ testMode not ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3994
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3995
    testMode ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3996
	inputEventAction notNil ifTrue:[ inputEventAction value:anEvent ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  3997
    ] ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3998
	anEvent isButtonPressEvent ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  3999
	    selectOnClickHolder value ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4000
		self selectItem:(listOfItems detectItemRespondsToView:evView).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4001
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4002
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4003
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4004
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4005
    (hiddenLevel ~~ 0 and:[anEvent isButtonReleaseEvent]) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4006
	hiddenLevel := 1.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4007
	self signalHiddenLevel.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4008
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4009
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4010
    ^ testMode not
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4011
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4012
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4013
processTerminateForItem:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4014
    "received terminate for an item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4015
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4016
    anItem remove.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4017
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4018
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4019
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'initialization'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4020
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4021
initialize
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4022
    "setup the default attributes
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4023
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4024
    super initialize.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4025
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4026
    hiddenLevel           := 0.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4027
    lockSema              := RecursionLock new.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4028
    listOfItems           := ItemList new on:self.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4029
    selectedSuperItems    := #().
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4030
    icons                 := IdentityDictionary new.
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  4031
    catchEvents           := true.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4032
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4033
    hasTargetWidgetChannel := false asValue.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4034
    selectOnClickHolder    := true asValue.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4035
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4036
    testModeChannel := false asValue.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4037
    testModeChannel addDependent:self.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4038
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4039
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4040
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'private selection'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4041
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4042
invalidateSelection
3319
97fd83492529 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3302
diff changeset
  4043
    "invalidate (force async redraw) the current selection
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4044
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4045
    |topView|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4046
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4047
    testModeChannel value ifTrue:[ ^ self ]. "/ test whether running testMode
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4048
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4049
    (     hiddenLevel == 0
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4050
     and:[selection notNil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4051
     and:[(topView := listOfItems rootView) notNil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4052
     and:[topView shown]]]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4053
    ) ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4054
	topView sensor pushUserEvent:#redrawSelection for:self withArguments:#()
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4055
    ]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4056
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4057
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4058
recursiveRepair:theDamages startIn:aView relativeTo:aRootView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4059
    "repair all views and contained views, which intersects the damage.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4060
     !!!! all damages repaired are removed from the list of damages !!!!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4061
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4062
    |color relOrg damage subViews repaired
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4063
     bwWidth    "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4064
     x          "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4065
     y          "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4066
     w          "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4067
     h          "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4068
     relOrgX    "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4069
     relOrgY    "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4070
     width      "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4071
     height     "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4072
     size       "{ Class:SmallInteger }"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4073
    |
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4074
    (aView shown and:[theDamages notEmpty]) ifFalse:[ ^ self ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4075
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4076
    subViews := aView subViews.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4077
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4078
    subViews size ~~ 0 ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4079
	subViews reverseDo:[:v| self recursiveRepair:theDamages startIn:v relativeTo:aRootView ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4080
	theDamages isEmpty ifTrue:[ ^ self ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4081
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4082
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4083
    relOrg  := aView originRelativeTo:aRootView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4084
    bwWidth := aView borderWidth.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4085
    size    := theDamages size.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4086
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4087
    "/ compute relative origin starting from border left@top
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4088
    relOrgX := relOrg x - bwWidth.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4089
    relOrgY := relOrg y - bwWidth.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4090
    width   := aView width  + bwWidth + bwWidth.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4091
    height  := aView height + bwWidth + bwWidth.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4092
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4093
    size to:1 by:-1 do:[:anIndex|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4094
	repaired := damage := theDamages at:anIndex.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4095
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4096
	"/ compute the rectangle into the view
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4097
	y := damage top  - relOrgY.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4098
	x := damage left - relOrgX.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4099
	w := damage width.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4100
	h := damage height.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4101
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4102
	x     < 0      ifTrue:[ w := w + x. x := 0. repaired := nil ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4103
	y     < 0      ifTrue:[ h := h + y. y := 0. repaired := nil ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4104
	x + w > width  ifTrue:[ w := width  - x.    repaired := nil ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4105
	y + h > height ifTrue:[ h := height - y.    repaired := nil ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4106
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4107
	(w > 0 and:[h > 0]) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4108
	    bwWidth ~~ 0 ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4109
		color isNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4110
		    "/ must force redraw of border
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4111
		    color := aView borderColor.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4112
		    aView borderColor:(Color colorId:1).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4113
		    aView borderColor:color.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4114
		].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4115
		w := w - bwWidth.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4116
		h := h - bwWidth.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4117
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4118
		(x := x - bwWidth) < 0 ifTrue:[w := w + x. x := 0].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4119
		(y := y - bwWidth) < 0 ifTrue:[h := h + y. y := 0].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4120
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4121
		h > 0 ifFalse:[w := 0].         "/ later testing on width only
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4122
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4123
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4124
	    w > 0 ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4125
		aView clearRectangleX:x y:y width:w height:h.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4126
		aView exposeX:x y:y width:w height:h
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4127
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4128
	    repaired notNil ifTrue:[ theDamages removeFromIndex:anIndex toIndex:anIndex ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4129
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4130
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4131
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4132
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4133
redrawSelection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4134
    "redraw all items selected
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4135
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4136
    |topView size|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4137
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4138
    testModeChannel value ifTrue:[ ^ self ]. "/ test whether running testMode
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4139
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4140
    (     hiddenLevel == 0
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4141
     and:[(size := selection size) > 0
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4142
     and:[(topView := listOfItems rootView) notNil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4143
     and:[topView shown
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4144
     and:[(topView sensor hasEvent:#redrawSelection for:self) not]]]]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4145
    ) ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4146
	^ self
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4147
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4148
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4149
    lockSema critical:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4150
	|list|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4151
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4152
	list := selection.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4153
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4154
	list size > 0 ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4155
	    topView paint:(Color black).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4156
	    topView clippedByChildren:false.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4157
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4158
	    list keysAndValuesReverseDo:[:anIndex :anItem|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4159
		(anIndex == 1 and:[size > 1]) ifTrue:[ topView paint:(Color red) ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4160
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4161
		anItem handlesDo:[:aRect :what|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4162
		    what isNil ifTrue:[topView displayRectangle:aRect]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4163
			      ifFalse:[topView fillRectangle:aRect]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4164
		]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4165
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4166
	    topView clippedByChildren:true.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4167
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4168
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4169
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4170
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4171
redrawUnselected:aList andLock:doLock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4172
    "redraw all items unselected; if doLock is true, the hiddenLevel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4173
     is incremented and thus the select mechanism is locked.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4174
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4175
    self redrawUnselected:aList andLock:doLock checkTestMode:true.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4176
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4177
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4178
redrawUnselected:aList andLock:doLock checkTestMode:checkTestMode
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4179
    "redraw all items unselected; if doLock is true, the hiddenLevel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4180
     is incremented and thus the select mechanism is locked.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4181
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4182
    |rootView damages subViews x y w h|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4183
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4184
    doLock ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4185
	hiddenLevel := hiddenLevel + 1.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4186
	hiddenLevel ~~ 1 ifTrue:[^ self].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4187
    ] ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4188
	hiddenLevel ~~ 0 ifTrue:[^ self].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4189
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4190
    checkTestMode ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4191
	testModeChannel value ifTrue:[ ^ self ]. "/ test whether running testMode
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4192
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4193
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4194
    (     aList size ~~ 0
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4195
     and:[(rootView := listOfItems rootView) notNil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4196
     and:[rootView shown]]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4197
    ) ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4198
	^ self
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4199
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4200
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4201
    lockSema critical:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4202
	damages := OrderedCollection new:(8 * aList size).
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4203
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4204
	aList do:[:item|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4205
	    item handlesDo:[:handle :what|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4206
		damages reverseDo:[:el|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4207
		    (el intersects:handle) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4208
			damages removeIdentical:el.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4209
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4210
			handle left:(handle left   min:el left)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4211
			      right:(handle right  max:el right)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4212
				top:(handle top    min:el top)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4213
			     bottom:(handle bottom max:el bottom)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4214
		    ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4215
		].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4216
		damages add:handle
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4217
	    ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4218
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4219
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4220
	damages do:[:el|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4221
	    x := el left.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4222
	    y := el top.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4223
	    w := el width.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4224
	    h := el height.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4225
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4226
	    rootView clearRectangleX:x y:y width:w height:h.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4227
	    rootView         exposeX:x y:y width:w height:h.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4228
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4229
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4230
	(subViews := rootView subViews) notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4231
	    subViews reverseDo:[:v| self recursiveRepair:damages startIn:v relativeTo:rootView ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4232
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4233
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4234
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4235
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4236
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'queries'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4237
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4238
isInTestMode
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4239
    "answer false, all input events are eaten and the selection is shown on the target view.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4240
     answer true,  no  input events are eaten and no  selection is shown on the target view."
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4241
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4242
    ^ testModeChannel value
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4243
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4244
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4245
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'selection accessing'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4246
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4247
at:anIndex
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4248
    "returns the selected item at an index or nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4249
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4250
    selection notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4251
	^ selection at:anIndex ifAbsent:nil
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4252
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4253
    ^ nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4254
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4255
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4256
at:anIndex ifAbsent:aBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4257
    "returns the selected item at an index or the result of the block
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4258
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4259
    selection notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4260
	^ selection at:anIndex ifAbsent:aBlock
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4261
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4262
    ^ aBlock value
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4263
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4264
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4265
first
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4266
    "returns the first selected item or nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4267
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4268
    ^ self at:1
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4269
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4270
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4271
last
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4272
    "returns the last selected item or nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4273
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4274
    ^ selection notNil ifTrue:[selection last] ifFalse:[nil]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4275
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4276
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4277
selectedItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4278
    "returns the single selected item or nil (size ~~ 1 nil is returned)
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4279
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4280
    ^ selection size == 1 ifTrue:[selection at:1] ifFalse:[nil]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4281
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4282
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4283
selectedSuperItems
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4284
    "returs the list of selected superItems; items selected
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4285
     but not contained in another selected item.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4286
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4287
    ^ selectedSuperItems
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4288
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4289
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4290
size
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4291
    "returns the number of items selected
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4292
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4293
    ^ selection size
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4294
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4295
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4296
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'selection adding & removing'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4297
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4298
add:item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4299
    "add an item to the current selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4300
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4301
    |newSelect|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4302
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4303
    item isNil ifTrue:[^ item].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4304
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4305
    lockSema critical:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4306
	selection isNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4307
	    newSelect := Array with:item.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4308
	] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4309
	    (self includes:item) ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4310
		newSelect := selection copyWith:item
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4311
	    ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4312
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4313
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4314
	newSelect size ~~ selection size ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4315
	    item makeVisible.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4316
	    self value:newSelect
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4317
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4318
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4319
    ^ item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4320
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4321
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4322
addAll:aCollectionOfItems
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4323
    "add a collection of items to the current selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4324
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4325
    |newSelect|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4326
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4327
    aCollectionOfItems size == 0 ifTrue:[ ^ aCollectionOfItems ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4328
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4329
    lockSema critical:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4330
	selection isNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4331
	    newSelect := Array withAll:aCollectionOfItems.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4332
	] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4333
	    newSelect := OrderedCollection withAll:selection.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4334
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4335
	    aCollectionOfItems do:[:el|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4336
		(selection includesIdentical:el) ifFalse:[newSelect add:el]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4337
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4338
	].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4339
	self value:newSelect.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4340
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4341
    ^ aCollectionOfItems
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4342
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4343
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4344
deselect
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4345
    "clear the selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4346
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4347
    self value:nil.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4348
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4349
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4350
remove:item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4351
    "remove the item from the current selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4352
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4353
    |newSelect|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4354
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4355
    item isNil ifTrue:[^ nil].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4356
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4357
    lockSema critical:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4358
	(selection notNil and:[selection includesIdentical:item]) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4359
	    selection size == 1 ifTrue:[ newSelect := nil ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4360
			       ifFalse:[ newSelect := selection copyWithout:item ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4361
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4362
	    self value:newSelect
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4363
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4364
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4365
    ^ item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4366
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4367
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4368
removeAll
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4369
    "clear the selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4370
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4371
    self deselect.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4372
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4373
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4374
removeAll:loItems
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4375
    "remove all items of the collection from the current selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4376
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4377
    |newSelect|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4378
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4379
    selection   isNil ifTrue:[ ^ loItems ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4380
    loItems size == 0 ifTrue:[ ^ loItems ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4381
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4382
    lockSema critical:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4383
	selection notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4384
	    newSelect := selection select:[:el| (loItems includesIdentical:el) not ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4385
	    self value:newSelect.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4386
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4387
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4388
    ^ loItems
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4389
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4390
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4391
selectAll
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4392
    "select all items
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4393
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4394
    |root newSelection|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4395
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4396
    root := listOfItems root.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4397
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4398
    root isNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4399
	newSelection := nil
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4400
    ] ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4401
	newSelection := OrderedCollection new.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4402
	root recursiveDo:[:el| newSelection add:el ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4403
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4404
    self value:newSelection.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4405
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4406
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4407
selectItem:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4408
    "set the current selection to the item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4409
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4410
    self value:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4411
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4412
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4413
selectRootItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4414
    "set the current selection to the root item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4415
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4416
    self value:(self rootItem).
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4417
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4418
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4419
selectedItem:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4420
    "set the current selection to the item
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4421
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4422
    self selectItem:anItem.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4423
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4424
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4425
toggleSelectItem:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4426
    "toggle selection-state of the item; add or remove the item from the
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4427
     current selection.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4428
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4429
    anItem notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4430
	(self includes:anItem) ifTrue:[self remove:anItem]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4431
			      ifFalse:[self add:anItem]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4432
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4433
    ^ anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4434
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4435
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4436
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'selection enumerating'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4437
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4438
collect:aBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4439
    "for each element in the selection, evaluate the argument, aBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4440
     and return a new collection with the results
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4441
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4442
    |res|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4443
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4444
    res := OrderedCollection new.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4445
    self do:[:el| res add:(aBlock value:el)].
3746
0bfa90576a61 #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3745
diff changeset
  4446
    ^ res
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4447
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4448
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4449
do:aOneArgBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4450
    "evaluate the argument, aBlock for each item in the selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4451
    "
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4452
    |keptSelection|
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4453
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4454
    "/ the selection may change at any time (may it?)
3748
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4455
    (keptSelection := selection) notNil ifTrue:[
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4456
        keptSelection do:aOneArgBlock
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4457
    ].
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4458
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4459
    "Modified (format): / 12-02-2017 / 11:53:23 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4460
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4461
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4462
from:start do:aOneArgBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4463
    "evaluate the argument, aBlock for the items starting at index start
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4464
    "
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4465
    |keptSelection|
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4466
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4467
    "/ the selection may change at any time (may it?)
3748
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4468
    (keptSelection := selection) notNil ifTrue:[
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4469
        "/ but if so, then start may no longer be valid here??
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4470
        keptSelection from:start do:aOneArgBlock
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4471
    ].
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4472
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4473
    "Modified (comment): / 12-02-2017 / 11:52:57 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4474
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4475
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4476
from:start to:stop do:aOneArgBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4477
    "evaluate the argument, aBlock for the items with index start to
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4478
     stop in the selection.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4479
    "
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4480
    |keptSelection|
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4481
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4482
    "/ the selection may change at any time (may it?)
3748
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4483
    (keptSelection := selection) notNil ifTrue:[
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4484
        "/ but if so, then start and stop may no longer be valid here??
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4485
        keptSelection from:start to:stop do:aOneArgBlock
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4486
    ].
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4487
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4488
    "Modified (comment): / 12-02-2017 / 11:52:25 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4489
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4490
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4491
reverseDo:aOneArgBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4492
    "evaluate the argument, aBlock for each item in the selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4493
    "
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4494
    |keptSelection|
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4495
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4496
    "/ the selection may change at any time (may it?)
3748
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4497
    (keptSelection := selection) notNil ifTrue:[
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4498
        keptSelection reverseDo:aOneArgBlock
aa07806d6a5a #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3747
diff changeset
  4499
    ].
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4500
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4501
    "Modified: / 12-02-2017 / 11:50:02 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4502
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4503
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4504
select:aBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4505
    "return a new collection with all elements from the selection, for which
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4506
     the argument aBlock evaluates to true.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4507
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4508
    |res|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4509
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4510
    res := OrderedCollection new.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4511
    self do:[:el| (aBlock value:el) ifTrue:[res add:el] ].
3746
0bfa90576a61 #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 3745
diff changeset
  4512
    ^ res
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4513
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4514
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4515
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'selection protocol'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4516
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4517
changed:aParameter with:oldSelection
3568
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4518
    "update the visibility status of the current selection
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4519
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4520
    |unselected rootView rootItem selSize|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4521
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4522
    selSize := selection size.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4523
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4524
    selSize == 0 ifTrue:[
3568
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4525
        selectedSuperItems := #().
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4526
    ] ifFalse:[
3568
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4527
        selSize == 1 ifTrue:[
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4528
            selectedSuperItems := Array with:(selection at:1).
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4529
        ] ifFalse:[
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4530
            rootItem := listOfItems root.
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4531
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4532
            (selection includesIdentical:rootItem) ifTrue:[
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4533
                selectedSuperItems := Array with:rootItem.
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4534
            ] ifFalse:[
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4535
                selectedSuperItems := OrderedCollection new:selSize.
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4536
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4537
                selection do:[:anItem|
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4538
                    anItem parentsDetect:[:el| selection includesIdentical:el ]
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4539
                                  ifNone:[ selectedSuperItems add:anItem ].
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4540
                ].
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4541
            ]
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4542
        ]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4543
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4544
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4545
    (     hiddenLevel == 0
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4546
     and:[(rootView := listOfItems rootView) notNil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4547
     and:[rootView shown]]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4548
    ) ifTrue:[
3568
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4549
        selSize == 0 ifTrue:[
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4550
            "/ must redraw the old selection unselected
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4551
            self redrawUnselected:oldSelection andLock:false
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4552
        ] ifFalse:[
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4553
            self invalidateSelection.
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4554
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4555
            oldSelection size ~~ 0 ifTrue:[
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4556
                "/ must redraw all elements no longer in the selection
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4557
                unselected := oldSelection select:[:el| (selection includesIdentical:el) not ].
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4558
                self redrawUnselected:unselected andLock:false.
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4559
            ]
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4560
        ]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4561
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4562
    super changed:aParameter with:oldSelection.
3568
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4563
5004640f2a10 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3551
diff changeset
  4564
    "Modified (comment): / 29-06-2018 / 08:25:36 / Claus Gittinger"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4565
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4566
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4567
setValue:aNewSelection
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4568
    "set the selection without notifying
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4569
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4570
    |newSelect idx|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4571
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4572
    newSelect := nil.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4573
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4574
    aNewSelection notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4575
	lockSema critical:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4576
	    aNewSelection isCollection ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4577
		(selection size == 1 and:[selection first == aNewSelection]) ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4578
		    newSelect := selection
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4579
		] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4580
		    newSelect := Array with:aNewSelection.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4581
		]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4582
	    ] ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4583
		aNewSelection notEmpty ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4584
		    aNewSelection size ~~ selection size ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4585
			newSelect := aNewSelection copy.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4586
		    ] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4587
			idx := selection findFirst:[:el| (aNewSelection includesIdentical:el) not ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4588
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4589
			idx ~~ 0 ifTrue:[newSelect := aNewSelection copy]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4590
				ifFalse:[newSelect := selection ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4591
		    ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4592
		]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4593
	    ]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4594
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4595
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4596
    newSelect ~~ selection ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4597
	beforeSelectionChangedAction value.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4598
	selection := newSelect.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4599
	selection notNil ifTrue:[selection do:[:el| el makeVisible]]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4600
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4601
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4602
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4603
triggerValue:aValue
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4604
    "set my value & send change notifications to my dependents.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4605
     Send the change message even if the value didn't change.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4606
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4607
    |oldSelection|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4608
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4609
    lockSema critical:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4610
	oldSelection := selection.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4611
	self setValue:aValue.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4612
	self changed:#value with:oldSelection
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4613
    ]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4614
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4615
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4616
value
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4617
    "returns the current selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4618
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4619
    ^ selection ? #()
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4620
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4621
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4622
value:aValue
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4623
    "change the current selection and send change notifications to my
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4624
     dependents if it changed.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4625
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4626
    |oldSelection|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4627
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4628
    lockSema critical:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4629
	oldSelection := selection.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4630
	self setValue:aValue.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4631
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4632
	oldSelection == selection ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4633
	    self changed:#value with:oldSelection
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4634
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4635
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4636
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4637
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4638
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'selection searching'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4639
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4640
detect:aBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4641
    "evaluate the argument, aBlock for each item in the selection until
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4642
     the block returns true; in this case return the element which caused
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4643
     the true evaluation.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4644
     If none of the evaluations returns true, an error is raised
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4645
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4646
    ^ self detect:aBlock ifNone:[self errorNotFound]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4647
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4648
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4649
detect:aBlock ifNone:exceptionBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4650
    "evaluate the argument, aBlock for each item in the selection until the
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4651
     block returns true; in this case return the element which caused the
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4652
     true evaluation.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4653
     If none of the evaluations returns true, the result of the evaluation
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4654
     of the exceptionBlock is returned
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4655
    "
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4656
    |keptSelection|
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4657
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4658
    "/ the selection may change at any time (may it?)
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4659
    (keptSelection := selection) isNil ifTrue:[ ^ exceptionBlock value ].
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4660
    ^ keptSelection detect:aBlock ifNone:exceptionBlock
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4661
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4662
    "Modified (format): / 12-02-2017 / 11:54:13 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4663
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4664
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4665
detectLast:aBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4666
    "evaluate the argument, aBlock for each item in the selection until
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4667
     the block returns true; in this case return the element which caused
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4668
     the true evaluation. The items are processed in reverse order.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4669
     If none of the evaluations returns true, an error is raised
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4670
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4671
    ^ self detectLast:aBlock ifNone:[self errorNotFound]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4672
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4673
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4674
detectLast:aBlock ifNone:exceptionBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4675
    "evaluate the argument, aBlock for each item in the selection until
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4676
     the block returns true; in this case return the element which caused
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4677
     the true evaluation. The items are processed in reverse order.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4678
     If none of the evaluations returns true, the result of the evaluation
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4679
     of the exceptionBlock is returned
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4680
    "
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4681
    |keptSelection|
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4682
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4683
    "/ the selection may change at any time (may it?)
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4684
    (keptSelection := selection) isNil ifTrue:[ ^ exceptionBlock value ].
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4685
    ^ keptSelection detectLast:aBlock ifNone:exceptionBlock
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4686
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4687
    "Modified (format): / 12-02-2017 / 11:53:49 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4688
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4689
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4690
!ViewTreeInspectorApplication::ViewTreeModel methodsFor:'selection testing'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4691
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4692
includes:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4693
    "returns true if the item is in the current selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4694
    "
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4695
    |keptSelection|
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4696
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4697
    "/ the selection may change at any time (may it?)
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4698
    (keptSelection := selection) isNil ifTrue:[^ false].
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4699
    ^ keptSelection includesIdentical:anItem
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4700
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4701
    "Modified: / 12-02-2017 / 11:51:34 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4702
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4703
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4704
includesAll:aCollection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4705
    "return true, if all items of the collection are included in the current selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4706
    "
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4707
    |keptSelection|
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4708
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4709
    aCollection size ~~ 0 ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4710
	"/ the selection may change at any time (may it?)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4711
	(keptSelection := selection) isNil ifTrue:[ ^ false ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4712
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4713
	^ aCollection contains:[:el| (keptSelection includesIdentical:el)]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4714
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4715
    ^ true
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4716
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4717
    "Modified (format): / 12-02-2017 / 11:51:14 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4718
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4719
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4720
includesAny:aCollection
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4721
    "return true, if any item of the collection is in the current selection
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4722
    "
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4723
    |keptSelection|
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4724
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4725
    aCollection notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4726
	"/ the selection may change at any time (may it?)
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4727
	(keptSelection := selection) notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4728
	    ^ aCollection contains:[:el| (keptSelection includesIdentical:el)]
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4729
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4730
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4731
    ^ false
3398
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4732
9c87da351c9c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3383
diff changeset
  4733
    "Modified (format): / 12-02-2017 / 11:50:26 / cg"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4734
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4735
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4736
includesIdentical:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4737
    "returns true if the item is in the current selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4738
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4739
    ^ self includes:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4740
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4741
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4742
isEmpty
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4743
    "returns true if the current selection is empty
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4744
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4745
    ^ selection size == 0
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4746
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4747
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4748
isSelected:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4749
    "returns true if the item is in the current selection
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4750
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4751
    ^ self includes:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4752
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4753
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4754
notEmpty
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4755
    "returns true if the current selection is not empty
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4756
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4757
    ^ selection size ~~ 0
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4758
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4759
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4760
!ViewTreeInspectorApplication::ViewTreeModel::ItemList class methodsFor:'documentation'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4761
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4762
documentation
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4763
"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4764
    Kind of HierarchicalList class which contains all the visible
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4765
    ViewTreeItem's and the root, the anchor of the hierarchical list.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4766
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4767
    [Instance variables:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4768
	treeModel       <ViewTreeModel>         all events are delegated to
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4769
	eventHook       <BlockValue>            save and resore the pre/post -EventHook
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4770
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4771
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4772
    [author:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4773
	Claus Atzkern
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4774
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4775
    [see also:]
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4776
	HierarchicalList
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4777
	ViewTreeModel
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4778
	ViewTreeItem
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4779
"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4780
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4781
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4782
!ViewTreeInspectorApplication::ViewTreeModel::ItemList methodsFor:'accessing'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4783
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4784
root:theRoot
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4785
    "set the root item; delegate events to my treeModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4786
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4787
    |rootView|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4788
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4789
    theRoot == root ifTrue:[^ self].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4790
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4791
    rootView := self rootView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4792
    super root:theRoot.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4793
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4794
    rootView notNil ifTrue:[ |wgrp|
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4795
	wgrp := rootView windowGroup.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4796
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4797
	wgrp notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4798
	   wgrp removePreEventHook:treeModel.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4799
	   wgrp removePostEventHook:self.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4800
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4801
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4802
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4803
    super root:theRoot.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4804
    rootView := self rootView.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4805
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4806
    rootView notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4807
	"must setup a task because there might not exist a windowGroup at the moment
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4808
	"
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4809
	[   |wgrp|
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4810
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4811
	    [rootView == self rootView] whileTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4812
		wgrp := rootView windowGroup.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4813
		wgrp notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4814
		    rootView := nil.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4815
		    wgrp addPreEventHook:treeModel.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4816
		    wgrp addPostEventHook:self.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4817
		] ifFalse:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4818
		    Delay waitForMilliseconds:100.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4819
		].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4820
	    ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4821
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4822
	] forkAt:(Processor userSchedulingPriority + 2).
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4823
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4824
    treeModel notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4825
	treeModel targetWidgetChanged.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4826
    ].
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4827
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4828
    ^ root.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4829
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4830
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4831
rootView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4832
    "returns the widget assigned to the root or nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4833
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4834
    ^ root notNil ifTrue:[root widget] ifFalse:[nil]
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4835
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4836
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4837
treeModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4838
    "returne the treeModel, a ViewTreeModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4839
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4840
    ^ treeModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4841
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4842
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4843
!ViewTreeInspectorApplication::ViewTreeModel::ItemList methodsFor:'accessing look'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4844
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4845
additionalLabelForItem:anItem
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4846
    "answer the additional lable for an item or nil"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4847
3667
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4848
    |widget l applClass applClassName key label|
3017
d971763e5d03 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3014
diff changeset
  4849
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  4850
    l := nil.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4851
    showWidgetNames == true ifTrue:[
3667
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4852
        (widget := anItem widget) notNil ifTrue:[
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4853
            l := '"', widget name, '"'
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4854
        ] ifFalse:[
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4855
            "/ a menuItem
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4856
            anItem menuItem isSeparator ifTrue:[
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4857
            ] ifFalse:[    
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4858
                label := anItem menuItem label.
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4859
                label isImage ifTrue:[
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4860
                    l := ''
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4861
                ] ifFalse:[
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4862
                    l := '"', label asString, '"'
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4863
                ].
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4864
                l := l , ' value: ',anItem menuItem itemValue printString.
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4865
            ].
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4866
        ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4867
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4868
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4869
    anItem isApplicationClass ifTrue:[
3667
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4870
        applClass := anItem applicationClass.
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4871
        applClass notNil ifTrue:[
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4872
            applClassName := '[', applClass name allBold, ']'.
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4873
            l := (l isNil ifTrue:[''] ifFalse:[l , ' ']) , applClassName
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4874
        ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4875
    ].
3017
d971763e5d03 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3014
diff changeset
  4876
d971763e5d03 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3014
diff changeset
  4877
    application notNil ifTrue:[
3667
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4878
        key := application builder namedComponents keyAtValue:widget ifAbsent:nil.
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4879
        key notNil ifTrue:[
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4880
            l := l , ' #',key
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4881
        ].
3017
d971763e5d03 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3014
diff changeset
  4882
    ].
d971763e5d03 class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 3014
diff changeset
  4883
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  4884
    ^ l
3456
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  4885
4d4297bad4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3453
diff changeset
  4886
    "Modified: / 16-08-2017 / 12:47:12 / cg"
3667
0b24b3e8c949 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3660
diff changeset
  4887
    "Modified: / 27-05-2019 / 13:19:35 / Claus Gittinger"
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4888
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4889
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4890
showWidgetNames
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4891
    "answer true if the additional text is the widget name
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4892
     otherwise the name of the application"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4893
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  4894
    ^ showWidgetNames ? true
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4895
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4896
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4897
showWidgetNames:aBoolean
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4898
    "set true if the additional text is the widget name
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4899
     otherwise the name of the application"
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4900
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4901
    self showWidgetNames == aBoolean ifFalse:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4902
	showWidgetNames := aBoolean.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4903
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4904
	root notNil ifTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4905
	    root recursiveAdditionalNameBehaviourChanged.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4906
	    self changed.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4907
	].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4908
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4909
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4910
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4911
!ViewTreeInspectorApplication::ViewTreeModel::ItemList methodsFor:'event processing'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4912
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4913
processEvent:anEvent
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4914
    "post process event
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4915
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4916
    ^ treeModel isInTestMode not
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4917
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4918
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4919
!ViewTreeInspectorApplication::ViewTreeModel::ItemList methodsFor:'instance creation'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4920
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4921
on:aModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4922
    "set the model, a ViewTreeModel
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4923
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4924
    treeModel := aModel.
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4925
    showRoot  := true.
2762
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  4926
    "/ showWidgetNames := false.
Claus Gittinger <cg@exept.de>
parents: 2759
diff changeset
  4927
    showWidgetNames := true.
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4928
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4929
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4930
!ViewTreeInspectorApplication::ViewTreeModel::ItemList methodsFor:'searching'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4931
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4932
detectItemRespondsToView:aView
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4933
    "returns the bottom-most item which contains the view
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4934
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4935
    |view item topView|
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4936
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4937
    root notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4938
	view    := aView.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4939
	topView := root widget.
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4940
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4941
	[ view notNil ] whileTrue:[
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4942
	    topView == view ifTrue:[^ root].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4943
	    item := root recursiveDetect:[:el| el widget == view ].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4944
	    item notNil ifTrue:[^ item].
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4945
	    view := view superView
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4946
	]
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4947
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4948
    ^ nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4949
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4950
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4951
recursiveDetect:aOneOrgBlock
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4952
    "recursive find the first child, for which evaluation
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4953
     of the block returns true; if none nil is returned
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4954
    "
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4955
    root notNil ifTrue:[
3524
366f04fbfb23 flyByHelpSpec -> helpSpec
Claus Gittinger <cg@exept.de>
parents: 3500
diff changeset
  4956
	(aOneOrgBlock value:root) ifTrue:[ ^ root ].
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4957
      ^ root recursiveDetect:aOneOrgBlock
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4958
    ].
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4959
    ^ nil
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4960
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4961
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4962
!ViewTreeInspectorApplication class methodsFor:'documentation'!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4963
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4964
version
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4965
    ^ '$Header$'
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4966
!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4967
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4968
version_CVS
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4969
    ^ '$Header$'
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4970
! !
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4971
2978
a952dfdb1b6a class: Tools::ViewTreeInspectorApplication
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  4972
2744
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4973
ViewTreeInspectorApplication initialize!
5bee95e91ffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2458
diff changeset
  4974
ViewTreeInspectorApplication::ViewTreeItem initialize!