ActiveHelp.st
author Claus Gittinger <cg@exept.de>
Sat, 31 Aug 2013 13:57:48 +0200
changeset 3219 eca34010e99b
parent 3197 5924a1d75db3
child 3227 4c3a5cca2b9e
permissions -rw-r--r--
class: ActiveHelp comment/format in: #documentation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     1
"
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1995 by Claus Gittinger
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     3
	      All Rights Reserved
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     4
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    11
"
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
    12
"{ Package: 'stx:libview2' }"
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
    13
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    14
EventListener subclass:#ActiveHelp
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
    15
	instanceVariableNames:'lastHelpText listeningForAll applicationsOrTopViewsWithHelp'
2975
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
    16
	classVariableNames:'Debugging'
216
a5f97668e99a commentary
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    17
	poolDictionaries:''
a5f97668e99a commentary
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    18
	category:'Interface-Help'
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    19
!
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    20
1892
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    21
ActiveHelp class instanceVariableNames:'DelayTime ShowTime TheOneAndOnlyHelpListener'
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    22
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    23
"
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    24
 No other class instance variables are inherited by this class.
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    25
"
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    26
!
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    27
338
071f92621e3b oops - catching the terminateSignal is no good idea
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
    28
!ActiveHelp class methodsFor:'documentation'!
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    29
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    30
copyright
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    31
"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    32
 COPYRIGHT (c) 1995 by Claus Gittinger
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    33
	      All Rights Reserved
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    34
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    35
 This software is furnished under a license and may be used
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    36
 only in accordance with the terms of that license and with the
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    37
 inclusion of the above copyright notice.   This software may not
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    38
 be provided or otherwise made available to, or used by, any
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    39
 other person.  No title to or ownership of the software is
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    40
 hereby transferred.
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    41
"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    42
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    43
!
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    44
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    45
documentation
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    46
"
98
claus
parents: 97
diff changeset
    47
    The active help listener.
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    48
98
claus
parents: 97
diff changeset
    49
    The one and only instance of myself intercepts incoming mouse & keyboard 
claus
parents: 97
diff changeset
    50
    events for the display device, being especially interested in view-enter/
636
446b52f2c603 comments
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
    51
    leave events. When such an event arrives, it asks the corresponding view
3219
eca34010e99b class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3197
diff changeset
    52
    or its model for a help message and displays it via an ActiveHelpView.
eca34010e99b class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3197
diff changeset
    53
    Actually, the view is first asked if it would like to display it itself
eca34010e99b class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3197
diff changeset
    54
    - for example, in some information-view at the bottom of its main window.
636
446b52f2c603 comments
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
    55
446b52f2c603 comments
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
    56
    The query for the helpText is repeated along the views superView chain, 
446b52f2c603 comments
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
    57
    until any model or view returns a nonNil answer for the #helpTextFor:at 
446b52f2c603 comments
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
    58
    or #helpTextFor message.
100
claus
parents: 98
diff changeset
    59
98
claus
parents: 97
diff changeset
    60
    All I need for automatic help is some model/view/applicationModel along
claus
parents: 97
diff changeset
    61
    the superview chain of the entered component, which responds to the
claus
parents: 97
diff changeset
    62
    #helpTextFor: message with a non-nil (string-) answer.
claus
parents: 97
diff changeset
    63
    I close down the help view after a while, if a key is pressed or the mouse
claus
parents: 97
diff changeset
    64
    moved to another view.
100
claus
parents: 98
diff changeset
    65
claus
parents: 98
diff changeset
    66
    Who should provide the helpText:
claus
parents: 98
diff changeset
    67
221
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    68
        the best place is the application object (an instance of ApplicationModel)
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    69
        or the topView, if its a derived class of StandardSystemView.
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    70
        This should know about its components and return the string
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    71
        when asked via #helpTextFor:aComponent.
330
d7ce98930ad3 Rename Launcher-->OldLauncher, NewLauncher-->Launcher.
Stefan Vogel <sv@exept.de>
parents: 297
diff changeset
    72
        See examples in FileBrowser, Launcher etc.
100
claus
parents: 98
diff changeset
    73
claus
parents: 98
diff changeset
    74
    Be aware, that for applicationModels, there must be a link from the
claus
parents: 98
diff changeset
    75
    topView to this applicationModel 
claus
parents: 98
diff changeset
    76
    (set via: aTopView application:anApplicationModel)
claus
parents: 98
diff changeset
    77
    otherwise, the helpManager has no means of finding the application which
claus
parents: 98
diff changeset
    78
    corresponds to a view.
