ActiveHelp.st
author Claus Gittinger <cg@exept.de>
Sun, 23 Feb 2020 16:01:31 +0100
changeset 4450 c07db2570587
parent 4435 f564126c2ad9
permissions -rw-r--r--
#REFACTORING by exept class: GIFReader comment/format in: #readImage: changed: #fromStream: #writeHeaderFor:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4431
732c2cd831b8 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
     1
"{ Encoding: utf8 }"
732c2cd831b8 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
     2
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     3
"
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     4
 COPYRIGHT (c) 1995 by Claus Gittinger
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     5
	      All Rights Reserved
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     6
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     7
 This software is furnished under a license and may be used
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    12
 hereby transferred.
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    13
"
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
    14
"{ Package: 'stx:libview2' }"
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
    15
3447
5ca2fac37ecd class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3417
diff changeset
    16
"{ NameSpace: Smalltalk }"
5ca2fac37ecd class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3417
diff changeset
    17
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    18
EventListener subclass:#ActiveHelp
3227
4c3a5cca2b9e class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3219
diff changeset
    19
	instanceVariableNames:'lastHelpText listeningForAll applicationsOrTopViewsWithHelp
4367
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
    20
		lastHelpWidget lastPointerPosition pointerPositionAtShowTime
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
    21
		suspended'
4371
3524eff4c957 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4368
diff changeset
    22
	classVariableNames:'Debugging DebuggingEvents DebuggingHelpText Suspended DoHelpKey'
216
a5f97668e99a commentary
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    23
	poolDictionaries:''
a5f97668e99a commentary
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    24
	category:'Interface-Help'
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    25
!
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    26
1892
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    27
ActiveHelp class instanceVariableNames:'DelayTime ShowTime TheOneAndOnlyHelpListener'
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    28
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    29
"
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    30
 No other class instance variables are inherited by this class.
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    31
"
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    32
!
4c38a0c4369b *** empty log message ***
ca
parents: 1768
diff changeset
    33
338
071f92621e3b oops - catching the terminateSignal is no good idea
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
    34
!ActiveHelp class methodsFor:'documentation'!
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    35
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    36
copyright
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    37
"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    38
 COPYRIGHT (c) 1995 by Claus Gittinger
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    39
	      All Rights Reserved
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    40
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    41
 This software is furnished under a license and may be used
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    42
 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
    43
 inclusion of the above copyright notice.   This software may not
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    44
 be provided or otherwise made available to, or used by, any
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    45
 other person.  No title to or ownership of the software is
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    46
 hereby transferred.
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    47
"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    48
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    49
!
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    50
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    51
documentation
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
    52
"
3664
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
    53
    The active help (tooltip) listener.
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    54
98
claus
parents: 97
diff changeset
    55
    The one and only instance of myself intercepts incoming mouse & keyboard 
claus
parents: 97
diff changeset
    56
    events for the display device, being especially interested in view-enter/
636
446b52f2c603 comments
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
    57
    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
    58
    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
    59
    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
    60
    - 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
    61
3664
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
    62
    The query for the helpText is repeated along the view's superView chain, 
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
    63
    until any model or view returns a nonNil answer for the 
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
    64
    #helpTextFor:<aSubView> at:<position> or #helpTextFor:<aSubView> message.
100
claus
parents: 98
diff changeset
    65
98
claus
parents: 97
diff changeset
    66
    All I need for automatic help is some model/view/applicationModel along
claus
parents: 97
diff changeset
    67
    the superview chain of the entered component, which responds to the
claus
parents: 97
diff changeset
    68
    #helpTextFor: message with a non-nil (string-) answer.
claus
parents: 97
diff changeset
    69
    I close down the help view after a while, if a key is pressed or the mouse
claus
parents: 97
diff changeset
    70
    moved to another view.
100
claus
parents: 98
diff changeset
    71
claus
parents: 98
diff changeset
    72
    Who should provide the helpText:
221
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    73
        the best place is the application object (an instance of ApplicationModel)
3884
a6ad1eb5a5e6 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3790
diff changeset
    74
        or the topView, if it's a derived class of StandardSystemView.
221
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    75
        This should know about its components and return the string
3664
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
    76
        when asked via #helpTextFor:<aSubView>.
330
d7ce98930ad3 Rename Launcher-->OldLauncher, NewLauncher-->Launcher.
Stefan Vogel <sv@exept.de>
parents: 297
diff changeset
    77
        See examples in FileBrowser, Launcher etc.
100
claus
parents: 98
diff changeset
    78
claus
parents: 98
diff changeset
    79
    Be aware, that for applicationModels, there must be a link from the
claus
parents: 98
diff changeset
    80
    topView to this applicationModel 
claus
parents: 98
diff changeset
    81
    (set via: aTopView application:anApplicationModel)
claus
parents: 98
diff changeset
    82
    otherwise, the helpManager has no means of finding the application which
claus
parents: 98
diff changeset
    83
    corresponds to a view.
claus
parents: 98
diff changeset
    84
claus
parents: 98
diff changeset
    85
    Who should display the helpText:
221
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    86
        by default, the helpListener opens a little popup view, which displays the
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    87
        returned help message. However, a nice trick which can be used by applications
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    88
        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
    89
        and display the text right in the #helpTextFor: method. To cheat the
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    90
        help listener, this method should then return nil, to keep it silent.
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    91
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
    92
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    93
    Usage:
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    94
        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
    95
        use 'ActiveHelp start' and 'ActiveHelp stop'.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    96
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
    97
        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
    98
        '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
    99
        the topView or the topViews application as argument.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   100
        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
   101
        some infoView.
3664
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   102
        Late note: thsi is no longer recommended - one such mouse watcher process is
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   103
        good enough for all views.
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   104
        
221
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   105
    [author:]
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   106
        Claus Gittinger
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   107
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   108
    [start with:]
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   109
        ActiveHelp start
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   110
        ActiveHelp stop
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   111
221
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   112
    [See also:]
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   113
        ActiveHelpView
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   114
        WindowGroup WindowEvent
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   115
        ApplicationModel StandardSystemView
100
claus
parents: 98
diff changeset
   116
"
claus
parents: 98
diff changeset
   117
!
claus
parents: 98
diff changeset
   118
claus
parents: 98
diff changeset
   119
examples
claus
parents: 98
diff changeset
   120
"
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   121
  Active Help for a single view
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   122
  or app (whatever the global settings are):
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   123
  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
   124
                                                                        [exBegin]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   125
        |app top myAppClass|
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   126
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   127
        Class withoutUpdatingChangesDo:[
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   128
            myAppClass := ApplicationModel 
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   129
                            subclass:#'Demos::DemoApp'
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   130
                            instanceVariableNames:''
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   131
                            classVariableNames:''
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   132
                            poolDictionaries:''
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   133
                            category:'demos'.
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
            myAppClass 
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   136
                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
   137
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   138
        ].
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   139
        app := myAppClass new.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   140
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   141
        top := StandardSystemView new.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   142
        top extent:300@100.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   143
        top application:app.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   144
        top open.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   145
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   146
        ActiveHelp startFor:app.
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
        Class withoutUpdatingChangesDo:[
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   149
            myAppClass removeFromSystem
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   150
        ]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   151
                                                                        [exEnd]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   152
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   153
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   154
  Active Help (for all views):
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   155
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   156
    (make certain that activeHelp is turned on ...
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   157
     ... otherwise, you will see nothing)
