VDBVariableObjectPresenter.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 14 Mar 2018 10:07:45 +0000
changeset 66 a6439bb6d8bc
parent 64 5ca770f02332
child 86 e056e2aa79a1
permissions -rw-r--r--
UI: add support to "pin" menus, i.e., turn them into a floating toolboxes This spares us the need of explicit toolbar in the UI and gives the user the freedom of turning every menu into always-visible toolbar is it suits her (actual) need. This idea is taken from good old NeXTstep UI. For now, this is only supported for "Exec" menu, but the support is generic so it would work any menu.
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
"
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
     2
jv:vdb - Visual / VM Debugger
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
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
     4
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
     5
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
     6
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
     7
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
     8
"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
"{ Package: 'jv:vdb' }"
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"{ NameSpace: Smalltalk }"
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    13
VDBAbstractPresenter subclass:#VDBVariableObjectPresenter
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    14
	instanceVariableNames:'varobj'
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	classVariableNames:''
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	poolDictionaries:''
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	category:'VDB-Presentation'
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    20
!VDBVariableObjectPresenter 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
    21
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    22
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
    23
"
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    24
jv:vdb - Visual / VM Debugger
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    25
Copyright (C) 2015-now Jan Vrany
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    26
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    27
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    28
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    29
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    30
"
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    31
! !
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
    32
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    33
!VDBVariableObjectPresenter class methodsFor:'menu specs'!
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    34
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    35
contextMenu
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    36
    "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
    37
     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
    38
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    39
    "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
    40
     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
    41
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    42
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    43
    "
62
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    44
     MenuEditor new openOnClass:VDBVariableObjectPresenter andSelector:#contextMenu
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    45
     (Menu new fromLiteralArrayEncoding:(VDBVariableObjectPresenter contextMenu)) startUp
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    46
    "
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    47
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    48
    <resource: #menu>
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    49
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    50
    ^ 
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    51
     #(Menu
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    52
        (
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    53
         (MenuItem
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    54
            label: 'Copy Value'
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    55
            itemValue: doCopyValue
62
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    56
            isVisible: true
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    57
          )
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    58
         (MenuItem
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    59
            label: 'Copy Expression'
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    60
            itemValue: doCopyPath
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    61
            isVisible: true
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    62
          )
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    63
         )
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    64
        nil
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    65
        nil
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    66
      )
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    67
! !
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    68
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    69
!VDBVariableObjectPresenter methodsFor:'accessing'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
label
61
a8b0e1d29ef7 UI: Show absolue path for top-level variable objects
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    72
    ^ self parent == self rootItem 
a8b0e1d29ef7 UI: Show absolue path for top-level variable objects
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    73
        ifTrue:[ varobj path ] 
a8b0e1d29ef7 UI: Show absolue path for top-level variable objects
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    74
        ifFalse:[ varobj expression ]
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    "Created: / 27-02-2015 / 15:57:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
61
a8b0e1d29ef7 UI: Show absolue path for top-level variable objects
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    77
    "Modified: / 05-02-2018 / 21:26:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
!
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    80
subject
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    81
    "Return an instance of GDB object that this presenter displays."
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    82
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    83
    ^ varobj
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    84
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    85
    "Modified: / 05-02-2018 / 13:08:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    86
!
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    87
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    88
value
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    89
    ^ varobj value
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    90
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    91
    "Created: / 02-06-2017 / 07:32:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    92
    "Modified: / 28-01-2018 / 22:49:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    93
!
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    94
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    95
valueString
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    96
    ^ varobj valueString
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    97
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    98
    "Created: / 11-06-2017 / 23:25:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    99
!
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   100
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   101
varobj
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   102
    ^ varobj
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   103
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   104
    "Created: / 28-01-2018 / 22:45:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   107
!VDBVariableObjectPresenter methodsFor:'initialization'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   109
setVarobj:aGDBVariable 
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   110
    varobj := aGDBVariable
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    "Created: / 27-02-2015 / 16:00:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   115
!VDBVariableObjectPresenter methodsFor:'menu'!
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   116
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   117
contextMenuStX: aMenu
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   118
    "Adds a Smalltalk/X debugging menu items to the context menu."
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   119
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   120
    <menuextension: #contextMenu>
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   121
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   122
    (varobj type endsWith: 'OBJ') ifTrue:[ 
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   123
        | path |
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   124
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   125
        path := varobj path.
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   126
        aMenu addItem: (
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   127
            (MenuItem label: (self class classResources string: 'Inspect - *(%1)' with: path)
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   128
                 itemValue: #doInspectOBJ)
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   129
                 receiver: self
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   130
        ).
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   131
        aMenu addSeparator.
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   132
    ].
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   133
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   134
    "Created: / 10-02-2018 / 23:06:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   135
! !
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   136
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   137
!VDBVariableObjectPresenter methodsFor:'menu actions'!
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   138
62
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   139
doCopyPath
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   140
    self doCopy: varobj path.
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   141
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   142
    "Created: / 05-02-2018 / 22:32:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   143
!
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   144
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   145
doCopyValue
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   146
    self doCopy: varobj value.
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   147
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   148
    "Created: / 16-01-2018 / 23:28:56 / jv"
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   149
    "Modified: / 28-01-2018 / 22:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   150
!
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   151
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   152
doDoubleClick
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   153
    self doInspectOBJ
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   154
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   155
    "Created: / 19-02-2018 / 16:10:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   156
!
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   157
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   158
doInspectOBJ
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   159
    | dup |
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   160
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   161
    dup := varobj duplicate.
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   162
    dup visualizer: 'lambda val: instance_create(val)'.
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   163
    dup inspect.
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   164
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   165
    "Created: / 10-02-2018 / 23:17:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   166
    "Modified: / 19-02-2018 / 14:59:30 / 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
   167
! !
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   168
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   169
!VDBVariableObjectPresenter methodsFor:'private'!
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   170
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   171
fetchChildren
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   172
    ^ varobj children collect:[ :each | self class new setVarobj:each; parent:self;yourself ]
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   173
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   174
    "Created: / 28-01-2018 / 22:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   175
! !
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   176
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   177
!VDBVariableObjectPresenter methodsFor:'protocol-queries'!
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   178
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   179
hasChildren
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   180
    ^ varobj hasChildren
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   181
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   182
    "Created: / 28-01-2018 / 22:49:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   183
! !
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   184
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   185
!VDBVariableObjectPresenter methodsFor:'testing'!
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   186
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   187
isVariablePresenter
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   188
    ^ true
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   189
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   190
    "Created: / 02-06-2017 / 00:05:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   191
! !
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   192
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   193
!VDBVariableObjectPresenter class methodsFor:'documentation'!
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   194
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   195
version_HG
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   196
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   197
    ^ '$Changeset: <not expanded> $'
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   198
! !
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   199