VDBAbstractPresenter.st
author Jan Vrany <jan.vrany@labware.com>
Tue, 26 Jul 2022 15:01:33 +0100
changeset 265 f2470f0dd9cd
parent 264 23960fcb9dac
permissions -rw-r--r--
Do not show address for (pseudo) instructions with no code While such instructions do not appear in GDB-produced disassembly, they may appear in some manually-generated instruction lists. One example of such (pseudo) instruction is label.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
     1
"
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
     2
jv:libgdbs - GNU Debugger Interface Library
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
     4
Copyright (C) 2021-2022 LabWare
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
     5
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
     6
Permission is hereby granted, free of charge, to any person obtaining a copy
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
     7
of this software and associated documentation files (the 'Software'), to deal
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
     8
in the Software without restriction, including without limitation the rights
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
     9
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    10
copies of the Software, and to permit persons to whom the Software is
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    11
furnished to do so, subject to the following conditions:
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    12
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    13
The above copyright notice and this permission notice shall be included in all
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    14
copies or substantial portions of the Software.
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    15
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    16
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    17
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    18
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    19
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    20
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    21
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    22
SOFTWARE.
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    23
"
22
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
"{ Package: 'jv:vdb' }"
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
40
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 24
diff changeset
    26
"{ NameSpace: Smalltalk }"
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 24
diff changeset
    27
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    28
HierarchicalItem subclass:#VDBAbstractPresenter
22
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
	instanceVariableNames:''
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
	classVariableNames:''
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
	poolDictionaries:''
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
	category:'VDB-Presentation'
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
!
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    35
!VDBAbstractPresenter class methodsFor:'documentation'!
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    36
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    37
copyright
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    38
"
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    39
jv:libgdbs - GNU Debugger Interface Library
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    40
Copyright (C) 2015-now Jan Vrany
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    41
Copyright (C) 2021-2022 LabWare
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    42
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    43
Permission is hereby granted, free of charge, to any person obtaining a copy
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    44
of this software and associated documentation files (the 'Software'), to deal
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    45
in the Software without restriction, including without limitation the rights
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    46
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    47
copies of the Software, and to permit persons to whom the Software is
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    48
furnished to do so, subject to the following conditions:
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    49
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    50
The above copyright notice and this permission notice shall be included in all
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    51
copies or substantial portions of the Software.
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    52
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    53
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    54
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    55
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    56
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    57
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    58
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 240
diff changeset
    59
SOFTWARE.
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    60
"
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    61
! !
24
c33a063cb363 Added icons from Eclipse.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    62
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    63
!VDBAbstractPresenter class methodsFor:'menu specs'!
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    64
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    65
contextMenu
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    66
    "This resource specification was automatically generated
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    67
     by the MenuEditor of ST/X."
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    68
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    69
    "Do not manually edit this!! If it is corrupted,
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    70
     the MenuEditor may not be able to read the specification."
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    71
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    72
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    73
    "
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    74
     MenuEditor new openOnClass:VDBModelPresenter andSelector:#contextMenu
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    75
     (Menu new fromLiteralArrayEncoding:(VDBModelPresenter contextMenu)) startUp
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    76
    "
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    77
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    78
    <resource: #menu>
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    79
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    80
    ^ 
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    81
     #(Menu
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    82
        nil nil
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    83
        nil
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    84
      )
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    85
! !
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    86
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    87
!VDBAbstractPresenter class methodsFor:'queries'!
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    88
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    89
isAbstract
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    90
    "Return if this class is an abstract class.
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    91
     True is returned here for myself only; false for subclasses.
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    92
     Abstract subclasses must redefine this again."
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    93
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    94
    ^ self == VDBAbstractPresenter.
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    95
! !
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    96
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    97
!VDBAbstractPresenter methodsFor:'accessing'!
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    98
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    99
backgroundColor
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   100
    | app |
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   101
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   102
    app := self application.
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   103
    app notNil ifTrue:[ 
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   104
        ^ app perform: #backgroundColorFor: with: self ifNotUnderstood: [ nil ].
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   105
    ].
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   106
    ^ nil
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   107
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   108
    "Created: / 06-06-2017 / 23:38:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   109