100
claus
parents: 98
diff changeset
   158
claus
parents: 98
diff changeset
   159
    the following example uses a Plug as a model replacement.
claus
parents: 98
diff changeset
   160
    In concrete application, you would create a method to implement the helpText
claus
parents: 98
diff changeset
   161
    query message.
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   162
                                                                        [exBegin]
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   163
        |app top button1 button2|
100
claus
parents: 98
diff changeset
   164
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   165
        app := Plug new.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   166
        app respondTo:#helpTextFor:
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   167
                 with:[:view | 
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   168
                               view == button1 ifTrue:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   169
                                 'this is button1'
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   170
                               ] ifFalse:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   171
                                 view == button2 ifTrue:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   172
                                   'some help for button2'
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   173
                                 ] ifFalse:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   174
                                   nil
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   175
                                 ]
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   176
                               ]
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   177
                      ].
100
claus
parents: 98
diff changeset
   178
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   179
        top := StandardSystemView new.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   180
        top extent:300@100.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   181
        button1 := Button label:'b1' in:top.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   182
        button1 origin:0.0@0.0 corner:0.5@30. 
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   183
        button2 := Button label:'b2' in:top.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   184
        button2 origin:0.5@0.0 corner:1.0@30.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   185
        top model:app. '<-- normally this would be: top application:app'.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   186
        top open
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   187
                                                                        [exEnd]
100
claus
parents: 98
diff changeset
   188
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   189
    (make certain that activeHelp is turned on ...
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   190
     ... otherwise, you will see nothing)
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   191
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   192
    alternatively, display of the helpMessage in a local, private view:
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   193
                                                                        [exBegin]
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   194
        |app top button1 button2 infoView|
100
claus
parents: 98
diff changeset
   195
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   196
        app := Plug new.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   197
        app respondTo:#helpTextFor:
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   198
                 with:[:view | infoView label:'info ...'.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   199
                               view == button1 ifTrue:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   200
                                 infoView label:'this is button1'
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   201
                               ].
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   202
                               view == button2 ifTrue:[
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   203
                                 infoView label:'some help for button2'
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   204
                               ].
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   205
                               nil
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   206
                      ].
100
claus
parents: 98
diff changeset
   207
227
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   208
        top := StandardSystemView new.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   209
        top extent:300@100.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   210
        button1 := Button label:'b1' in:top.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   211
        button1 origin:0.0@0.0 corner:0.5@30. 
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   212
        button2 := Button label:'b2' in:top.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   213
        button2 origin:0.5@0.0 corner:1.0@30.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   214
        infoView := Label label:'info ...' in:top.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   215
        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
   216
        infoView topInset:(infoView preferredExtent y negated - 3);
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   217
                 leftInset:3; 
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   218
                 rightInset:3; 
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   219
                 bottomInset:3;
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   220
                 adjust:#left.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   221
        top model:app. '<-- normally this would be: top application:app'.
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   222
        top open
3f18af678ac9 examples for docViewer
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   223
                                                                        [exEnd]
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   224
"
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   225
! !
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   226
3320
602bf71b5fdc class: ActiveHelp
Stefan Vogel <sv@exept.de>
parents: 3292
diff changeset
   227
!ActiveHelp class methodsFor:'initialization'!
602bf71b5fdc class: ActiveHelp
Stefan Vogel <sv@exept.de>
parents: 3292
diff changeset
   228
602bf71b5fdc class: ActiveHelp
Stefan Vogel <sv@exept.de>
parents: 3292
diff changeset
   229
initialize
602bf71b5fdc class: ActiveHelp
Stefan Vogel <sv@exept.de>
parents: 3292
diff changeset
   230
    Debugging := false.
4134
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   231
    DebuggingEvents := false.
4122
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   232
    DebuggingHelpText := false.
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   233
4134
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   234
    "Modified: / 19-06-2018 / 12:53:36 / Claus Gittinger"
3320
602bf71b5fdc class: ActiveHelp
Stefan Vogel <sv@exept.de>
parents: 3292
diff changeset
   235
! !
602bf71b5fdc class: ActiveHelp
Stefan Vogel <sv@exept.de>
parents: 3292
diff changeset
   236
2975
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   237
!ActiveHelp class methodsFor:'accessing'!
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   238
4401
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   239
currentHelpListener
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   240
    "return the activeHelp listener if activeHelp is turned on, nil otherwise"
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   241
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   242
    ^ TheOneAndOnlyHelpListener
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   243
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   244
    "
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   245
     ActiveHelp currentHelpListener
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   246
     FlyByHelp currentHelpListener
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   247
    "
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   248
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   249
    "Created: 28.6.1997 / 13:59:44 / cg"
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   250
!
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   251
2975
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   252
debugging
4122
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   253
    ^ Debugging ? false
2975
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   254
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   255
    "Modified: / 22-12-2011 / 10:46:30 / cg"
4122
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   256
    "Modified: / 11-06-2018 / 10:27:40 / Claus Gittinger"
2975
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   257
!
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   258
4122
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   259
debugging:aBoolean
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   260
    Debugging := aBoolean.
2975
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   261
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   262
    "
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   263
     self debugging:true
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   264
     self debugging:false
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   265
    "
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   266
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   267
    "Modified (comment): / 22-12-2011 / 10:43:32 / cg"
4122
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   268
    "Modified (format): / 11-06-2018 / 10:30:30 / Claus Gittinger"
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   269
!
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   270
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   271
debuggingHelpText
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   272
    ^ DebuggingHelpText ? false
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   273
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   274
    "Created: / 11-06-2018 / 10:30:10 / Claus Gittinger"
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   275
!
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   276
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   277
debuggingHelpText:aBoolean
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   278
    DebuggingHelpText := aBoolean.
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   279
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   280
    "
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   281
     self debuggingHelpText:true
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   282
     self debuggingHelpText:false
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   283
    "
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   284
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   285
    "Created: / 11-06-2018 / 10:30:24 / Claus Gittinger"
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   286
!
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   287
4401
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   288
delayTime
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   289
    ^ DelayTime ? 0.4
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   290
!
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   291
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   292
delayTime:numberOfSeconds
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   293
    "set the delay (the time, the cursor has to be in the view
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   294
     before help is shown). The default is 2 seconds."
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   295
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   296
    DelayTime := numberOfSeconds
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   297
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   298
    "
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   299
     ActiveHelp delayTime:0.5
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   300
     ActiveHelp delayTime:2
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   301
     ActiveHelp delayTime:10
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   302
    "
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   303
!
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   304
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   305
showTime
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   306
    "set the number of seconds, a help messages is to be shown.
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   307
     The default is 15 seconds.
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   308
     0 means: show forever (i.e. until mouse is moved)"
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   309
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   310
    ^ ShowTime ? 15
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   311
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   312
    "
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   313
     self showTime
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   314
    "
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   315
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   316
    "Modified: / 10-11-2010 / 12:29:44 / cg"
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   317
!
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   318
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   319
showTime:numberOfSeconds
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   320
    "set the number of seconds, a help messages is to be shown.
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   321
     The default is defined in the getter.
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   322
     0 means: show forever (i.e. until mouse is moved)"
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   323
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   324
    ShowTime := numberOfSeconds
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   325
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   326
    "
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   327
     ActiveHelp showTime:10
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   328
     ActiveHelp showTime:99999 
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   329
     ActiveHelp showTime:30
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   330
    "
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   331
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   332
    "Modified: / 10-11-2010 / 12:29:40 / cg"
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   333
!
d56d4954d73c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4371
diff changeset
   334
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   335
singleton
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   336
    ^ TheOneAndOnlyHelpListener
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   337
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   338
    "Created: / 27-02-2019 / 11:06:32 / Claus Gittinger"
