VDBAbstractApplication.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 21 Sep 2019 18:31:45 +0100
changeset 185 bb863cb24c1a
parent 164 364ebdd1d42c
child 209 c368a74adb70
permissions -rw-r--r--
Do not try to raise transcript window if `Transcript` is not graphical ...but - for instance - a `StdOut` or `StdErr`.
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
"
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
"{ Package: 'jv:vdb' }"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
40
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    11
"{ 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: 16
diff changeset
    12
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
ApplicationModel subclass:#VDBAbstractApplication
124
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    14
	instanceVariableNames:'window windowVisible debuggerHolder debugger titleHolder'
94
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    15
	classVariableNames:'DefaultTextFont DefaultMenuFont'
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	poolDictionaries:''
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	category:'VDB-UI-Abstract'
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
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
    20
!VDBAbstractApplication class methodsFor:'documentation'!
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
! !
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    32
94
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    33
!VDBAbstractApplication class methodsFor:'accessing - defaults'!
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    34
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    35
defaultMenuFont
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    36
    "Return a default font to be used in list and text views. VDB UI is designed
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    37
     so that it expects thos font to be monospaced but does not enforce it."     
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    38
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    39
    DefaultMenuFont isNil ifTrue:[ ^ MenuPanel defaultFont asSize: self defaultTextFont size ].
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    40
    ^ DefaultMenuFont
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    41
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    42
    "Created: / 31-08-2018 / 08:41:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    43
!
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    44
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    45
defaultTextFont
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    46
    "Return a default font to be used in list and text views. VDB UI is designed
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    47
     so that it expects thos font to be monospaced but does not enforce it."     
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    48
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    49
    DefaultTextFont isNil ifTrue:[ ^ CodeView defaultFont ].
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    50
    ^ DefaultTextFont
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    51
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    52
    "Created: / 20-08-2018 / 10:49:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    53
!
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    54
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    55
defaultTextFont: aFont
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    56
    "Set a default font to be used in list and text views. VDB UI is designed
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    57
     so that it expects thos font to be monospaced but does not enforce it."     
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    58
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    59
    DefaultTextFont := aFont
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    60
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    61
    "Created: / 20-08-2018 / 10:54:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
115
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    62
!
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    63
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    64
defaultWindowTitle
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    65
    "Returns default window title for this application. By default,
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    66
     extracts the title from #windowSpec. 
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    67
     
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    68
     Subclasses may (must) override this method." 
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    69
     
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    70
    | m |
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    71
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    72
    m := self class lookupMethodFor: #windowSpec.
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    73
    m mclass theNonMetaclass isAbstract ifTrue:[ 
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    74
        self subclassResponsibility: 'Override #defaultWindowTitle in concrete classes'.
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    75
    ].
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    76
    ^ (self defaultWindowTitleFromSpec: self windowSpec) ? (self name)
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    77
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    78
    "Created: / 03-10-2018 / 15:36:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    79
!
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    80
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    81
defaultWindowTitleFromSpec: spec
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    82
    "Given a window spec, return the specified (window) label. 
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    83
     If no window label is specified, retun `nil`"
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    84
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    85
    spec do: [:e | 
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    86
        (e isArray and:[ e first == #WindowSpec ]) ifTrue:[
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    87
            ^ self resources string: (e at: 3)
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    88
        ]
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    89
    ].
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    90
    ^ nil
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    91
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
    92
    "Created: / 03-10-2018 / 15:44:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
94
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    93
! !
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
    94
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
!VDBAbstractApplication class methodsFor:'interface opening'!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
openFor: debugger
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    self new 
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
        debugger: debugger;
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
        open.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    "Created: / 06-06-2014 / 21:35:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
! !
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
40
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   105
!VDBAbstractApplication class methodsFor:'interface specs'!
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   106
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   107
windowSpec 
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   108
    self subclassResponsibility
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   109
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   110
    "Created: / 01-06-2017 / 12:14:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   111
! !
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   112
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
!VDBAbstractApplication class methodsFor:'plugin spec'!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
aspectSelectors
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
    ^ #(
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
        debuggerHolder
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    )
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
    "Created: / 06-06-2014 / 21:47:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