!
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   110
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   111
foregroundColor
230
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   112
    | app fg |
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   113
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   114
    app := self application.
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   115
    app notNil ifTrue:[ 
230
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   116
        fg := app perform: #foregroundColorFor: with: self ifNotUnderstood: [ nil ].
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   117
        "/ If application does not specify foreground color but does specify
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   118
        "/ background color, try to be helpful and choose either white or black
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   119
        "/ foreground, whichever is more contrasting on given background.
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   120
        "/ This helps especially with dark themes.
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   121
        fg isNil ifTrue: [ 
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   122
            | bg |
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   123
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   124
            bg := self backgroundColor.
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   125
            bg notNil ifTrue: [ 
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   126
                fg := bg contrastingBlackOrWhite.
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   127
            ].
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   128
        ].
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   129
    ].
230
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   130
    ^ fg
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   131
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   132
    "Created: / 26-06-2018 / 11:46:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
230
f4495a7fdec1 UI: autogically select contrasting foreground in lists
Jan Vrany <jan.vrany@labware.com>
parents: 224
diff changeset
   133
    "Modified: / 14-10-2021 / 13:49:35 / Jan Vrany <jan.vrany@labware.com>"
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   134
!
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   135
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   136
subject
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   137
    "Return an instance of GDB object that this presenter displays."
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   138
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   139
    ^ self subclassResponsibility
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   140
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   141
    "Created: / 05-02-2018 / 13:07:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
85
48e6c61382b6 UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   142
!
48e6c61382b6 UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   143
48e6c61382b6 UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   144
tooltip
48e6c61382b6 UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   145
    "Return tooltip (fly-by-help) text as string or `nil`. 
48e6c61382b6 UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   146
     If `nil` is returned, list views will show generic 
48e6c61382b6 UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   147
     toolip for the item"
48e6c61382b6 UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   148
48e6c61382b6 UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   149
    ^ nil
48e6c61382b6 UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   150
48e6c61382b6 UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   151
    "Created: / 29-07-2018 / 21:32:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   152
! !
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   153
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   154
!VDBAbstractPresenter methodsFor:'change & update'!
22
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
updateChildren
219
6ab12a17ca3b UX: selectively update stack tree to minimize changes
Jan Vrany <jan.vrany@labware.com>
parents: 110
diff changeset
   157
    "Update children from model.
6ab12a17ca3b UX: selectively update stack tree to minimize changes
Jan Vrany <jan.vrany@labware.com>
parents: 110
diff changeset
   158
6ab12a17ca3b UX: selectively update stack tree to minimize changes
Jan Vrany <jan.vrany@labware.com>
parents: 110
diff changeset
   159
     Default implementation here re-creates all children. Subclasses may
6ab12a17ca3b UX: selectively update stack tree to minimize changes
Jan Vrany <jan.vrany@labware.com>
parents: 110
diff changeset
   160
     override this to provide custom logic in order to minimize changes to
6ab12a17ca3b UX: selectively update stack tree to minimize changes
Jan Vrany <jan.vrany@labware.com>
parents: 110
diff changeset
   161
     the tree (or avoid changes alltogether when nothing has changed).
6ab12a17ca3b UX: selectively update stack tree to minimize changes
Jan Vrany <jan.vrany@labware.com>
parents: 110
diff changeset
   162
    "
6ab12a17ca3b UX: selectively update stack tree to minimize changes
Jan Vrany <jan.vrany@labware.com>
parents: 110
diff changeset
   163
    children notNil ifTrue: [ 
6ab12a17ca3b UX: selectively update stack tree to minimize changes
Jan Vrany <jan.vrany@labware.com>
parents: 110
diff changeset
   164
        self children: self fetchChildren
22
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    ].
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    "Created: / 21-09-2014 / 23:43:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
219
6ab12a17ca3b UX: selectively update stack tree to minimize changes
Jan Vrany <jan.vrany@labware.com>
parents: 110
diff changeset
   168
    "Modified: / 17-05-2021 / 16:21:14 / Jan Vrany <jan.vrany@labware.com>"