2975
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   339
! !
7afae6c8a8e3 class definition
Claus Gittinger <cg@exept.de>
parents: 2915
diff changeset
   340
633
5d162347fac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 632
diff changeset
   341
!ActiveHelp class methodsFor:'queries'!
100
claus
parents: 98
diff changeset
   342
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   343
isActive
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   344
    "return true, if activeHelp is turned on"
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   345
3347
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   346
    TheOneAndOnlyHelpListener notNil ifTrue:[
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   347
        ((WindowSensor eventListeners ? #()) includesIdentical:TheOneAndOnlyHelpListener) ifTrue:[
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   348
            ^ true
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   349
        ].
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   350
        TheOneAndOnlyHelpListener := nil.
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   351
    ].
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   352
    ^ false.
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   353
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   354
    "
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   355
     FlyByHelp isActive
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   356
    "
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   357
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   358
    "Modified: 27.4.1996 / 15:07:57 / cg"
633
5d162347fac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 632
diff changeset
   359
! !
5d162347fac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 632
diff changeset
   360
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   361
!ActiveHelp class methodsFor:'start & stop'!
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   362
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   363
initiateHelp
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   364
    "determine where the mouse pointer is located,
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   365
     and start showing a tooltip for it.
4236
97f7891479f9 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4235
diff changeset
   366
     This can be called to force update of the tooltip,
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   367
     in case a widget has changed its mind 
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   368
     (typically: an undo menu button function might wonna do this,
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   369
      to show changed info)"
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   370
4236
97f7891479f9 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4235
diff changeset
   371
    self isActive ifTrue:[  
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   372
        TheOneAndOnlyHelpListener initiateHelp
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   373
    ].
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   374
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   375
    "Created: / 27-02-2019 / 11:08:54 / Claus Gittinger"
4236
97f7891479f9 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4235
diff changeset
   376
    "Modified (comment): / 27-02-2019 / 15:56:17 / Claus Gittinger"
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   377
!
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   378
4367
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   379
isSuspended
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   380
    ^ Suspended ? false
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   381
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   382
!
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   383
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   384
resume
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   385
    "resume activeHelp (eg. after doing a showMeHowItWorks)"
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   386
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   387
    Suspended := false.
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   388
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   389
    "
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   390
     ActiveHelp resume
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   391
     FlyByHelp resume
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   392
    "
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   393
!
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   394
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   395
start
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   396
    "start activeHelp for all apps"
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   397
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   398
    TheOneAndOnlyHelpListener notNil ifTrue:[
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   399
        TheOneAndOnlyHelpListener stop.    
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   400
        TheOneAndOnlyHelpListener := nil.    
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   401
    ].
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   402
4368
29c59c03e42b #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 4367
diff changeset
   403
    Suspended := false.
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   404
    TheOneAndOnlyHelpListener isNil ifTrue:[
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   405
        TheOneAndOnlyHelpListener := self new.
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   406
    ].
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   407
    TheOneAndOnlyHelpListener start.
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   408
    ^ TheOneAndOnlyHelpListener
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   409
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   410
    "
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   411
     ActiveHelp start
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   412
     FlyByHelp start
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   413
    "
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   414
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   415
    "Modified: / 26.10.1997 / 23:16:54 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   416
!
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   417
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   418
startFor:anApplicationOrTopView
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   419
    "start activeHelp for a single app"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   420
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   421
    TheOneAndOnlyHelpListener isNil ifTrue:[
4410
67c64afb59f8 #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 4407
diff changeset
   422
        Suspended := false.
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   423
        TheOneAndOnlyHelpListener := self new.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   424
    ].
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   425
    TheOneAndOnlyHelpListener listenFor:anApplicationOrTopView
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   426
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   427
    "Modified: / 26.10.1997 / 23:17:05 / cg"
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   428
!
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   429
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   430
stop
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   431
    "stop activeHelp for all (except for individual apps)"
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   432
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   433
    TheOneAndOnlyHelpListener notNil ifTrue:[
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   434
        TheOneAndOnlyHelpListener stop.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   435
        TheOneAndOnlyHelpListener := nil.
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   436
    ].
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   437
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   438
    "
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   439
     ActiveHelp stop
1543
95c5048dd99a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1541
diff changeset
   440
     FlyByHelp stop
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   441
    "
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   442
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   443
    "Modified: / 26.10.1997 / 23:18:58 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   444
!
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   445
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   446
stopFor:anAppOrTopView
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   447
    "stop activeHelp for a single app"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   448
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   449
    TheOneAndOnlyHelpListener notNil ifTrue:[
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   450
        TheOneAndOnlyHelpListener unlistenFor:anAppOrTopView.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   451
    ].
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   452
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   453
    "Modified: / 26.10.1997 / 23:12:55 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   454
    "Created: / 26.10.1997 / 23:18:41 / cg"
4367
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   455
!
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   456
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   457
suspend
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   458
    "suspend activeHelp (eg. before doing a showMeHowItWorks)"
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   459
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   460
    Suspended := true.
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   461
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   462
    "
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   463
     ActiveHelp suspend
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   464
     FlyByHelp suspend
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   465
    "
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   466
! !
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   467
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   468
!ActiveHelp methodsFor:'event handling'!
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   469
2473
66754ea64440 code cleanup (arg-names)
Claus Gittinger <cg@exept.de>
parents: 2391
diff changeset
   470
buttonMotion:buttonAndModifierState x:x y:y view:aView
1657
447db4aae998 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1591
diff changeset
   471
    "handle motion events - prepare to show help"
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   472
2782
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   473
    |realViewUnderCursor realP|
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   474
4407
6967e0f64e03 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4401
diff changeset
   475
    (Suspended ? false) ifTrue:[^ false].   
4363
d2957953fdfa #TUNING by exept
Claus Gittinger <cg@exept.de>
parents: 4353
diff changeset
   476
    (aView sensor hasButtonMotionEventFor:aView) ifTrue:[^ false].
d2957953fdfa #TUNING by exept
Claus Gittinger <cg@exept.de>
parents: 4353
diff changeset
   477
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   478
    "/ DebuggingEvents := true
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   479
    "/ DebuggingEvents := false
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   480
    DebuggingEvents == true ifTrue:[
4367
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   481
        ('%1: Motion view:%2' bindWith:self className with:aView) infoPrintCR.
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   482
    ].
4153
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   483
    "/ Debugging := true
4435
f564126c2ad9 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 4431
diff changeset
   484
    "/ Debugging := false
2473
66754ea64440 code cleanup (arg-names)
Claus Gittinger <cg@exept.de>
parents: 2391
diff changeset
   485
    buttonAndModifierState == 0 ifTrue:[
2783
cb3420e40ed1 changed: #buttonMotion:x:y:view:
Claus Gittinger <cg@exept.de>
parents: 2782
diff changeset
   486
"/        realViewUnderCursor := aView device viewFromPoint:(aView pointerPosition).
cb3420e40ed1 changed: #buttonMotion:x:y:view:
Claus Gittinger <cg@exept.de>
parents: 2782
diff changeset
   487
"/        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
   488
"/        self handleMouseIn:realViewUnderCursor x:realP x y:realP y.
4431
732c2cd831b8 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
   489
        DebuggingEvents ifTrue:[('%1: motion %3@%4 in %5' bindWith:self className with:aView with:x with:y) infoPrintCR].
2783
cb3420e40ed1 changed: #buttonMotion:x:y:view:
Claus Gittinger <cg@exept.de>
parents: 2782
diff changeset
   490
        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
   491
    ].
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   492
    ^ false
4122
900bfc4b45d5 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4118
diff changeset
   493
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   494
    "Modified: / 28-06-2019 / 08:39:38 / Claus Gittinger"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   495
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   496
4123
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   497
handleMouseIn:aView x:x y:y
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   498
    "handle motion events - if the mousepointer left the 
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   499
     previous helped view, hide the help"
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   500
4407
6967e0f64e03 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4401
diff changeset
   501
    (Suspended ? false) ifTrue:[^ false].   
6967e0f64e03 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4401
diff changeset
   502
4134
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   503
    "/ Debugging := true. 
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   504
    "/ Debugging := false. 
4431
732c2cd831b8 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
   505
    Debugging ifTrue:[('%1: mouse in %2@%3' bindWith:self className with:x with:y) infoPrintCR].
4123
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   506
    (self interestedIn:aView) ifFalse:[
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   507
        Debugging ifTrue:[('%1: not interested in view (%2)' bindWith:self className with:Timestamp now) infoPrintCR].
4123
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   508
        ^ self
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   509
    ].
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   510
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   511
    Error handle:[:ex |
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   512
        InfoPrinting == true ifTrue:[
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   513
            '---------------------' infoPrintCR.
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   514
            ex description infoPrintCR.
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   515
            ex suspendedContext fullPrintAll.
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   516
        ].
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   517
    ] do:[
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   518
        |sensor|
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   519
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   520
        "/ self stopHelpDisplayProcess.
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   521
        Debugging ifTrue:['hideIf' infoPrintCR].
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   522
        self hideIfPointerLeft:aView.
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   523
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   524
        "/ check again, in case the stop/hide changed something...
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   525
        (self interestedIn:aView) ifFalse:[
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   526
            Debugging ifTrue:['not interested2' infoPrintCR].
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   527
            ^ self
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   528
        ].
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   529
4367
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   530
        self class isSuspended ifTrue:[^ self].
e93b853be9e4 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4363
diff changeset
   531
4123
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   532
        "/ if there is a sensor, let the view do it itself (in its process)
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   533
        (self targetViewInitiatesHelpViaSensor
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   534
        and:[ (sensor := aView sensor) notNil ])
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   535
        ifTrue:[
4431
732c2cd831b8 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
   536
            "/ Debugging ifTrue:[('%1 target shows help' bindWith:self className) infoPrintCR].
4123
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   537
            sensor flushEventsFor:self withType:#initiateHelpFor:at:.
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   538
            sensor 
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   539
                pushUserEvent:#initiateHelpFor:at: for:self 
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   540
                withArguments:(Array with:aView with:(x @ y)).
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   541
        ] ifFalse:[
4153
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   542
            Debugging ifTrue:['I show help' infoPrintCR].
4123
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   543
            self initiateHelpFor:aView at:(x @ y).
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   544
        ]
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   545
    ].
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   546
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   547
    "Modified: / 28-06-2019 / 08:39:58 / Claus Gittinger"
4123
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   548
!
7335deef08c3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
   549
1591
4e75531ffacf checkin from browser
tm
parents: 1549
diff changeset
   550
keyPress:key x:x y:y view:view
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   551
    "unconditionally hide the help view"
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   552
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   553
    Debugging ifTrue:[
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   554
        ('%1: key press: %2' bindWith:self className with:key) infoPrintCR
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   555
    ].
4371
3524eff4c957 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4368
diff changeset
   556
    DoHelpKey == true ifTrue:[
3524eff4c957 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4368
diff changeset
   557
        key == #Help ifTrue:[
3524eff4c957 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4368
diff changeset
   558
            self initiateHelpFor:view at:(x @ y).
3524eff4c957 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4368
diff changeset
   559
            ^ true.
3524eff4c957 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4368
diff changeset
   560
        ].    
4153
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   561
    ].    
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   562
    self hideHelpIgnoringErrors.
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   563
    ^ false
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   564
4153
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   565
    "Modified: / 27-04-1996 / 15:09:57 / cg"
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   566
    "Modified: / 28-06-2019 / 08:40:11 / Claus Gittinger"