! !
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
1
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   123
!VDBAbstractApplication class methodsFor:'testing'!
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   124
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   125
isAbstract
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   126
    ^ self == VDBAbstractApplication
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   127
! !
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   128
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
!VDBAbstractApplication methodsFor:'acessing'!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
debugger
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
    ^ debugger
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
    "Created: / 06-06-2014 / 21:37:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
debugger: dbg
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    self debuggerHolder value: dbg
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
    "Created: / 06-06-2014 / 21:36:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   141
!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   142
13
d06924d8ca0a Minor fixes in UI - allow to open stack window as floating tool window.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   143
masterApplication: anApplicationModel
d06924d8ca0a Minor fixes in UI - allow to open stack window as floating tool window.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   144
    super masterApplication: anApplicationModel.
d06924d8ca0a Minor fixes in UI - allow to open stack window as floating tool window.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   145
    (anApplicationModel isKindOf: VDBAbstractApplication) ifTrue:[ 
d06924d8ca0a Minor fixes in UI - allow to open stack window as floating tool window.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   146
        self debuggerHolder: anApplicationModel debuggerHolder.
d06924d8ca0a Minor fixes in UI - allow to open stack window as floating tool window.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   147
    ].
d06924d8ca0a Minor fixes in UI - allow to open stack window as floating tool window.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   148
d06924d8ca0a Minor fixes in UI - allow to open stack window as floating tool window.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   149
    "Created: / 17-09-2014 / 22:45:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d06924d8ca0a Minor fixes in UI - allow to open stack window as floating tool window.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   150
!
d06924d8ca0a Minor fixes in UI - allow to open stack window as floating tool window.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   151
94
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   152
menuFont
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   153
    "Return a Font to be used in pinned menu panels. Default value
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   154
     is to use menu's default font at the same size at #textFont"
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   155
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   156
    ^ self class defaultMenuFont
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   157
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   158
    "Created: / 31-08-2018 / 08:38:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   159
!
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   160
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   161
textFont
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   162
    "Return a Font to be used in list and text views. VDB UI is designed
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   163
     so that it expects thos font to be monospaced but does not enforce it."
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   164
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   165
    ^ self class defaultTextFont
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   166
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   167
    "Created: / 20-08-2018 / 10:14:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   168
!
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   169
5
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   170
title
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   171
    ^ self titleHolder value
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   172
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   173
    "Created: / 10-06-2014 / 14:53:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   174
!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   175
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   176
title: aString
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   177
    self titleHolder value: aString
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   178
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   179
    "Created: / 10-06-2014 / 14:53:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
! !
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
!VDBAbstractApplication methodsFor:'aspects'!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
debuggerHolder
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
    "return/create the 'debuggerHolder' value holder (automatically generated)"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    debuggerHolder isNil ifTrue:[
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
        debuggerHolder := ValueHolder new.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
        debuggerHolder addDependent:self.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
    ].
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
    ^ debuggerHolder
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
debuggerHolder:aValueModel
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
    "set the 'debuggerHolder' value holder (automatically generated)"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
    |oldValue newValue|
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
    debuggerHolder notNil ifTrue:[
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
        oldValue := debuggerHolder value.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
        debuggerHolder removeDependent:self.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
    ].
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
    debuggerHolder := aValueModel.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    debuggerHolder notNil ifTrue:[
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
        debuggerHolder addDependent:self.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
    ].
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    newValue := debuggerHolder value.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
    oldValue ~~ newValue ifTrue:[
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
        self update:#value with:newValue from:debuggerHolder.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
    ].
5
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   211
!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   212
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   213
titleHolder
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   214
    "return/create the 'titleHolder' value holder (automatically generated)"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   215
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   216
    titleHolder isNil ifTrue:[
115
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
   217
        titleHolder := ValueHolder with: self class defaultWindowTitle
5
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   218
    ].
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   219
    ^ titleHolder
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   220
115
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
   221
    "Modified: / 03-10-2018 / 15:36:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
! !
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
63
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   224
!VDBAbstractApplication methodsFor:'binding access'!
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   225
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   226
menuExtendersFor: key do: block
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   227
    "Evaluates a block for each selector that extends particular menu.
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   228
     Extender methods have to be annotated by <menuextension: key> annotation
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   229
     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: 62