6ab12a17ca3b UX: selectively update stack tree to minimize changes
Jan Vrany <jan.vrany@labware.com>
parents: 110
diff changeset
   169
    "Modified (format): / 17-05-2021 / 19:42:15 / Jan Vrany <jan.vrany@labware.com>"
22
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
! !
6684f4d82301 Temporary commit: reworking VDBStackApplication to support multiple threads and inferiors
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   172
!VDBAbstractPresenter methodsFor:'displaying'!
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   173
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   174
displayString
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   175
    ^ self label
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   176
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   177
    "Created: / 10-06-2017 / 12:24:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   178
! !
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   179
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   180
!VDBAbstractPresenter methodsFor:'menu'!
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   181
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   182
contextMenu
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   183
    | menu |
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   184
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   185
    menu := Menu decodeFromLiteralArray: self class contextMenu.
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   186
    menu hasItems ifFalse:[ ^ menu ].
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   187
    menu findGuiResourcesIn:self.
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   188
    menu itemsDo:[:item| item receiver: self ].
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   189
    menu addSeparator.
63
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   190
    self contextMenuExtendersFor: #contextMenu do:[:each |
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   191
        self perform: each with: menu
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   192
    ]. 
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   193
    ^ menu
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   194
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   195
    "Created: / 16-01-2018 / 22:03:53 / jv"
63
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   196
    "Modified: / 07-02-2018 / 09:52:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   197
!
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   198
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   199
contextMenuExtendersFor: key do: block
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   200
    "Evaluates a block for each selector that extends particular menu.
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   201
     Extender methods have to be annotated by <menuextension: key> annotation
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   202
     and must take one argument (an instance of Menu that the menu extension
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   203
     extends."
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   204
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   205
    | cls |
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   206
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   207
    cls := self class.
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   208
    [ cls notNil ] whileTrue:[
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   209
        cls selectorsAndMethodsDo:[ :selector :method |
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   210
            method annotationsAt: #menuextension: do: [ :annotation |
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   211
                annotation arguments first == key ifTrue:[
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   212
                    block value: selector
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   213
                ].
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   214
            ]
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   215
        ].
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   216
        cls := cls superclass.
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   217
    ].
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   218
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   219
    "Created: / 07-02-2018 / 09:51:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   220
! !
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   221
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   222
!VDBAbstractPresenter methodsFor:'menu actions'!
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   223
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   224
doCopy: aString
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   225
    <resource: #uiCallback>
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   226
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   227
    self application window setClipboardText: aString
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   228
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   229
    "Created: / 16-01-2018 / 22:36:30 / jv"
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   230
!
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   231
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   232
doDoubleClick
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   233
    "Invoked when user double-clicks to list item. "
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   234
240
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   235
    self doInspect
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   236
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   237
    "Created: / 05-02-2018 / 13:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
240
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   238
    "Modified: / 17-11-2021 / 13:20:33 / Jan Vrany <jan.vrany@labware.com>"
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   239
!
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   240
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   241
doInspect
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   242
    self doInspect: self subject
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   243
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   244
    "Created: / 17-11-2021 / 13:21:13 / Jan Vrany <jan.vrany@labware.com>"
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   245
!
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   246
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   247
doInspect: anObject 
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   248
    | app |
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   249
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   250
    app := self application.
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   251
    app notNil ifTrue:[
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   252
        app doInspect: anObject
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   253
    ] ifFalse: [ 
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   254
        anObject inspect.
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   255
    ].
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   256
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   257
    "Created: / 08-07-2019 / 20:17:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c5450baf51cd UX: refactor double-click / inspect in lists
Jan Vrany <jan.vrany@labware.com>
parents: 230
diff changeset
   258
    "Modified: / 17-11-2021 / 13:19:13 / Jan Vrany <jan.vrany@labware.com>"
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   259
! !
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   260
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   261
!VDBAbstractPresenter methodsFor:'protocol-displaying'!
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   262
224
c828bd96ba14 Overrided `displayOn:aGC ...` instead of `displayLabelOn:aGC ...`
Jan Vrany <jan.vrany@labware.com>
parents: 219
diff changeset
   263
