VDBStatusApplication.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 18 Feb 2019 09:44:04 +0000
changeset 152 a069cf7fcab5
child 154 26937faa5a97
permissions -rw-r--r--
UI: add status bar to debugger ...showing user the status (running / ready / busy) in order to provide a feedback to the user. It also shows a number of MI commands executed since last stop event. This is mainly useful for VDB hacking as rough information for optimization. Currently, the "ready" / "busy" indication does not work very well since most of the code executes MI commands within the UI eventloop and therefore status bas cannot update. This will be adressed later.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
152
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
jv:vdb - Visual / VM Debugger
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
"{ Package: 'jv:vdb' }"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"{ NameSpace: Smalltalk }"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
VDBAbstractApplication subclass:#VDBStatusApplication
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
	instanceVariableNames:'statusTextHolder running commands'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	classVariableNames:''
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	poolDictionaries:''
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	category:'VDB-UI-Others'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
!VDBStatusApplication class methodsFor:'documentation'!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
copyright
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
jv:vdb - Visual / VM Debugger
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
Copyright (C) 2015-now Jan Vrany
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
! !
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
!VDBStatusApplication class methodsFor:'interface specs'!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
windowSpec
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    "This resource specification was automatically generated
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
     by the UIPainter of ST/X."
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    "Do not manually edit this!! If it is corrupted,
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
     the UIPainter may not be able to read the specification."
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    "
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
     UIPainter new openOnClass:VDBStatusApplication andSelector:#windowSpec
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
     VDBStatusApplication new openInterface:#windowSpec
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
     VDBStatusApplication open
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    "
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    <resource: #canvas>
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    ^ 
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    #(FullSpec
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
       name: windowSpec
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
       uuid: 'd148ed70-316b-11e9-8b55-606720e43e2c'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
       window: 
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
      (WindowSpec
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
         label: 'Debugger Status'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
         name: 'Debugger Status'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
         uuid: '7f956341-3167-11e9-8b55-606720e43e2c'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
         min: (Point 10 10)
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
         bounds: (Rectangle 0 0 300 30)
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
       )
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
       component: 
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
      (SpecCollection
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
         collection: (
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
          (LabelSpec
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
             label: 'Label'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
             name: 'StatusText'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
             layout: (LayoutFrame 0 0 0 0 0 1 30 0)
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
             uuid: '7f956342-3167-11e9-8b55-606720e43e2c'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
             translateLabel: true
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
             labelChannel: statusTextHolder
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
             adjust: left
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
             postBuildCallback: postBuildStatusText:
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
             usePreferredHeight: true
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
           )
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
          )
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
        
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
       )
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
     )
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
! !
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
!VDBStatusApplication class methodsFor:'plugIn spec'!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
aspectSelectors
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    "This resource specification was automatically generated
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
     by the UIPainter of ST/X."
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    "Do not manually edit this. If it is corrupted,
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
     the UIPainter may not be able to read the specification."
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    "Return a description of exported aspects;
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
     these can be connected to aspects of an embedding application
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
     (if this app is embedded in a subCanvas)."
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    ^ #(
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
        #debuggerHolder
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
      ).
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
! !
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
!VDBStatusApplication methodsFor:'aspects'!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
statusTextHolder
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    <resource: #uiAspect>
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
    statusTextHolder isNil ifTrue:[
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
        statusTextHolder := ValueHolder new.
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
        self enqueueDelayedUpdateStatusText.
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    ].
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    ^ statusTextHolder.
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    "Modified: / 18-02-2019 / 08:39:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
! !
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
!VDBStatusApplication methodsFor:'change & update'!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
enqueueDelayedUpdateStatusText
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    self enqueueDelayedUpdate: #delayedUpdateStatusText
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
    "Created: / 16-02-2019 / 08:20:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
! !
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
!VDBStatusApplication methodsFor:'change & update-delayed'!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
delayedUpdateStatusText
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
    | status |
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
    debugger notNil ifTrue:[
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
        running ifTrue:[ 
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
            status := resources string: 'RUN'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
        ] ifFalse:[ 
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
            debugger hasPendingCommands ifTrue:[ 
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
                status := resources string: 'BSY'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
            ] ifFalse:[ 
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
                status := resources string: 'RDY'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
            ].
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
        ].
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    ] ifFalse:[ 
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
        status := resources string: 'DIS'
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
    ].
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
    self statusTextHolder value:
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
        ('[%1] C: %2' bindWith: status with: commands)
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
    "Created: / 16-02-2019 / 08:19:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
! !
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
!VDBStatusApplication methodsFor:'event handling'!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
onCommandEvent: event
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    commands := commands + 1.
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    self enqueueDelayedUpdateStatusText
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
    "Created: / 15-02-2019 / 21:41:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    "Modified: / 16-02-2019 / 08:21:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
onCommandResultEvent: event
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    self enqueueDelayedUpdateStatusText
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
    "Created: / 15-02-2019 / 21:41:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    "Modified: / 16-02-2019 / 08:21:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
onRunningEvent: event
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    running := true.
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    commands := 0.
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    self enqueueDelayedUpdateStatusText
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
    "Created: / 19-01-2019 / 23:46:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
    "Modified: / 16-02-2019 / 08:21:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
onStoppedEvent: event
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
    running := false.
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    commands := 0.
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    self enqueueDelayedUpdateStatusText
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    "Created: / 19-01-2019 / 23:46:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    "Modified: / 16-02-2019 / 08:21:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
! !
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
!VDBStatusApplication methodsFor:'hooks'!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
postBuildStatusText: aLabel
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
    <resource: #uiCallback>
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    aLabel font: self textFont
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
    "Modified: / 15-02-2019 / 21:50:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
! !
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
!VDBStatusApplication methodsFor:'initialization & release'!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
initialize
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
    super initialize.
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
    running := false.
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
    commands := 0
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
    "Created: / 15-02-2019 / 21:47:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
!
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
subscribe   
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
    "Register for debugger events. To be overrided by subclasses"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
    debugger announcer
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
        when: GDBRunningEvent       send: #onRunningEvent:      to: self;
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
        when: GDBStoppedEvent       send: #onStoppedEvent:      to: self;
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
        when: GDBCommandEvent       send: #onCommandEvent:      to: self;
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
        when: GDBCommandResultEvent send: #onCommandResultEvent: to: self. 
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
    running := debugger inferiors anySatisfy:[ :tg | tg isRunning and:[ tg isStopped not ] ].
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
    self enqueueDelayedUpdateStatusText
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
    "Created: / 15-02-2019 / 21:34:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
    "Modified: / 18-02-2019 / 08:39:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
! !
a069cf7fcab5 UI: add status bar to debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218