diff changeset
   230
     extends."
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   231
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   232
    | cls |
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   233
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   234
    cls := self class.
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   235
    [ cls notNil ] whileTrue:[
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   236
        cls selectorsAndMethodsDo:[ :selector :method |
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   237
            method annotationsAt: #menuextension: do: [ :annotation |
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   238
                annotation arguments first == key ifTrue:[
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   239
                    block value: selector
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   240
                ].
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   241
            ]
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   242
        ].
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   243
        cls := cls superclass.
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   244
    ].
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   245
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   246
    "Created: / 25-01-2014 / 12:40:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   247
    "Modified: / 24-02-2014 / 22:44:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   248
!
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   249
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   250
menuFor:key
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   251
    | menu |
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   252
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   253
    menu := super menuFor: key.  
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   254
    thisContext isRecursive ifFalse:[
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   255
        self menuExtendersFor: key do:[:each |
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   256
            self perform: each with: menu
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   257
        ].
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   258
    ].
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   259
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   260
    ^ menu
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   261
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   262
    "Modified: / 18-06-1998 / 20:33:56 / cg"
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   263
    "Modified (comment): / 06-02-2018 / 20:35:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   264
! !
b8c6b168d25f Introduced menu extension points
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   265
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
!VDBAbstractApplication methodsFor:'change & update'!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
124
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   268
update:aspect with:aParameter from:changedObject
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
    "Invoked when an object that I depend upon sends a change notification."
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
    changedObject == debuggerHolder ifTrue:[
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
        debuggerHolder value == debugger ifFalse:[
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
            debugger notNil ifTrue:[ 
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
                self unsubscribe.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
            ].
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
            debugger := debuggerHolder value.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
            debugger notNil ifTrue:[ 
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
                self subscribe.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
            ].
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
        ].
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
        ^ self.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
    ].
124
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   283
    changedObject == window ifTrue:[         
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   284
        aspect == #visibility ifTrue:[
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   285
            windowVisible ~~ window shown ifTrue:[ 
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   286
                windowVisible := window shown.
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   287
                self updateAfterWindowVisibilityChanged.
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   288
            ]. 
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   289
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   290
        ].
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
124
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   292
    ].
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   293
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   294
    super update:aspect with:aParameter from:changedObject
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   295
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   296
    "Modified: / 07-10-2018 / 22:51:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   297
!
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   298
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   299
updateAfterWindowVisibilityChanged
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   300
    "/ Nothing by default, to be overriden by subclasses.
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   301
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   302
    "Created: / 07-10-2018 / 22:51:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
! !
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
154
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   305
!VDBAbstractApplication methodsFor:'delayed actions (enqueue)'!
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   306
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   307
enqueueMessage:selector for: object arguments: arguments
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   308
    "enqueue a message to be sent to someone later, when my process
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   309
     is back in its eventLoop. Also, filter duplicates.
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   310
     This is useful, to buffer redraws and avoid flicker due to multiple
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   311
     redraws (especially in browsers, when reacting on changeMessages resulting
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   312
     from changes made in other browsers)"   
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   313
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   314
    | w wg |
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   315
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   316
    
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   317
    "/ Technicallly, this is done by pushing an user event onto
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   318
    "/ and event queue and leting window's event dispatcher to 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   319
    "/ trigger the update. 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   320
    "/ 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   321
    "/ However, the complication comes when updated is enqueued 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   322
    "/ for application which is is not fully initialized or it is
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   323
    "/ not shown (such as in tab which is not visible). In that
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   324
    "/ case there's no sensor (event queue) associated with 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   325
    "/ application's (sub) window. 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   326
    "/ 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   327
    "/ Since these updates re often equeued from an GDB event handler
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   328
    "/ and since they often involve sending more commands to GDB, we
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   329
    "/ really need them to be processed within an window event queue -
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   330
    "/ sending commands from GDB event dispatch process is not permitted
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   331
    "/ by GDB API. 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   332
    "/ 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   333
    "/ Hence, if there's no sensor already set up for the window, use
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   334
    "/ `WindowGroup activeGroup sensor`. In most cases that'd be the 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   335
    "/ "right" one. If it's not, it should not harm. 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   336
    "/ 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   337
    "/ If there's no active window group, then process the
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   338
    "/ udate in special separate thread. This should be rare. 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   339
    w := self window.
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   340
    w notNil ifTrue:[           
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   341
        wg := w windowGroup.
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   342
    ].        
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   343
    wg isNil ifTrue:[ 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   344
        wg := WindowGroup activeGroup
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   345
    ].
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   346
    wg notNil ifTrue:[ 
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   347
        wg sensor enqueueMessage: selector for:object arguments: arguments        
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   348
    ] ifFalse:[
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   349
        [ object perform: selector withArguments: arguments ] fork.
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   350
    ]
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   351
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   352
    "Created: / 18-02-2019 / 10:22:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   353