displayOn:aGC x:x y:y h:h isHighlightedAsSelected: isHighlightedAsSelected
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   264
    isHighlightedAsSelected ifFalse:[ 
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   265
        | bg fg |
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   266
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   267
        fg := self foregroundColor.
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   268
        bg := self backgroundColor.
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   269
        (fg notNil or:[ bg notNil ]) ifTrue:[
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   270
            | fgSaved |
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   271
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   272
            fgSaved := aGC paint.
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   273
            [ 
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   274
                bg notNil ifTrue:[ 
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   275
                    aGC paint: bg.
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   276
                    aGC fillRectangleX: 0"x" y: y width: aGC width height: h.
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   277
                    aGC paint: fg ? fgSaved.
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   278
                ] ifFalse:[
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   279
                    fg notNil ifTrue:[
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   280
                        aGC paint: fg.
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   281
                    ].
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   282
                ].
224
c828bd96ba14 Overrided `displayOn:aGC ...` instead of `displayLabelOn:aGC ...`
Jan Vrany <jan.vrany@labware.com>
parents: 219
diff changeset
   283
                super displayOn:aGC x:x y:y h:h isHighlightedAsSelected: isHighlightedAsSelected
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   284
            ] ensure:[ 
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   285
                aGC paint: fgSaved.
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   286
            ].
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   287
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   288
            ^ self.
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   289
        ]
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   290
    ].
224
c828bd96ba14 Overrided `displayOn:aGC ...` instead of `displayLabelOn:aGC ...`
Jan Vrany <jan.vrany@labware.com>
parents: 219
diff changeset
   291
    super displayOn:aGC x:x y:y h:h isHighlightedAsSelected: isHighlightedAsSelected
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   292
224
c828bd96ba14 Overrided `displayOn:aGC ...` instead of `displayLabelOn:aGC ...`
Jan Vrany <jan.vrany@labware.com>
parents: 219
diff changeset
   293
    "Created: / 22-05-2021 / 17:05:59 / Jan Vrany <jan.vrany@labware.com>"
78
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   294
! !
5b61031de9a7 API: generalize support for application-defined background and foreground colors for presenters
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   295
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   296
!VDBAbstractPresenter methodsFor:'testing'!
23
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   297
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   298
isBreakpointPresenter
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   299
    ^ false
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   300
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   301
    "Created: / 11-07-2017 / 11:50:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   302
!
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   303
23
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   304
isFramePresenter
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   305
    ^ false
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   306
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   307
    "Created: / 21-09-2014 / 23:53:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   308
!
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   309
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   310
isInstructionPresenter
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   311
    ^ false
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   312
!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   313
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   314
isInstructionsAndSourcePresenter
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   315
    ^ false
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   316
!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   317
110
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   318
isRegisterPresenter
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   319
    ^ false
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   320
!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   321
23
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   322
isThreadGroupPresenter
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   323
    ^ false
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   324
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   325
    "Created: / 21-09-2014 / 23:54:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   326
!
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   327
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   328
isThreadPresenter
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   329
    ^ false
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   330
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   331
    "Created: / 21-09-2014 / 23:54:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 40
diff changeset
   332
!
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 40
diff changeset
   333
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 40
diff changeset
   334
isVariablePresenter
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 40
diff changeset
   335
    ^ false
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 40
diff changeset
   336
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 40
diff changeset
   337
    "Created: / 02-06-2017 / 00:05:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
23
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   338
! !
ed5f4b55cee5 Added toolbar and icons. Show all thread groups and threads in stack view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 22
diff changeset
   339
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   340
!VDBAbstractPresenter class methodsFor:'documentation'!
24
c33a063cb363 Added icons from Eclipse.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   341
c33a063cb363 Added icons from Eclipse.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   342
version_HG
c33a063cb363 Added icons from Eclipse.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   343
c33a063cb363 Added icons from Eclipse.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   344
    ^ '$Changeset: <not expanded> $'
c33a063cb363 Added icons from Eclipse.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   345
! !
c33a063cb363 Added icons from Eclipse.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   346