claus
parents: 98
diff changeset
    79
claus
parents: 98
diff changeset
    80
    Who should display the helpText:
claus
parents: 98
diff changeset
    81
221
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    82
        by default, the helpListener opens a little popup view, which displays the
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    83
        returned help message. However, a nice trick which can be used by applications
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    84
        is to create an infoLabel as a subview of the topFrame (a la windows)
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    85
        and display the text right in the #helpTextFor: method. To cheat the
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    86
        help listener, this method should then return nil, to keep it silent.
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    87
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    88
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    89
    Usage:
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    90
        If help is to be shown for all views (as enabled by the launchers help menu),
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    91
        use 'ActiveHelp start' and 'ActiveHelp stop'.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    92
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    93
        Individual apps may enable/disable active help for themself by:
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    94
        'ActiveHelp startFor:app' or 'ActiveHelp stopFor:app', passing either
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    95
        the topView or the topViews application as argument.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    96
        This is usually done by applications which want to show contextHelp in
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    97
        some infoView.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    98
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    99
        
221
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   100
    [author:]
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   101
        Claus Gittinger
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   102
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   103
    [start with:]
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   104
        ActiveHelp start
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   105
        ActiveHelp stop
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   106
221
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   107
    [See also:]
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   108
        ActiveHelpView
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   109
        WindowGroup WindowEvent
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   110
        ApplicationModel StandardSystemView
100
claus
parents: 98
diff changeset
   111
"
claus
parents: 98
diff changeset
   112
!
claus
parents: 98
diff changeset
   113
claus
parents: 98
diff changeset
   114
examples
claus
parents: 98
diff changeset
   115
"
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   116
  Active Help for a single view
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   117
  or app (whatever the global settings are):
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   118
  Can be initiated by an app when its opened.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   119
                                                                        [exBegin]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   120
        |app top myAppClass|
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   121
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   122
        Class withoutUpdatingChangesDo:[
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   123
            myAppClass := ApplicationModel 
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   124
                            subclass:#'Demos::DemoApp'
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   125
                            instanceVariableNames:''
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   126
                            classVariableNames:''
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   127
                            poolDictionaries:''
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   128
                            category:'demos'.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   129
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   130
            myAppClass 
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   131
                compile:'helpTextFor:aView    Transcript showCR:''hello''. ^ ''this is some helpText'''.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   132
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   133
        ].
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   134
        app := myAppClass new.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   135
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   136
        top := StandardSystemView new.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   137
        top extent:300@100.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   138
        top application:app.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   139
        top open.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   140
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   141
        ActiveHelp startFor:app.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   142
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   143
        Class withoutUpdatingChangesDo:[
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   144
            myAppClass removeFromSystem
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   145
        ]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   146
                                                                        [exEnd]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   147
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   148
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   149
  Active Help (for all views):
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   150
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   151
    (make certain that activeHelp is turned on ...
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   152
     ... otherwise, you will see nothing)
100
claus
parents: 98
diff changeset
   153
claus
parents: 98
diff changeset
   154
    the following example uses a Plug as a model replacement.
claus
parents: 98
diff changeset
   155
    In concrete application, you would create a method to implement the helpText
claus
parents: 98
diff changeset
   156
    query message.
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   157
                                                                        [exBegin]
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   158
        |app top button1 button2|
100
claus
parents: 98
diff changeset
   159
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   160
        app := Plug new.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   161
        app respondTo:#helpTextFor:
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   162
                 with:[:view | 
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   163
                               view == button1 ifTrue:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   164
                                 'this is button1'
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   165
                               ] ifFalse:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   166
                                 view == button2 ifTrue:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   167
                                   'some help for button2'
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   168
                                 ] ifFalse:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   169
                                   nil
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   170
                                 ]
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   171
                               ]
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   172
                      ].
100
claus
parents: 98
diff changeset
   173
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   174
        top := StandardSystemView new.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   175
        top extent:300@100.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   176
        button1 := Button label:'b1' in:top.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   177
        button1 origin:0.0@0.0 corner:0.5@30. 
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   178
        button2 := Button label:'b2' in:top.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   179
        button2 origin:0.5@0.0 corner:1.0@30.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   180
        top model:app. '<-- normally this would be: top application:app'.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   181
        top open
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   182
                                                                        [exEnd]
100
claus
parents: 98
diff changeset
   183
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   184
    (make certain that activeHelp is turned on ...
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   185
     ... otherwise, you will see nothing)
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   186
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   187
    alternatively, display of the helpMessage in a local, private view:
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   188
                                                                        [exBegin]
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   189
        |app top button1 button2 infoView|