! !
26937faa5a97 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   354
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   355
!VDBAbstractApplication methodsFor:'dependents access'!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   357
release
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   358
    "remove all dependencies from the receiver"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   359
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   360
    super release.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   361
    self unsubscribe
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
    "Created: / 06-06-2014 / 22:13:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
! !
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   366
!VDBAbstractApplication methodsFor:'hooks'!
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   367
124
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   368
commonPostBuild
151
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   369
    window isNil ifTrue:[
124
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   370
        window := builder window.
151
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   371
        window notNil ifTrue:[
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   372
            windowVisible := window shown.
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   373
            window addDependent: self.
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   374
        ].
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   375
    ].
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   376
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   377
    "Created: / 07-10-2018 / 21:09:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   378
    "Modified: / 22-02-2019 / 21:14:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   379
!
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   380
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   381
commonPostOpen
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   382
    window := builder window.
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   383
    window notNil ifTrue:[
124
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   384
        windowVisible := window shown.
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   385
        window addDependent: self.
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   386
    ].
151
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   387
    super commonPostOpen
124
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   388
151
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   389
    "Created: / 22-02-2019 / 12:52:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
124
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   390
!
3cce4791af34 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   391
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   392
postBuildWith:aBuilder
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   393
    super postBuildWith: aBuilder.  
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   394
    (aBuilder window respondsTo: #labelChannel:) ifTrue:[
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   395
        aBuilder window labelChannel: self titleHolder.
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   396
    ].
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   397
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   398
    "Created: / 11-07-2017 / 16:33:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   399
    "Modified: / 11-07-2017 / 19:37:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   400
! !
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   401
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   402
!VDBAbstractApplication methodsFor:'initialization & release'!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   403
151
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   404
initialize
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   405
    super initialize.
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   406
    windowVisible := false.
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   407
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   408
    "Created: / 14-02-2019 / 16:40:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   409
!
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   410
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   411
subscribe   
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   412
    "Register for debugger events. To be overrided by subclasses"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   413
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   414
    "Created: / 06-06-2014 / 21:26:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   415
!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   416
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   417
unsubscribe
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   418
    "Unsubscribe myself fo debugger events"
41
25d1418e3316 Close debugger window when debugger quits.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 40
diff changeset
   419
    (debugger notNil and:[debugger isConnected]) ifTrue:[ 
5
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   420
        debugger announcer unsubscribe: self.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   421
    ].
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   422
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   423
    "Created: / 06-06-2014 / 21:26:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
41
25d1418e3316 Close debugger window when debugger quits.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 40
diff changeset
   424
    "Modified: / 01-06-2017 / 13:43:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   425
! !
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   426
12
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   427
!VDBAbstractApplication methodsFor:'menu actions'!
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   428
62
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 59
diff changeset
   429
doInspectApplication
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 59
diff changeset
   430
    self inspect
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 59
diff changeset
   431
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 59
diff changeset
   432
    "Created: / 06-02-2018 / 12:54:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 59
diff changeset
   433
!
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 59
diff changeset
   434
12
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   435
doInspectDebugger
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   436
   debugger inspect
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   437
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   438
    "Modified: / 09-09-2014 / 00:09:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   439
