VDBVariableObjectPresenter.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 08 Jul 2019 23:12:19 +0100
changeset 179 8fba8cf6f0f2
parent 105 41d3bdbb8e2b
child 182 4f3f744b58c6
permissions -rw-r--r--
UX: perform 'inspect' when variable is double-clicked
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
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    72
    ^ varobj expression
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    73
"/    ^ (varobj parent notNil or:[varobj parentIsDynamic])
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    74
"/        ifTrue:[ varobj expression ] 
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    75
"/        ifFalse:[ varobj path ]
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    "Created: / 27-02-2015 / 15:57:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    78
    "Modified: / 08-07-2019 / 23:10:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
!
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    81
subject
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    82
    "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
    83
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    84
    ^ varobj
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    85
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    86
    "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
    87
!
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    88
86
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    89
tooltip
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    90
    ^ self valueString
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    91
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    92
    "Created: / 29-07-2018 / 21:35:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    93
!
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    94
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    95
value
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    96
    ^ varobj value
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    97
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    98
    "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
    99
    "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
   100
!
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
valueString
102
3049a43423cf Fix in `VDBVariableObjectPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
   103
    ^ varobj value
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   104
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   105
    "Created: / 11-06-2017 / 23:25:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
102
3049a43423cf Fix in `VDBVariableObjectPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
   106
    "Modified: / 01-09-2018 / 00:55:24 / 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
   107
!
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   108
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   109
varobj
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   110
    ^ varobj
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   111
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   112
    "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
   113
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   115
!VDBVariableObjectPresenter methodsFor:'initialization'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   117
setVarobj:aGDBVariable 
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   118
    varobj := aGDBVariable
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
    "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
   121
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   123
!VDBVariableObjectPresenter methodsFor:'menu'!
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   124
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   125
contextMenuBee: aMenu
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   126
    "Adds a Smalltalk/X debugging menu items to the context menu."
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   127
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   128
    <menuextension: #contextMenu>
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   129
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   130
    (varobj type endsWith: 'Bee::oop_t *') ifTrue:[ 
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   131
        aMenu addItem: (
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   132
            (MenuItem label: (self class classResources string: 'Inspect Object')
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   133
                 itemValue: #doInspectBeeObject)
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   134
                 receiver: self
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   135
        ).
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   136
        aMenu addSeparator.
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   137
    ].
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   138
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   139
    "Created: / 08-07-2019 / 21:54:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   140
!
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   141
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   142
contextMenuStX: aMenu
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   143
    "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
   144
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   145
    <menuextension: #contextMenu>
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   146
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   147
    (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
   148
        aMenu addItem: (
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   149
            (MenuItem label: (self class classResources string: 'Inspect Object')
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   150
                 itemValue: #doInspectStXObject)
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   151
                 receiver: self
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   152
        ).
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   153
        aMenu addSeparator.
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
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   156
    "Created: / 10-02-2018 / 23:06:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   157
    "Modified: / 08-07-2019 / 22:52:28 / 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
   158
! !
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   159
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   160
!VDBVariableObjectPresenter methodsFor:'menu actions'!
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   161
62
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   162
doCopyPath
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   163
    self doCopy: varobj path.
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   164
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   165
    "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
   166
!
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   167
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   168
doCopyValue
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   169
    self doCopy: varobj value.
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   170
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   171
    "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
   172
    "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
   173
!
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   174
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   175
doDoubleClick
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   176
    "/ This is really an ugly hack: in Smalltalk IDEs, double clock
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   177
    "/ on variable usually inspects it. We want the same, but in this case,
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   178
    "/ inspect operation may involve changing varobj's visualizer.
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   179
    "/ 
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   180
    "/ To allow plugins to define their own inspect actions, first search
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   181
    "/ extending menu items for item matching "Inspect" - if there's one,
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   182
    "/ do this, if none or more than one, do `super doDoubleClick`.
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   183
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   184
    | dummy inspects |
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   185
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   186
    dummy := Menu new.
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   187
    self contextMenuExtendersFor: #contextMenu do:[:each |
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   188
        self perform: each with: dummy
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   189
    ].   
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   190
    inspects := dummy items select:[:item | item label startsWith:'Inspect' ].
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   191
    inspects size == 1 ifTrue:[ 
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   192
        | value |
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   193
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   194
        value := inspects anyOne value.
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   195
        value isSymbol ifTrue:[ 
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   196
            inspects anyOne receiver perform: value
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   197
        ].
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   198
    ] ifFalse:[ 
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   199
        super doDoubleClick
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   200
    ].
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   201
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   202
    "Created: / 19-02-2018 / 16:10:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   203
    "Modified: / 08-07-2019 / 23:07:39 / 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
   204
!
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   205
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   206
doInspect:visualizerExpr 
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   207
    "
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   208
     Open an inspector of a copy of varobj. If `visualizerExpr`
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   209
     is not nil then the visualizer of a *copy* is set to
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   210
     `visualizerExpr`
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   211
"
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   212
    
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   213
    | dup  app  wnd |
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   214
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   215
    dup := varobj duplicate.
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   216
    dup == varobj ifTrue:[
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   217
        dup := VDBVariableObject 
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   218
                evaluate:varobj path
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   219
                in:varobj frame
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   220
                using:varobj debugger.
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   221
    ].
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   222
    visualizerExpr notNil ifTrue:[
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   223
        dup visualizer:visualizerExpr
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   224
    ].
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   225
     
104
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   226
    "/ If used in Inspector2, open child in the same inspector windpow.
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   227
    
104
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   228
    app := self application.
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   229
    app notNil ifTrue:[
104
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   230
        wnd := app window.
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   231
        wnd notNil ifTrue:[
104
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   232
            wnd := wnd topView.
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   233
            (wnd application isKindOf:Tools::Inspector2) ifTrue:[
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   234
                wnd application inspect:dup.
104
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   235
                ^ self.
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   236
            ].
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   237
        ].
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   238
    ].
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   239
     
104
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   240
    "/ ...otherwise open a new inspector...            
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   241
    
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   242
    dup inspect.
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   243
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   244
    "Created: / 08-07-2019 / 20:17:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   245
!
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   246
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   247
doInspectBeeObject
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   248
    self doInspect:'obj'.
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   249
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   250
    "Created: / 08-07-2019 / 21:55:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   251
!
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   252
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   253
doInspectStXObject
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   254
    self doInspect:'instance_create'.
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   255
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   256
    "Created: / 10-02-2018 / 23:17:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
179
8fba8cf6f0f2 UX: perform 'inspect' when variable is double-clicked
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   257
    "Modified: / 08-07-2019 / 22:50:13 / 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
   258
! !
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   259
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   260
!VDBVariableObjectPresenter methodsFor:'private'!
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   261
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   262
fetchChildren
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   263
    ^ 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
   264
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   265
    "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
   266
! !
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   267
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   268
!VDBVariableObjectPresenter methodsFor:'protocol-queries'!
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   269
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   270
hasChildren
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   271
    ^ varobj hasChildren
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   272
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   273
    "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
   274
! !
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   275
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   276
!VDBVariableObjectPresenter methodsFor:'testing'!
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   277
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   278
isVariablePresenter
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   279
    ^ true
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   280
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   281
    "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
   282
! !
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   283
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   284
!VDBVariableObjectPresenter class methodsFor:'documentation'!
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   285
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   286
version_HG
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   287
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   288
    ^ '$Changeset: <not expanded> $'
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   289
! !
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   290