100
claus
parents: 98
diff changeset
   190
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   191
        app := Plug new.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   192
        app respondTo:#helpTextFor:
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   193
                 with:[:view | infoView label:'info ...'.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   194
                               view == button1 ifTrue:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   195
                                 infoView label:'this is button1'
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   196
                               ].
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   197
                               view == button2 ifTrue:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   198
                                 infoView label:'some help for button2'
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   199
                               ].
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   200
                               nil
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   201
                      ].
100
claus
parents: 98
diff changeset
   202
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   203
        top := StandardSystemView new.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   204
        top extent:300@100.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   205
        button1 := Button label:'b1' in:top.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   206
        button1 origin:0.0@0.0 corner:0.5@30. 
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   207
        button2 := Button label:'b2' in:top.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   208
        button2 origin:0.5@0.0 corner:1.0@30.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   209
        infoView := Label label:'info ...' in:top.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   210
        infoView level:-1; origin:0.0@1.0 corner:1.0@1.0.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   211
        infoView topInset:(infoView preferredExtent y negated - 3);
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   212
                 leftInset:3; 
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   213
                 rightInset:3; 
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   214
                 bottomInset:3;
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   215
                 adjust:#left.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   216
        top model:app. '<-- normally this would be: top application:app'.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   217
        top open
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   218
                                                                        [exEnd]
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   219
"
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   220
! !
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   221
2975
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   222
!ActiveHelp class methodsFor:'accessing'!
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   223
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   224
debugging
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   225
    ^ Debugging ? false
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   226
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   227
    "Modified: / 22-12-2011 / 10:46:30 / cg"
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   228
!
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   229
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   230
debugging:something
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   231
    Debugging := something.
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   232
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   233
    "
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   234
     self debugging:true
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   235
     self debugging:false
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   236
    "
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   237
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   238
    "Modified (comment): / 22-12-2011 / 10:43:32 / cg"
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   239
! !
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   240
633
5d162347fac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 632
diff changeset
   241
!ActiveHelp class methodsFor:'queries'!
100
claus
parents: 98
diff changeset
   242
632
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
   243
currentHelpListener
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
   244
    "return the activeHelp listener if activeHelp is turned on, nil otherwise"
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
   245
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
   246
    ^ TheOneAndOnlyHelpListener
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
   247
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
   248
    "Created: 28.6.1997 / 13:59:44 / cg"
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
   249
!
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
   250
1892
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
   251
delayTime
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   252
    ^ DelayTime ? 0.4
1892
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
   253
!
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
   254
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   255
isActive
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   256
    "return true, if activeHelp is turned on"
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   257
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   258
    ^ TheOneAndOnlyHelpListener notNil
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   259
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   260
    "Modified: 27.4.1996 / 15:07:57 / cg"
1892
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
   261
!
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
   262
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
   263
showTime
2879
9f0f872a8f60 lazy init
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   264
    "set the number of seconds, a help messages is to be shown.
9f0f872a8f60 lazy init
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   265
     The default is 30 seconds."
9f0f872a8f60 lazy init
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   266
9f0f872a8f60 lazy init
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   267
    ^ ShowTime ? 30
9f0f872a8f60 lazy init
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   268
9f0f872a8f60 lazy init
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   269
    "Modified: / 10-11-2010 / 12:29:44 / cg"
633
5d162347fac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 632
diff changeset
   270
! !
5d162347fac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 632
diff changeset
   271
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   272
!ActiveHelp class methodsFor:'start & stop'!
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   273
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   274
start
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   275
    "start activeHelp for all apps"
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   276
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   277
    TheOneAndOnlyHelpListener notNil ifTrue:[
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   278
        TheOneAndOnlyHelpListener stop.    
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   279
        TheOneAndOnlyHelpListener := nil.    
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   280
    ].
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   281
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   282
    TheOneAndOnlyHelpListener isNil ifTrue:[
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   283
        TheOneAndOnlyHelpListener := self new.
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   284
    ].
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   285
    TheOneAndOnlyHelpListener start.
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   286
    ^ TheOneAndOnlyHelpListener
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   287
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   288
    "
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   289
     ActiveHelp start
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   290
     FlyByHelp start
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   291
    "
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   292
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   293
    "Modified: / 26.10.1997 / 23:16:54 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   294