!
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   440
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   441
doInspectSessionRecord
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   442
   (debugger instVarNamed:#connection) recorder inspect
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   443
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   444
    "Created: / 09-09-2014 / 00:12:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
66
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   445
!
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   446
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   447
doOpenToolApplication:application 
84
74080a37751a UI: fixed bug when clofing a tool window closed the whole debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 66
diff changeset
   448
    application allButOpen.
74080a37751a UI: fixed bug when clofing a tool window closed the whole debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 66
diff changeset
   449
    application masterApplication: self topMasterApplication.
66
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   450
    self doOpenToolWindow: application window
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   451
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   452
    "Created: / 11-06-2017 / 20:21:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84
74080a37751a UI: fixed bug when clofing a tool window closed the whole debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 66
diff changeset
   453
    "Modified: / 29-07-2018 / 16:30:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
66
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   454
!
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   455
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   456
doOpenToolApplicationClass:applicationClassName 
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   457
    | applicationClass  application |
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   458
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   459
    applicationClass := Smalltalk at:applicationClassName asSymbol.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   460
    applicationClass isNil ifTrue:[
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   461
        Dialog 
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   462
            warn:('No application class named %1' bindWith:applicationClassName).
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   463
        ^ self.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   464
    ].
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   465
    application := applicationClass new.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   466
    application debuggerHolder:self debuggerHolder.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   467
    self doOpenToolApplication:application
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   468
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   469
    "Created: / 11-06-2017 / 20:21:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   470
!
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   471
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   472
doOpenToolWindow:window 
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   473
    | screen |
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   474
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   475
    window realize.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   476
    "/ On X11, use ICCCM hints to tell the WM about a transient tool window
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   477
    "/ and let WM to handle this according to DE standards. It has the nice
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   478
    "/ side effect (on most modern WM) that these windows don't show up in
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   479
    "/ pager / task list and go away when browser's main window is minimuzed    
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   480
    screen := Screen current.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   481
    (screen notNil and:[ screen platformName == #X11 ]) ifTrue:[
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   482
        screen setTransient:window topView id for:self window topView id.         
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   483
        "/ Also, use EWMH hint to tell the WM that the window is
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   484
        "/ a sort of floating tool so WM can decorate it according to
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   485
        "/ DE standards.        
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   486
        screen setWindowType:#'_NET_WM_WINDOW_TYPE_UTILITY'
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   487
            in:window topView id
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   488
    ].
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   489
    window openInGroup: self window windowGroup.
164
364ebdd1d42c Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 154
diff changeset
   490
    window raise.
66
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   491
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   492
    "Created: / 14-03-2018 / 09:47:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
164
364ebdd1d42c Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 154
diff changeset
   493
    "Modified: / 10-06-2019 / 14:16:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
66
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   494
!
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   495
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   496
doPinMenuAs: label item: tearOffMenuItem 
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   497
    | menu  window  panel |
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   498
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   499
    menu := tearOffMenuItem menuPanel asMenu.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   500
     
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   501
    "/ Remove the 'Tear Off' menu item...
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   502
    
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   503
    menu items last value = #doPinMenuAs:item: ifTrue:[
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   504
        menu items removeLast.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   505
         
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   506
        "/ And possible separator above it...
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   507
        
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   508
        (menu items last value isNil and:[ menu items last label = '-' ]) ifTrue:[
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   509
            menu items removeLast.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   510
        ].
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   511
    ].
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   512
    window := StandardSystemView new.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   513
    window label: (resources string: label).
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   514
    panel := MenuPanel in:window.
94
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   515
    panel
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   516
        font: self menuFont;
66
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   517
        originator: self;    
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   518
        layout: (0.0 @ 0.0 corner:1.0 @ 1.0) asLayout;
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   519
        verticalLayout:true.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   520
    panel
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   521
        menu:menu;
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   522
        receiver:self.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   523
    window extent:panel preferredExtent.
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   524
    self doOpenToolWindow:window
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   525
a6439bb6d8bc UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   526
    "Created: / 16-03-2018 / 10:20:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
94
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   527
    "Modified: / 31-08-2018 / 08:38:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   528
! !
b17ffe0604f0 Added debug menu to VDBDebuggerApplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   529
0
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   530
!VDBAbstractApplication methodsFor:'startup & release'!
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   531
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   532
releaseAsSubCanvas
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   533
    "a subcanvas is closed or switching to a new application.
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   534
     Can be redefined to perform a self release in this case."
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   535
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   536
    self release
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   537
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   538
    "Created: / 06-06-2014 / 22:12:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   539
! !
33a652015a1a Initial commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   540
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
   541
!VDBAbstractApplication class methodsFor:'documentation'!
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
   542
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
   543
version_HG
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
   544
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
   545
    ^ '$Changeset: <not expanded> $'
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
   546
! !
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
   547