4153
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   567
!
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   568
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   569
keyRelease:key x:x y:y view:view
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   570
    "unconditionally hide the help view"
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   571
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   572
    Debugging ifTrue:[
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   573
        ('%1: key release: %2' bindWith:self className with:key) infoPrintCR
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   574
    ].
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   575
4153
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   576
    self hideHelpIgnoringErrors.
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   577
    ^ false
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   578
c7afa8b79aa7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4134
diff changeset
   579
    "Created: / 02-08-2018 / 16:16:19 / Claus Gittinger"
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   580
    "Modified: / 28-06-2019 / 08:40:17 / Claus Gittinger"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   581
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   582
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   583
pointerEnter:state x:x y:y view:aView
1657
447db4aae998 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1591
diff changeset
   584
    "handle pointer entering a view; prepare to show help"
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   585
4407
6967e0f64e03 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4401
diff changeset
   586
    (Suspended ? false) ifTrue:[^ false].   
6967e0f64e03 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4401
diff changeset
   587
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   588
    "/ DebuggingEvents := true
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   589
    "/ DebuggingEvents := false
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   590
    DebuggingEvents == true ifTrue:[
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   591
        ('%1: PointerEnter view:%2' bindWith:self className with:aView) infoPrintCR.
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   592
    ].
1948
33eb423a6fd3 only act when no mouse-button is pressed
Claus Gittinger <cg@exept.de>
parents: 1909
diff changeset
   593
    state == 0 ifTrue:[
33eb423a6fd3 only act when no mouse-button is pressed
Claus Gittinger <cg@exept.de>
parents: 1909
diff changeset
   594
        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
   595
    ].    