!
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   295
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   296
startFor:anApplicationOrTopView
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   297
    "start activeHelp for a single app"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   298
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   299
    TheOneAndOnlyHelpListener isNil ifTrue:[
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   300
        TheOneAndOnlyHelpListener := self new.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   301
    ].
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   302
    TheOneAndOnlyHelpListener listenFor:anApplicationOrTopView
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   303
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   304
    "Modified: / 26.10.1997 / 23:17:05 / cg"
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   305
!
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   306
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   307
stop
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   308
    "stop activeHelp for all (except for individual apps)"
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   309
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   310
    TheOneAndOnlyHelpListener notNil ifTrue:[
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   311
        TheOneAndOnlyHelpListener stop.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   312
        TheOneAndOnlyHelpListener := nil.
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   313
    ].
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   314
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   315
    "
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   316
     ActiveHelp stop
1543
95c5048dd99a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1541
diff changeset
   317
     FlyByHelp stop
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   318
    "
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   319
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   320
    "Modified: / 26.10.1997 / 23:18:58 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   321
!
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   322
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   323
stopFor:anAppOrTopView
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   324
    "stop activeHelp for a single app"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   325
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   326
    TheOneAndOnlyHelpListener notNil ifTrue:[
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   327
        TheOneAndOnlyHelpListener unlistenFor:anAppOrTopView.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   328
    ].
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   329
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   330
    "Modified: / 26.10.1997 / 23:12:55 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   331
    "Created: / 26.10.1997 / 23:18:41 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   332
! !
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   333
338
071f92621e3b oops - catching the terminateSignal is no good idea
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   334
!ActiveHelp class methodsFor:'times'!
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   335
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   336
delayTime:numberOfSeconds
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   337
    "set the delay (the time, the cursor has to be in the view
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   338
     before help is shown). The default is 2 seconds."
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   339
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   340
    DelayTime := numberOfSeconds
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   341
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   342
    "
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   343
     ActiveHelp delayTime:0.5
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   344
     ActiveHelp delayTime:2
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   345
     ActiveHelp delayTime:10
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   346
    "
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   347
!
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   348
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   349
showTime:numberOfSeconds
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   350
    "set the number of seconds, a help messages is to be shown.
2879
9f0f872a8f60 lazy init
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   351
     The default is 30 seconds."
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   352
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   353
    ShowTime := numberOfSeconds
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   354
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   355
    "
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   356
     ActiveHelp showTime:10
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   357
     ActiveHelp showTime:99999 
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   358
     ActiveHelp showTime:30
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   359
    "
2879
9f0f872a8f60 lazy init
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   360
9f0f872a8f60 lazy init
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   361
    "Modified: / 10-11-2010 / 12:29:40 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   362
! !
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   363
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   364
!ActiveHelp methodsFor:'event handling'!
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   365
2473
66754ea64440 code cleanup (arg-names)
Claus Gittinger <cg@exept.de>
parents: 2391
diff changeset
   366
buttonMotion:buttonAndModifierState x:x y:y view:aView
1657
447db4aae998 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1591
diff changeset
   367
    "handle motion events - prepare to show help"
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   368
2782
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   369
    |realViewUnderCursor realP|
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   370
2473
66754ea64440 code cleanup (arg-names)
Claus Gittinger <cg@exept.de>
parents: 2391
diff changeset
   371
    buttonAndModifierState == 0 ifTrue:[
2783
cb3420e40ed1 changed: #buttonMotion:x:y:view:
Claus Gittinger <cg@exept.de>
parents: 2782
diff changeset
   372
"/        realViewUnderCursor := aView device viewFromPoint:(aView pointerPosition).
cb3420e40ed1 changed: #buttonMotion:x:y:view:
Claus Gittinger <cg@exept.de>
parents: 2782
diff changeset
   373
"/        realP := aView device translatePoint:(x@y) fromView:aView toView:realViewUnderCursor.
cb3420e40ed1 changed: #buttonMotion:x:y:view:
Claus Gittinger <cg@exept.de>
parents: 2782
diff changeset
   374
"/        self handleMouseIn:realViewUnderCursor x:realP x y:realP y.
cb3420e40ed1 changed: #buttonMotion:x:y:view:
Claus Gittinger <cg@exept.de>
parents: 2782
diff changeset
   375
        self handleMouseIn:aView x:x y:y.
1948
33eb423a6fd3 only act when no mouse-button is pressed
Claus Gittinger <cg@exept.de>
parents: 1909
diff changeset
   376
    ].
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   377
    ^ false
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   378
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   379
1591
4e75531ffacf checkin from browser
tm
parents: 1549
diff changeset
   380
