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