1657
447db4aae998 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1591
diff changeset
   596
    ^ false
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   597
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   598
    "Modified: / 28-06-2019 / 08:40:23 / Claus Gittinger"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   599
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   600
2371
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   601
pointerLeave:state view:aView
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   602
    "handle pointer leaving a view; hide help text"
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   603
2371
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   604
    |sensor|
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   605
4407
6967e0f64e03 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4401
diff changeset
   606
    (Suspended ? false) ifTrue:[^ false].   
6967e0f64e03 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4401
diff changeset
   607
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   608
    "/ DebuggingEvents := true
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   609
    "/ DebuggingEvents := false
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   610
    DebuggingEvents == true ifTrue:[
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   611
        ('%1: PointerLeave view: %2' bindWith:self className with:aView) infoPrintCR.
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   612
    ].
2371
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   613
    sensor := aView sensor.
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   614
    sensor notNil ifTrue:[
4ab6c8c7bc03 flush enqueued help-activation event when we leave a view
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
   615
        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
   616
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   617
    self hideHelpIgnoringErrors.
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   618
    ^ false
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   619
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   620
    "Modified: / 28-06-2019 / 08:40:29 / Claus Gittinger"
2914
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   621
!
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   622
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   623
processEvent:ev
4407
6967e0f64e03 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4401
diff changeset
   624
    (Suspended ? false) ifTrue:[^ false].   
6967e0f64e03 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4401
diff changeset
   625
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   626
    "/ DebuggingEvents := true
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   627
    "/ DebuggingEvents := false
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   628
    false "DebuggingEvents == true" ifTrue:[
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   629
        ('%1: === event: %2 view:%3' 
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   630
                bindWith:self className 
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   631
                with:ev class nameWithoutPrefix
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   632
                with:ev view) infoPrintCR.
3292
5420f7447205 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3244
diff changeset
   633
    ].
4407
6967e0f64e03 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4401
diff changeset
   634
2914
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   635
    (ev isPointerEnterLeaveEvent
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   636
    or:[ ev isButtonEvent
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   637
    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
   638
        ^ ev dispatchWithViewArgumentTo:self    
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   639
    ].
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   640
    ^ false
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   641
18cff2d0daff change to only expect one single method to be (re)defined:
Claus Gittinger <cg@exept.de>
parents: 2879
diff changeset
   642
    "Created: / 29-06-2011 / 18:22:43 / cg"
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   643
    "Modified: / 28-06-2019 / 08:40:35 / Claus Gittinger"
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   644
! !
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   645
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   646
!ActiveHelp methodsFor:'help texts'!
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   647
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   648
basicHelpTextFor:aView at:aDevicePointOrNil 
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   649
    "retrieve helptext for aView as a string; 
3790
94221f42c94d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
   650
     walk along the view's superView chain,
100
claus
parents: 98
diff changeset
   651
     asking models and views encountered while walking.
claus
parents: 98
diff changeset
   652
     The first one who understands and returns a nonNil answer to the
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   653
     #helpTextFor:at: or #helpTextFor: message ends this search and the
100
claus
parents: 98
diff changeset
   654
     returned string is returned."
claus
parents: 98
diff changeset
   655
4435
f564126c2ad9 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 4431
diff changeset
   656
    |t model app1 app2 text v sv topView domainPointOrNil|
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   657
4435
f564126c2ad9 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 4431
diff changeset
   658
    ((t := aView transformation) notNil 
4262
b69be50550bb #BUGFIX by Stefan Reise
sr
parents: 4254
diff changeset
   659
    and:[aDevicePointOrNil notNil]) ifTrue:[
4435
f564126c2ad9 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 4431
diff changeset
   660
        domainPointOrNil := t applyInverseTo:aDevicePointOrNil.
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   661
    ] ifFalse:[
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   662
        domainPointOrNil := aDevicePointOrNil.
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   663
    ].
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   664
3665
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
   665
    "/ done below
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
   666
    "/    text := self helpTextFromView:aView at:domainPointOrNil.
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
   667
    "/    text notNil ifTrue:[ ^ text ].
2076
5a9d0932133b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
   668
1549
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   669
    ((aView respondsTo:#application)
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   670
    and:[ (app1 := aView application) notNil ]) ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   671
        text := self helpTextFromModel:app1 view:aView at:domainPointOrNil.
1549
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   672
        text notNil ifTrue:[ ^ text ].
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   673
    ] ifFalse:[
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   674
        "/ old style (i.e. StandardSystemView ...)
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   675
        topView := aView topView.
3664
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   676
        text := self helpTextFromModel:topView view:aView at:domainPointOrNil.
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   677
        text notNil ifTrue:[ ^ text ].
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   678
    ].
1549
1b5274878f87 care for oldStyle views (StdSysViews)
Claus Gittinger <cg@exept.de>
parents: 1543
diff changeset
   679
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   680
    (model := aView model) notNil ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   681
        model ~~ app1 ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   682
            text := self helpTextFromModel:model view:aView at:domainPointOrNil.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   683
            text notNil ifTrue:[ ^ text ].
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   684
        ].
1011
53514f2c18a7 also ask for helpTextAt:, when a motionEvent arrives.
Claus Gittinger <cg@exept.de>
parents: 728
diff changeset
   685
    ].
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   686
    text := self helpTextFromView:aView at:domainPointOrNil.