keyPress:key x:x y:y view:view
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   381
    "unconditionally hide the help view"
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   382
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   383
    self hideHelpIgnoringErrors.
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   384
    ^ false
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   385
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   386
    "Modified: 27.4.1996 / 15:09:57 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   387
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   388
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   389
pointerEnter:state x:x y:y view:aView
1657
447db4aae998 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1591
diff changeset
   390
    "handle pointer entering a view; prepare to show help"
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   391
1948
33eb423a6fd3 only act when no mouse-button is pressed
Claus Gittinger <cg@exept.de>
parents: 1909
diff changeset
   392
    state == 0 ifTrue:[
33eb423a6fd3 only act when no mouse-button is pressed
Claus Gittinger <cg@exept.de>
parents: 1909
diff changeset
   393
        self handleMouseIn:aView x:x y:y.
33eb423a6fd3 only act when no mouse-button is pressed
Claus Gittinger <cg@exept.de>
parents: 1909
diff changeset
   394
    ].    
1657
447db4aae998 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1591
diff changeset
   395
    ^ false
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   396
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   397
2371
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   398
pointerLeave:state view:aView
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   399
    "handle pointer leaving a view; hide help text"
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   400
2371
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   401
    |sensor|
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   402
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   403
    sensor := aView sensor.
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   404
    sensor notNil ifTrue:[
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   405
        sensor flushEventsFor:self withType:#initiateHelpFor:at:.
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   406
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   407
    self hideHelpIgnoringErrors.
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   408
    ^ false
2914
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   409
!
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   410
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   411
processEvent:ev
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   412
    (ev isPointerEnterLeaveEvent
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   413
    or:[ ev isButtonEvent
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   414
    or:[ ev isKeyEvent ]]) ifTrue:[
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   415
        ^ ev dispatchWithViewArgumentTo:self    
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   416
    ].
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   417
    ^ false
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   418
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   419
    "Created: / 29-06-2011 / 18:22:43 / cg"
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   420
! !
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   421
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   422
!ActiveHelp methodsFor:'help texts'!
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   423
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   424
helpTextFor:aView at:aDevicePointOrNil 
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   425
    "retrieve helptext for aView as a string; 
100
claus
parents: 98
diff changeset
   426
     walk along the views superView chain,
claus
parents: 98
diff changeset
   427
     asking models and views encountered while walking.
claus
parents: 98
diff changeset
   428
     The first one who understands and returns a nonNil answer to the
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   429
     #helpTextFor:at: or #helpTextFor: message ends this search and the
100
claus
parents: 98
diff changeset
   430
     returned string is returned."
claus
parents: 98
diff changeset
   431
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   432
    |model app1 app2 text v sv topView domainPointOrNil|
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   433
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   434
    aView transformation notNil ifTrue:[
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   435
        domainPointOrNil := aView transformation applyInverseTo:aDevicePointOrNil.
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   436
    ] ifFalse:[
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   437
        domainPointOrNil := aDevicePointOrNil.
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   438
    ].
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   439
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   440
    text := self helpTextFromView:aView at:domainPointOrNil.
2076
5a9d0932133b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
   441
    text notNil ifTrue:[ ^ text ].
5a9d0932133b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
   442
1549
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   443
    ((aView respondsTo:#application)
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   444
    and:[ (app1 := aView application) notNil ]) ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   445
        text := self helpTextFromModel:app1 view:aView at:domainPointOrNil.
1549
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   446
        text notNil ifTrue:[ ^ text ].
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   447
    ] ifFalse:[
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   448
        "/ old style (i.e. StandardSystemView ...)
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   449
        topView := aView topView.
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   450
        (topView notNil and:[topView ~~ aView]) ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   451
            text := self helpTextFromModel:topView view:aView at:domainPointOrNil.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   452
            text notNil ifTrue:[ ^ text ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   453
        ]
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   454
    ].
1549
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   455
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   456
    (model := aView model) notNil ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   457
        model ~~ app1 ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   458
            text := self helpTextFromModel:model view:aView at:domainPointOrNil.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   459
            text notNil ifTrue:[ ^ text ].
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   460
        ].