3664
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   687
    text notNil ifTrue:[
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   688
         ^ text 
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   689
    ].
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   690
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   691
    "walk up the chain - maybe someone knows about its subview ..."
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   692
    v := aView.
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   693
    [
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   694
        (sv := v container) notNil
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   695
    ] whileTrue:[
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   696
        (model := sv model) notNil ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   697
            text := self helpTextFromModel:model view:aView at:domainPointOrNil.
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   698
            text notNil ifTrue:[ ^ text ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   699
        ].
3665
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
   700
        "/ maybe the topView knows something about a higher-up widget...
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
   701
        text := self helpTextFromModel:topView view:sv at:domainPointOrNil.
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
   702
        text notNil ifTrue:[ ^ text ].
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
   703
        
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   704
        text := self helpTextFromView:sv at:nil.
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   705
        text notNil ifTrue:[ ^ text ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   706
        v := sv
602
b1ac53a44327 application and help
ca
parents: 596
diff changeset
   707
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   708
4038
95870c29b6b4 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3884
diff changeset
   709
    v notNil ifTrue:[
95870c29b6b4 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3884
diff changeset
   710
        ((v respondsTo:#application) and:[(app2 := v application) notNil]) ifTrue:[
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   711
            (app2 ~~ app1) ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   712
                text := self helpTextFromModel:app2 view:aView at:domainPointOrNil.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   713
                text notNil ifTrue:[ ^ text ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   714
            ]
4038
95870c29b6b4 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3884
diff changeset
   715
        ].
95870c29b6b4 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3884
diff changeset
   716
        ((v respondsTo:#model) and:[(model := v model) notNil]) ifTrue:[
2130
31edece2051b care for transformations.
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
   717
            text := self helpTextFromModel:model view:aView at:domainPointOrNil.
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   718
            text notNil ifTrue:[ ^ text ].
4038
95870c29b6b4 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3884
diff changeset
   719
        ].
100
claus
parents: 98
diff changeset
   720
    ].
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   721
    ^ nil
100
claus
parents: 98
diff changeset
   722
4038
95870c29b6b4 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3884
diff changeset
   723
    "Modified: / 31-08-1995 / 20:38:00 / claus"
95870c29b6b4 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3884
diff changeset
   724
    "Modified: / 28-07-1998 / 01:47:27 / cg"
95870c29b6b4 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3884
diff changeset
   725
    "Modified: / 09-01-2018 / 16:46:37 / stefan"
4262
b69be50550bb #BUGFIX by Stefan Reise
sr
parents: 4254
diff changeset
   726
    "Modified: / 13-05-2019 / 11:24:06 / Stefan Reise"
100
claus
parents: 98
diff changeset
   727
!
claus
parents: 98
diff changeset
   728
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   729
helpTextFor:aView at:aDevicePointOrNil 
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   730
    "retrieve helptext for aView as a string; 
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   731
     walk along the view's superView chain,
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   732
     asking models and views encountered while walking.
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   733
     The first one who understands and returns a nonNil answer to the
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   734
     #helpTextFor:at: or #helpTextFor: message ends this search and the
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   735
     returned string is returned."
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   736
4353
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   737
    |text pntRel v superView|
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   738
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   739
    text := self basicHelpTextFor:aView at:aDevicePointOrNil.
4353
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   740
    text notNil ifTrue:[^ text].
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   741
4353
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   742
    "/ I guess the following is already done in basicHelpTextFor:at:
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   743
    ^ nil.
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   744
4353
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   745
"/    "/ in case of embedded toggles, buttons, etc.
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   746
"/    "/ walk along the container hierarchy...
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   747
"/    pntRel := aDevicePointOrNil.
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   748
"/    v := aView.
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   749
"/    [(superView := v superView) notNil] whileTrue:[
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   750
"/        pntRel notNil ifTrue:[
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   751
"/            pntRel := aView device translatePoint:pntRel fromView:v toView:superView.
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   752
"/        ].
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   753
"/        v := superView.
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   754
"/        text := self basicHelpTextFor:v at:pntRel.
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   755
"/        text notNil ifTrue:[^ text].
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   756
"/    ].
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   757
"/
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   758
"/    v superView isNil ifTrue:[
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   759
"/        Debugging ifTrue:['no superview provides helptext' infoPrintCR].
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   760
"/    ].
a819d7cb3f75 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
   761
"/    ^ nil
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   762
!
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   763
3664
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   764
helpTextFromModel:aModelOrTopView view:aView at:aPointOrNil 
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   765
    "helper: ask aModel for its helpText."
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   766
3664
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   767
    |text|
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   768
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   769
    aPointOrNil notNil ifTrue:[
3664
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   770
        (aModelOrTopView respondsTo:#helpTextFor:at:) ifTrue:[
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   771
            text := aModelOrTopView helpTextFor:aView at:aPointOrNil.
2076
5a9d0932133b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
   772
            text notNil ifTrue:[^ text].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   773
        ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   774
    ].
3664
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   775
    (aModelOrTopView respondsTo:#helpTextFor:) ifTrue:[
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   776
        text := aModelOrTopView helpTextFor:aView.
dcd522133e4f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3507
diff changeset
   777
        text notNil ifTrue:[^ text].
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   778
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   779
    ^ text
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   780
!
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   781
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   782
helpTextFromView:aView at:aPointOrNil 
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   783
    "helper: ask aView for its helpText."
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   784
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   785
    |text|
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   786
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   787
    aPointOrNil notNil ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   788
        (aView respondsTo:#helpTextAt:) ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   789
            text := aView helpTextAt:aPointOrNil.
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   790
        ].
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   791
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   792
    text isNil ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   793
        (aView respondsTo:#helpText) ifTrue:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   794
            text := aView helpText.
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   795
        ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   796
    ].
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   797
    ^ text.
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   798
! !
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   799
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   800
!ActiveHelp methodsFor:'private'!
1502
487b55dc68c2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   801
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   802
hideIfPointerLeft:aView
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   803
    "hide help, if the pointer is not in aView"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   804
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   805
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   806
interestedIn:aView
1033
3a56ba930052 care for nil view passed to #interestedIn.
Claus Gittinger <cg@exept.de>
parents: 1019
diff changeset
   807
    "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
   808
     or in my list of apps)"
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   809
3347
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   810
    |app aViewsTopView device deviceFocusView|
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   811
4167
3ebfb7658859 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4153
diff changeset
   812
    "/ Debugging := true
3ebfb7658859 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4153
diff changeset
   813
    "/ Debugging := false
3347
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   814
    aView isNil ifTrue:[
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   815
        Debugging ifTrue:[('%1: nil view' bindWith:self className)infoPrintCR].
3347
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   816
        ^ false
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   817
    ].
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   818
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   819
"/    applicationsOrTopViewsWithHelp isEmptyOrNil ifTrue:[
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   820
"/        Debugging ifTrue:['no apps' infoPrintCR].
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   821
"/        ^ false
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   822
"/    ].
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   823
3347
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   824
    aViewsTopView := aView topView.
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   825
3348
b6e8252970c2 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
   826
    UserPreferences current onlyShowTooltipsForActiveWindow ifTrue:[
4167
3ebfb7658859 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4153
diff changeset
   827
        Debugging ifTrue:[
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   828
            ('%1: TopView: %2 focus: %3 active: %4' 
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   829
                bindWith:self class name
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   830
                with:aViewsTopView
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   831
                with:aViewsTopView graphicsDevice focusView
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   832
                with:aViewsTopView isActive) infoPrintCR.
4167
3ebfb7658859 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4153
diff changeset
   833
        ].
4134
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   834
        aViewsTopView isActive ifFalse:[            
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   835
            Debugging ifTrue:[ 
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   836
                |graphicsDevice focusVw|
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   837
                
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   838
                ('%1: topview inactive' bindWith:self class name) infoPrintCR.
4134
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   839
                graphicsDevice := aViewsTopView graphicsDevice.
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   840
                graphicsDevice notNil ifTrue:[
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   841
                    focusVw := graphicsDevice focusView.
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   842
                    'focusView: ' infoPrint. focusVw infoPrintCR.
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   843
                    focusVw notNil ifTrue:[
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   844
                        'wGroup: ' infoPrint. focusVw windowGroup infoPrintCR.
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   845
                    ]
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   846
                ]
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   847
            ].
3417
6181a91c933a class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   848
            ^ false
6181a91c933a class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   849
        ].
6181a91c933a class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   850
3348
b6e8252970c2 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
   851
        "/ if none of the view's components has focus...
b6e8252970c2 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
   852
        (device := aViewsTopView graphicsDevice) notNil ifTrue:[
b6e8252970c2 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
   853
            (deviceFocusView := device focusView) notNil ifTrue:[
b6e8252970c2 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
   854
                deviceFocusView topView ~~ aViewsTopView ifTrue:[
b6e8252970c2 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
   855
                    "/ 'for inactive ' infoPrint. aView infoPrintCR.
b6e8252970c2 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
   856
                    Debugging ifTrue:['inactive topView' infoPrintCR].
b6e8252970c2 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
   857
                    ^ false
b6e8252970c2 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
   858
                ].
3347
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   859
            ].
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   860
        ].
f314814a3105 do not show help for inactive (background) views.
Claus Gittinger <cg@exept.de>
parents: 3333
diff changeset
   861
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   862
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   863
    listeningForAll == true ifTrue:[^ true].
1033
3a56ba930052 care for nil view passed to #interestedIn.
Claus Gittinger <cg@exept.de>
parents: 1019
diff changeset
   864
3395
e707e6cb12ed class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3348
diff changeset
   865
    applicationsOrTopViewsWithHelp isNil ifTrue:[
e707e6cb12ed class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3348
diff changeset
   866
        applicationsOrTopViewsWithHelp := WeakIdentitySet new.
e707e6cb12ed class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3348
diff changeset
   867
    ].
1106
414b7cfe57b1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1100
diff changeset
   868
    (applicationsOrTopViewsWithHelp includesIdentical:aViewsTopView) ifTrue:[^ true].
414b7cfe57b1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1100
diff changeset
   869
    app := aViewsTopView application.
4134
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   870
    app isNil ifTrue:[
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   871
        Debugging ifTrue:['no app' infoPrintCR].
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   872
        ^ false.
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   873
    ].
4134
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   874
    (applicationsOrTopViewsWithHelp includesIdentical:app) ifTrue:[^ true].
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   875
    Debugging ifTrue:['not in list of apps I am interested in' infoPrintCR].
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   876
    ^ false
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   877
4134
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   878
    "Created: / 26-10-1997 / 23:28:52 / cg"
92df688b5ffe #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
   879
    "Modified: / 08-08-1998 / 13:36:19 / cg"
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   880
    "Modified: / 28-06-2019 / 08:40:05 / Claus Gittinger"
2782
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   881
!
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   882
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   883
targetViewInitiatesHelpViaSensor
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   884
    "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
   885
     false, if I do it myself synchronously."
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   886
79eb7b58118e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
   887
    ^ true
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   888
! !
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   889
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   890
!ActiveHelp methodsFor:'queries'!
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   891
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   892
delayTime
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   893
    ^ self class delayTime
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   894
!
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   895
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   896
showTime
3333
66ff26772ee3 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3323
diff changeset
   897
    "how long shall the help be shown;
66ff26772ee3 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3323
diff changeset
   898
    0 means: forever (until user moves the mouse);
66ff26772ee3 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3323
diff changeset
   899
     >0 means that number of seconds"
66ff26772ee3 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 3323
diff changeset
   900
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   901
    ^ self class showTime
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   902
! !
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
   903
1768
7011c938442e method category rename
Claus Gittinger <cg@exept.de>
parents: 1713
diff changeset
   904
!ActiveHelp methodsFor:'show & hide help'!
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   905
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   906
hideHelp
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   907
    "hide the help text - nothing done here"
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   908
!
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   909
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   910
hideHelpIgnoringErrors
233
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   911
    "hide the help text"
196eb68b707c documentation
Claus Gittinger <cg@exept.de>
parents: 227
diff changeset
   912
1713
bc8a1d16e60f Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 1657
diff changeset
   913
    Error handle:[:ex |
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   914
        ex description infoPrintCR.
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   915
        ex return
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   916
    ] do:[
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   917
        self hideHelp.
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   918
    ].
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   919
!
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
   920
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   921
initiateHelp
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   922
    "determine where the mouse pointer is located,
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   923
     and start showing a tooltip for it right now.
4238
3fe58167fbff #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4236
diff changeset
   924
     This can be called to force update of the tooltip,
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   925
     in case a widget has changed its mind 
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   926
     (typically: an undo menu button function might wonna do this,
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   927
      to show changed info)"
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   928
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   929
    |screenPos view|
4250
e40bbfdb6fdb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4238
diff changeset
   930
e40bbfdb6fdb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4238
diff changeset
   931
    "/ Debugging := false.
e40bbfdb6fdb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4238
diff changeset
   932
    "/ Debugging := true.
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   933
    screenPos := Display pointerPosition.
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   934
    Debugging == true ifTrue:[
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   935
        '----------------' infoPrintCR.
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   936
        ('%1: pos: %2' bindWith:self className with:screenPos) infoPrintCR.
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   937
    ].    
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   938
    view := Display viewFromPoint:screenPos.
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   939
    Debugging == true ifTrue:[
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   940
        'view: ' infoPrint. view infoPrintCR.
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   941
    ].    
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   942
    view notNil ifTrue:[
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   943
        self initiateHelpFor:view.
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   944
    ].
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   945
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   946
    "Created: / 27-02-2019 / 11:09:41 / Claus Gittinger"
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   947
    "Modified: / 28-06-2019 / 08:39:00 / Claus Gittinger"
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   948
!
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   949
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   950
initiateHelpFor:aView
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   951
    "start showing a tooltip for aView right now.
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   952
     This can be called to force update of the tooltip,
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   953
     in case a widget has changed its mind 
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   954
     (typically: an undo menu button function might wonna do this,
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   955
      to show changed info)"
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   956
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   957
    |screenPos relativePos|
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   958
    
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   959
    screenPos := Display pointerPosition.
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   960
    Debugging == true ifTrue:[
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   961
        ('%1: pos: %2' bindWith:self className with:screenPos) infoPrintCR.
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   962
    ].    
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   963
    aView notNil ifTrue:[
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   964
        relativePos := Display translatePoint:screenPos fromView:nil toView:aView.
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   965
        Debugging == true ifTrue:[
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   966
            'relativePos: ' infoPrint. relativePos infoPrintCR.
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   967
        ].    
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   968
        self initiateHelpFor:aView at:relativePos
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   969
    ].
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   970
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   971
    "Created: / 27-02-2019 / 13:59:44 / Claus Gittinger"
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   972
    "Modified: / 28-06-2019 / 08:39:06 / Claus Gittinger"
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   973
!
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
   974
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
   975
initiateHelpFor:aView at:aPointOrNil
634
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   976
    "ask aView for helpText, passing x/y coordinates;
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   977
     start a timeout process to display this helpText after some delay;
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   978
     Normally used internally, but can also be used by widgets to force 
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   979
     re-negotiation of the displayed helpText 
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   980
     (for example in a menu, when the selection changes)"
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   981
4431
732c2cd831b8 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
   982
    "/ Debugging == true ifTrue:[
732c2cd831b8 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
   983
    "/     ('%1: initiateHelpFor: %2' bindWith:self className with:aView) infoPrintCR.
732c2cd831b8 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
   984
    "/ ].
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
   985
4061
09d7c0183f51 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4060
diff changeset
   986
    "/ ActiveHelp stop
4060
9ddc9c4794f5 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4058
diff changeset
   987
    self class isActive ifFalse:[^ self].
9ddc9c4794f5 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4058
diff changeset
   988
4058
d1ad98047781 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
   989
    "/ in standalone apps, it is better to simply not show the help
d1ad98047781 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
   990
    Error,BreakPointInterrupt handle:[:ex |
d1ad98047781 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
   991
        Smalltalk isStandAloneApp ifFalse:[ex reject].
d1ad98047781 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
   992
    ] do:[
d1ad98047781 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
   993
        self initiateHelpFor:aView at:aPointOrNil now:false
d1ad98047781 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
   994
    ].
637
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   995
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   996
    "Modified: / 28-06-1997 / 14:45:57 / cg"
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
   997
    "Modified: / 28-06-2019 / 08:39:15 / Claus Gittinger"
637
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   998
!
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   999
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1000
initiateHelpFor:aView at:aPointOrNil now:showItNow
637
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
  1001
    "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
  1002
     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
  1003
     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
  1004
     re-negotiation of the displayed helpText 
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
  1005
     (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
  1006
696
a49928754789 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1007
    |text top app|
634
1d88f55984a2 comments
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
  1008
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
  1009
    Debugging == true ifTrue:[
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
  1010
        ('%1: initiate help for: %2' bindWith:self className with:aView) infoPrintCR.
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
  1011
    ]. 
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
  1012
1143
5706310407e9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1142
diff changeset
  1013
    (self interestedIn:aView) ifFalse:[
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
  1014
        Debugging ifTrue:['not interested: ' infoPrintCR].
1143
5706310407e9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1142
diff changeset
  1015
        ^ self
5706310407e9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1142
diff changeset
  1016
    ].
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1017
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1018
    text := self helpTextFor:aView at:aPointOrNil.
4251
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
  1019
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
  1020
    (lastHelpText = text and:[lastHelpWidget == aView]) ifTrue:[
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
  1021
        Debugging ifTrue:['same text' infoPrintCR].
159146f89764 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4250
diff changeset
  1022
        "/ (aView isKindOf:CheckToggle) ifTrue:[self halt].
637
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
  1023
        ^ self
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
  1024
    ].
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
  1025
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1026
    "/ let application show the help
728
9f417e396d4e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
  1027
    "/ (i.e. in its own information area)
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1028
    "/ 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
  1029
    "/ to clean its infoDisplay.
637
8be64da7d932 views own help display is done immediately.
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
  1030
4254
e049f2bf3786 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4251
diff changeset
  1031
    "/ (aView isKindOf:CheckToggle) ifTrue:[self halt].
728
9f417e396d4e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
  1032
    top := aView topView.
9f417e396d4e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
  1033
    (app := aView application) notNil ifTrue:[
1019
862f095da4ac #showHelp:for: renamed to #showActiveHelp:for:
Claus Gittinger <cg@exept.de>
parents: 1011
diff changeset
  1034
        (app showActiveHelp:text for:aView) ifTrue:[
728
9f417e396d4e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
  1035
            lastHelpText := text.
632
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
  1036
        ]
844b1aaf3eeb provide access to the current activeHelp instance
Claus Gittinger <cg@exept.de>
parents: 602
diff changeset
  1037
    ].
4235
26cd91a37ff6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 4225
diff changeset
  1038
4283
0d95d298a44b #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
  1039
    "Modified: / 28-06-2019 / 08:39:23 / Claus Gittinger"
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1040
!
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
  1041
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1042
stopHelpDisplayProcess
59
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
  1043
! !
98a4d38cfc96 Initial revision
claus
parents:
diff changeset
  1044
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1045
!ActiveHelp methodsFor:'start & stop'!
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1046
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1047
listenFor:anAppOrTopView
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1048
    "start listening"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1049
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1050
    applicationsOrTopViewsWithHelp isNil ifTrue:[
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1051
        applicationsOrTopViewsWithHelp := WeakIdentitySet new.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1052
    ].
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1053
    applicationsOrTopViewsWithHelp add:anAppOrTopView.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1054
    super listen.
639
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
  1055
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1056
    "Created: / 26.10.1997 / 23:20:47 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1057
    "Modified: / 26.10.1997 / 23:21:10 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1058
!
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1059
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1060
listenForAll
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1061
    "start listening"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1062
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1063
    listeningForAll := true.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1064
    super listen.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1065
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1066
    "Modified: / 28.6.1997 / 15:07:02 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1067
    "Created: / 26.10.1997 / 23:19:30 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1068
!
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1069
2391
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
  1070
start
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
  1071
    self listenForAll
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
  1072
!
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
  1073
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
  1074
stop
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
  1075
    self unlistenAll
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
  1076
!
f6af9239e999 reafctored
Claus Gittinger <cg@exept.de>
parents: 2371
diff changeset
  1077
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1078
unlistenAll
639
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
  1079
    "stop listening"
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
  1080
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
  1081
    self hideHelp.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1082
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1083
    listeningForAll := false.
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1084
    applicationsOrTopViewsWithHelp size == 0 ifTrue:[
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1085
        self unlisten.
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1086
    ]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1087
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1088
    "Created: / 26.10.1997 / 23:14:17 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1089
    "Modified: / 26.10.1997 / 23:23:04 / cg"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1090
!
639
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
  1091
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1092
unlistenFor:anApp
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1093
    "stop listening for an app"
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1094
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1095
    self hideHelp.
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1096
1543
95c5048dd99a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1541
diff changeset
  1097
    applicationsOrTopViewsWithHelp isNil ifFalse:[
95c5048dd99a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1541
diff changeset
  1098
        applicationsOrTopViewsWithHelp remove:anApp ifAbsent:nil.
95c5048dd99a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1541
diff changeset
  1099
    ].
726
cdab756aebe4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 719
diff changeset
  1100
    listeningForAll == true ifFalse:[
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1101
        applicationsOrTopViewsWithHelp size == 0 ifTrue:[
1535
a9fcabccabb3 separated into flyByHelp and activeHelp
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1102
            self unlisten.
719
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1103
        ]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1104
    ]
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1105
17fba5c2a167 allow applications to start activeHelp for
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  1106
    "Created: / 26.10.1997 / 23:22:42 / cg"
726
cdab756aebe4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 719
diff changeset
  1107
    "Modified: / 29.10.1997 / 15:48:34 / cg"
639
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
  1108
! !
0b1de8703593 fixed unlisten
Claus Gittinger <cg@exept.de>
parents: 638
diff changeset
  1109
338
071f92621e3b oops - catching the terminateSignal is no good idea
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
  1110
!ActiveHelp class methodsFor:'documentation'!
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1111
3665
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
  1112
version
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
  1113
    ^ '$Header$'
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
  1114
!
fd067a732096 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
  1115
2779
b608ded19ff2 changed: #handleMouseIn:x:y:
Claus Gittinger <cg@exept.de>
parents: 2688
diff changeset
  1116
version_CVS
3507
Claus Gittinger <cg@exept.de>
parents: 3447
diff changeset
  1117
    ^ '$Header$'
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1118
! !
3197
5924a1d75db3 class: ActiveHelp
Claus Gittinger <cg@exept.de>
parents: 2975
diff changeset
  1119
3320
602bf71b5fdc class: ActiveHelp
Stefan Vogel <sv@exept.de>
parents: 3292
diff changeset
  1120
602bf71b5fdc class: ActiveHelp
Stefan Vogel <sv@exept.de>
parents: 3292
diff changeset
  1121
ActiveHelp initialize!