1011
53514f2c18a7 also ask for helpTextAt:, when a motionEvent arrives.
Claus Gittinger <cg@exept.de>
parents: 728
diff changeset
   461
    ].
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   462
    text := self helpTextFromView:aView at:domainPointOrNil.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   463
    text notNil ifTrue:[ ^ text ].
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   464
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   465
    "walk up the chain - maybe someone knows about its subview ..."
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   466
    v := aView.
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   467
    [
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   468
        (sv := v container) notNil
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   469
    ] whileTrue:[
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   470
        (model := sv model) notNil ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   471
            text := self helpTextFromModel:model view:aView at:domainPointOrNil.
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   472
            text notNil ifTrue:[ ^ text ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   473
        ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   474
        text := self helpTextFromView:sv at:nil.
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   475
        text notNil ifTrue:[ ^ text ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   476
        v := sv
602
b1ac53a44327 application and help
ca
parents: 596
diff changeset
   477
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   478
100
claus
parents: 98
diff changeset
   479
    (v notNil and:[v respondsTo:#application]) ifTrue:[
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   480
        (app2 := v application) notNil ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   481
            (app2 ~~ app1) ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   482
                text := self helpTextFromModel:app2 view:aView at:domainPointOrNil.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   483
                text notNil ifTrue:[ ^ text ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   484
            ]
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   485
        ]
100
claus
parents: 98
diff changeset
   486
    ].
claus
parents: 98
diff changeset
   487
    (v notNil and:[v respondsTo:#model]) ifTrue:[
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   488
        (model := v model) notNil ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   489
            text := self helpTextFromModel:model view:aView at:domainPointOrNil.
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   490
            text notNil ifTrue:[ ^ text ].
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   491
        ]
100
claus
parents: 98
diff changeset
   492
    ].
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   493
    ^ nil
100
claus
parents: 98
diff changeset
   494
728
9f417e396d4e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   495
    "Modified: / 31.8.1995 / 20:38:00 / claus"
1011
53514f2c18a7 also ask for helpTextAt:, when a motionEvent arrives.
Claus Gittinger <cg@exept.de>
parents: 728
diff changeset
   496
    "Modified: / 28.7.1998 / 01:47:27 / cg"
100
claus
parents: 98
diff changeset
   497
!
claus
parents: 98
diff changeset
   498
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   499
helpTextFromModel:aModel view:aView at:aPointOrNil 
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   500
    "helper: ask aModel for its helpText."
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   501
1996
5b82d14ebe97 *** empty log message ***
ca
parents: 1957
diff changeset
   502
    |text text2|
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   503
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   504
    aPointOrNil notNil ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   505
        (aModel respondsTo:#helpTextFor:at:) ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   506
            text := aModel helpTextFor:aView at:aPointOrNil.
2076
5a9d0932133b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
   507
            text notNil ifTrue:[^ text].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   508
        ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   509
    ].
2076
5a9d0932133b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
   510
    (aModel respondsTo:#helpTextFor:) ifTrue:[
5a9d0932133b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
   511
        text := aModel helpTextFor:aView.
2685
9b6fd90dc9e2 changed #helpTextFromModel:view:at:
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   512
        "/ cg: I dont understand this...
9b6fd90dc9e2 changed #helpTextFromModel:view:at:
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   513
"/        text notNil ifTrue:[
9b6fd90dc9e2 changed #helpTextFromModel:view:at:
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   514
"/            text2 := self helpTextFromView:aView at:aPointOrNil.
9b6fd90dc9e2 changed #helpTextFromModel:view:at:
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   515
"/            text2 notNil ifTrue:[ ^ text2 ].
9b6fd90dc9e2 changed #helpTextFromModel:view:at:
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   516
"/        ].
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   517
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   518
    ^ text
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   519
!
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   520
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   521
helpTextFromView:aView at:aPointOrNil 
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   522
    "helper: ask aView for its helpText."
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   523
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   524
    |text|
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   525
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   526
    aPointOrNil notNil ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   527
        (aView respondsTo:#helpTextAt:) ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   528
            text := aView helpTextAt:aPointOrNil.
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   529
        ].
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   530
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   531
    text isNil ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   532
        (aView respondsTo:#helpText) ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   533
            text := aView helpText.
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   534
        ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   535
    ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   536
    ^ text.
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   537
! !
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   538
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   539
!ActiveHelp methodsFor:'private'!
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   540
2914
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   541
handleMouseIn:aView x:x y:y
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   542
    "handle motion events - if the mousepointer left the 
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   543
     previous helped view, hide the help"
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   544
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   545
    (self interestedIn:aView) ifFalse:[^ self].
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   546
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   547
    Error handle:[:ex |
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   548
        '---------------------' infoPrintCR.
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   549
        ex description infoPrintCR.
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   550
        ex suspendedContext fullPrintAll.
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   551
        ex return
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   552
    ] do:[
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   553
        |sensor|
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   554
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   555
"/        self stopHelpDisplayProcess.
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   556
        self hideIfPointerLeft:aView.
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   557
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   558
        "/ check again, in case the stop/hide changed something...
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   559
        (self interestedIn:aView) ifFalse:[
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   560
            ^ self
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   561
        ].
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   562
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   563
        "/ if there is a sensor, let the view do it itself (in its process)
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   564
        (self targetViewInitiatesHelpViaSensor
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   565
        and:[ (sensor := aView sensor) notNil ])
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   566
        ifTrue:[
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   567
            sensor flushEventsFor:self withType:#initiateHelpFor:at:.
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   568
            sensor 
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   569
                pushUserEvent:#initiateHelpFor:at: for:self 
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   570
                withArguments:(Array with:aView with:(x @ y)).
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   571
        ] ifFalse:[
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   572
            self initiateHelpFor:aView at:(x @ y).
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   573
        ]
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   574
    ].
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   575
!
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   576
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   577
hideIfPointerLeft:aView
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   578
    "hide help, if the pointer is not in aView"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   579
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   580
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   581
interestedIn:aView
1033
3a56ba930052 care for nil view passed to #interestedIn.
Claus Gittinger <cg@exept.de>
parents: 1019
diff changeset
   582
    "return true, if I am interested in aView (either listeningForAll,
3a56ba930052 care for nil view passed to #interestedIn.
Claus Gittinger <cg@exept.de>
parents: 1019
diff changeset
   583
     or in my list of apps)"
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   584
1106
414b7cfe57b1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1100
diff changeset
   585
    |app aViewsTopView|
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   586
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   587
    aView isNil ifTrue:[^ false].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   588
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   589
    listeningForAll == true ifTrue:[^ true].
1957
6b2c4df57d49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1948
diff changeset
   590
    applicationsOrTopViewsWithHelp isEmptyOrNil ifTrue:[^ false].
1033
3a56ba930052 care for nil view passed to #interestedIn.
Claus Gittinger <cg@exept.de>
parents: 1019
diff changeset
   591
1106
414b7cfe57b1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1100
diff changeset
   592
    aViewsTopView := aView topView.
414b7cfe57b1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1100
diff changeset
   593
    (applicationsOrTopViewsWithHelp includesIdentical:aViewsTopView) ifTrue:[^ true].
414b7cfe57b1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1100
diff changeset
   594
    app := aViewsTopView application.
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   595
    app notNil ifTrue:[
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   596
        (applicationsOrTopViewsWithHelp includesIdentical:app) ifTrue:[^ true]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   597
    ].
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   598
    ^ false
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   599
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   600
    "Created: / 26.10.1997 / 23:28:52 / cg"
1033
3a56ba930052 care for nil view passed to #interestedIn.
Claus Gittinger <cg@exept.de>
parents: 1019
diff changeset
   601
    "Modified: / 8.8.1998 / 13:36:19 / cg"
2782
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   602
!
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   603
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   604
targetViewInitiatesHelpViaSensor
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   605
    "true if the target view is asked to show the help via the sensor;
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   606
     false, if I do it myself synchronously."
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   607
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   608
    ^ true
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   609
! !
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   610
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   611
!ActiveHelp methodsFor:'queries'!
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   612
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   613
delayTime
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   614
    ^ self class delayTime
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   615
!
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   616
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   617
showTime
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   618
    ^ self class showTime
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   619
! !
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   620
1768
7011c938442e method category rename
Claus Gittinger <cg@exept.de>
parents: 1713
diff changeset
   621
!ActiveHelp methodsFor:'show & hide help'!
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   622
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   623
hideHelp
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   624
    "hide the help text - nothing done here"
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   625
!
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   626
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   627
hideHelpIgnoringErrors
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   628
    "hide the help text"
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   629
1713
bc8a1d16e60f Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 1657
diff changeset
   630
    Error handle:[:ex |
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   631
        ex description infoPrintCR.
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   632
        ex return
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   633
    ] do:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   634
        self hideHelp.
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   635
    ].
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   636
!
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   637
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   638
initiateHelpFor:aView at:aPointOrNil
634
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   639
    "ask aView for helpText, passing x/y coordinates;
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   640
     start a timeout process to display this helpText after some delay;
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   641
     Normally used internally, but can also be used by widgets to force 
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   642
     re-negotiation of the displayed helpText 
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   643
     (for example in a menu, when the selection changes)"
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   644
1657
447db4aae998 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1591
diff changeset
   645
    self initiateHelpFor:aView at:aPointOrNil now:false
637
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   646
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   647
    "Modified: 28.6.1997 / 14:45:57 / cg"
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   648
!
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   649
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   650
initiateHelpFor:aView at:aPointOrNil now:showItNow
637
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   651
    "ask aView for helpText, passing x/y coordinates;
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   652
     start a timeout process to display this helpText after some delay;
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   653
     Normally used internally, but can also be used by widgets to force 
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   654
     re-negotiation of the displayed helpText 
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   655
     (for example in a menu, when the selection changes)"
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   656
696
a49928754789 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
   657
    |text top app|
634
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   658
1143
5706310407e9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1142
diff changeset
   659
    (self interestedIn:aView) ifFalse:[
5706310407e9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1142
diff changeset
   660
        ^ self
5706310407e9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1142
diff changeset
   661
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   662
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   663
    text := self helpTextFor:aView at:aPointOrNil.
637
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   664
    lastHelpText = text ifTrue:[
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   665
        ^ self
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   666
    ].
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   667
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   668
    "/ let application show the help
728
9f417e396d4e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   669
    "/ (i.e. in its own information area)
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   670
    "/ nil-text is also passed down, to give it a chance
728
9f417e396d4e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   671
    "/ to clean its infoDisplay.
637
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   672
728
9f417e396d4e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   673
    top := aView topView.
9f417e396d4e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   674
    (app := aView application) notNil ifTrue:[
1019
862f095da4ac #showHelp:for: renamed to #showActiveHelp:for:
Claus Gittinger <cg@exept.de>
parents: 1011
diff changeset
   675
        (app showActiveHelp:text for:aView) ifTrue:[
728
9f417e396d4e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   676
            lastHelpText := text.
632
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
   677
        ]
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
   678
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   679
!
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   680
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   681
stopHelpDisplayProcess
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   682
! !
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   683
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   684
!ActiveHelp methodsFor:'start & stop'!
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   685
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   686
listenFor:anAppOrTopView
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   687
    "start listening"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   688
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   689
    applicationsOrTopViewsWithHelp isNil ifTrue:[
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   690
        applicationsOrTopViewsWithHelp := WeakIdentitySet new.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   691
    ].
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   692
    applicationsOrTopViewsWithHelp add:anAppOrTopView.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   693
    super listen.
639
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
   694
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   695
    "Created: / 26.10.1997 / 23:20:47 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   696
    "Modified: / 26.10.1997 / 23:21:10 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   697
!
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   698
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   699
listenForAll
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   700
    "start listening"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   701
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   702
    listeningForAll := true.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   703
    super listen.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   704
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   705
    "Modified: / 28.6.1997 / 15:07:02 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   706
    "Created: / 26.10.1997 / 23:19:30 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   707
!
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   708
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   709
start
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   710
    self listenForAll
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   711
!
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   712
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   713
stop
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   714
    self unlistenAll
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   715
!
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   716
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   717
unlistenAll
639
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
   718
    "stop listening"
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
   719
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
   720
    self hideHelp.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   721
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   722
    listeningForAll := false.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   723
    applicationsOrTopViewsWithHelp size == 0 ifTrue:[
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   724
        self unlisten.
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   725
    ]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   726
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   727
    "Created: / 26.10.1997 / 23:14:17 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   728
    "Modified: / 26.10.1997 / 23:23:04 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   729
!
639
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
   730
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   731
unlistenFor:anApp
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   732
    "stop listening for an app"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   733
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   734
    self hideHelp.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   735
1543
95c5048dd99a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1541
diff changeset
   736
    applicationsOrTopViewsWithHelp isNil ifFalse:[
95c5048dd99a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1541
diff changeset
   737
        applicationsOrTopViewsWithHelp remove:anApp ifAbsent:nil.
95c5048dd99a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1541
diff changeset
   738
    ].
726
cdab756aebe4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 719
diff changeset
   739
    listeningForAll == true ifFalse:[
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   740
        applicationsOrTopViewsWithHelp size == 0 ifTrue:[
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   741
            self unlisten.
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   742
        ]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   743
    ]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   744
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   745
    "Created: / 26.10.1997 / 23:22:42 / cg"
726
cdab756aebe4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 719
diff changeset
   746
    "Modified: / 29.10.1997 / 15:48:34 / cg"
639
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
   747
! !
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
   748
338
071f92621e3b oops - catching the terminateSignal is no good idea
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   749
!ActiveHelp class methodsFor:'documentation'!
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   750
2779
b608ded19ff2 changed: #handleMouseIn:x:y:
Claus Gittinger <cg@exept.de>
parents: 2688
diff changeset
   751
version_CVS
3219
eca34010e99b class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3197
diff changeset
   752
    ^ '$Header: /cvs/stx/stx/libview2/ActiveHelp.st,v 1.72 2013-08-31 11:57:48 cg Exp $'
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   753
! !
3197
5924a1d75db3 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 2975
diff changeset
   754