ApplicationModel.st
author ca
Wed, 25 Feb 1998 15:31:49 +0100
changeset 849 7e234a4ccaf6
parent 825 98429ad39f5d
child 852 671df0a6277d
permissions -rw-r--r--
access mechanism for aspects
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     1
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1995 by Claus Gittinger
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     3
	      All Rights Reserved
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     4
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    11
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    12
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    13
Model subclass:#ApplicationModel
588
106b7def4d65 added a handle for a master application (for subApps)
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
    14
	instanceVariableNames:'builder resources device masterApplication'
389
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
    15
	classVariableNames:'DefaultLabels DefaultVisuals'
142
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    16
	poolDictionaries:''
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    17
	category:'Interface-Framework'
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    18
!
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    19
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    20
ApplicationModel class instanceVariableNames:'ClassResources'
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    21
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    22
"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    23
 The following class instance variables are inherited by this class:
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    24
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    25
	Model - 
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    26
	Object - 
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    27
"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
    28
!
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    29
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
    30
!ApplicationModel class methodsFor:'documentation'!
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    31
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    32
copyright
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    33
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    34
 COPYRIGHT (c) 1995 by Claus Gittinger
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    35
	      All Rights Reserved
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    36
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    37
 This software is furnished under a license and may be used
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    38
 only in accordance with the terms of that license and with the
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    39
 inclusion of the above copyright notice.   This software may not
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    40
 be provided or otherwise made available to, or used by, any
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    41
 other person.  No title to or ownership of the software is
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    42
 hereby transferred.
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    43
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    44
!
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    45
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    46
documentation
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    47
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    48
    Since many ST-80 classes are subclasses of ApplicationModel, this class
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    49
    is provided here to allow easier porting of ST-80 code.
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    50
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
    51
    It does not (currently) provide all functionality and is NOT
63
claus
parents: 61
diff changeset
    52
    compatible to the corresponding ST80 class; therefore, manual
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    53
    changes have to be made to get those applications to run under ST/X.
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    54
    (but at least, this enables you to fileIn that code and have a superclass
78
claus
parents: 72
diff changeset
    55
     for them)
claus
parents: 72
diff changeset
    56
claus
parents: 72
diff changeset
    57
    As time goes by, ST/X applications are going to be converted to
330
d7ce98930ad3 Rename Launcher-->OldLauncher, NewLauncher-->Launcher.
Stefan Vogel <sv@exept.de>
parents: 313
diff changeset
    58
    become subclasses of this abstract class - see Launcher for a
78
claus
parents: 72
diff changeset
    59
    first concrete example.
claus
parents: 72
diff changeset
    60
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    61
78
claus
parents: 72
diff changeset
    62
    ApplicationModel is prepared to build a view from a windowSpec, as
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    63
    created by the windowBuilder. If your subclass does not provide such
78
claus
parents: 72
diff changeset
    64
    a spec, you should at least redefine:
claus
parents: 72
diff changeset
    65
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    66
        #openInterface   - to create a topview and open it
78
claus
parents: 72
diff changeset
    67
claus
parents: 72
diff changeset
    68
    you may want to redefine:
claus
parents: 72
diff changeset
    69
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    70
        #closeRequest    - to catch window closing
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    71
        #focusSequence   - to define a sequence for focus-stepping
78
claus
parents: 72
diff changeset
    72
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    73
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    74
    Once the interfaceBuilder is finished & released, subclasses can
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    75
    alternatively provide the spec via a #windowSpec method.
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    76
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    77
    The classResources have been put into this class to allow ST/X
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    78
    applications (which used to be subclasses of StandardSystemView)
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    79
    to migrate smoothly into ApplicationModels (which is better design ...).
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    80
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    81
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    82
    [Instance variables:]
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    83
        resources    ResourcePack       language string translation
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    84
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    85
        builder      WindowBuilder      a builder who knows how to create
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    86
                                        a window hierarchy from a specification
78
claus
parents: 72
diff changeset
    87
claus
parents: 72
diff changeset
    88
claus
parents: 72
diff changeset
    89
    Notice: this class was implemented using protocol information
claus
parents: 72
diff changeset
    90
    from alpha testers and PD code - it may not be complete or compatible to
claus
parents: 72
diff changeset
    91
    the corresponding ST-80 class. If you encounter any incompatibilities,
claus
parents: 72
diff changeset
    92
    please forward a note to the ST/X team.
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    93
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    94
221
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 215
diff changeset
    95
    [author:]
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 215
diff changeset
    96
        Claus Gittinger
ea942fe5dc04 documentation
Claus Gittinger <cg@exept.de>
parents: 215
diff changeset
    97
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    98
    [see also:]
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
    99
        StandardSystemView
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   100
        WindowGroup DeviceWorkstation
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
   101
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
   102
! !
53bc56e07e8f Initial revision
claus
parents:
diff changeset
   103
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   104
!ApplicationModel class methodsFor:'initialization'!
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   105
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   106
initialize 
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   107
    self == ApplicationModel ifTrue:[
389
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
   108
        Smalltalk addDependent:self
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
   109
    ].
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
   110
    DefaultLabels isNil ifTrue:[
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
   111
        DefaultLabels := IdentityDictionary new
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
   112
    ].
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
   113
    DefaultVisuals isNil ifTrue:[
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
   114
        DefaultVisuals := IdentityDictionary new
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
   115
    ].
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   116
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   117
    "
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   118
     ApplicationModel initialize
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   119
    "
389
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
   120
1af1890c6f0b ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
   121
    "Modified: 28.1.1997 / 12:31:38 / cg"
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   122
! !
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   123
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   124
!ApplicationModel class methodsFor:'instance creation'!
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   125
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   126
new
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   127
    "return a new initialized instance"
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   128
63
claus
parents: 61
diff changeset
   129
    ^ super new basicInitialize initialize
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   130
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   131
    "Modified: 24.4.1996 / 09:42:14 / cg"
311
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   132
!
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   133
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   134
onDevice:aDevice
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   135
    "return a new initialized instance, which shall open its interface
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   136
     on aDevice."
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   137
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   138
    ^ (super new basicInitialize
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   139
        setDevice:aDevice) initialize
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   140
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   141
    "Modified: 24.4.1996 / 09:42:14 / cg"
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   142
    "Created: 5.7.1996 / 12:19:15 / cg"
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   143
! !
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   144
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   145
!ApplicationModel class methodsFor:'accessing'!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   146
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   147
application
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   148
    ^ self
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   149
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   150
! !
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   151
599
681af9f06019 help features
ca
parents: 594
diff changeset
   152
!ApplicationModel class methodsFor:'active help'!
681af9f06019 help features
ca
parents: 594
diff changeset
   153
681af9f06019 help features
ca
parents: 594
diff changeset
   154
helpSpec
681af9f06019 help features
ca
parents: 594
diff changeset
   155
    ^ IdentityDictionary new.
681af9f06019 help features
ca
parents: 594
diff changeset
   156
! !
681af9f06019 help features
ca
parents: 594
diff changeset
   157
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   158
!ApplicationModel class methodsFor:'bindings'!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   159
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   160
actionFor:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   161
    "sent by the builder to ask for an actionBlock for
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   162
     a Button. The argument, aKey comes from an UI-spec
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   163
     for a buttons #action property.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   164
     Here, a corresponding message is sent to myself,
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   165
     which ought to be defined in the application subclass.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   166
     Alternatively, a subclass may redefine this method, to provide
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   167
     actionBlocks from a Dictionary or whatever.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   168
     Typically, a block is returned there."
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   169
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   170
    ^ nil
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   171
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   172
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   173
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   174
715
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   175
actionFor:aKey withValue:aValue
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   176
    "sent by the builder to ask for an actionBlock for
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   177
     a Button which passes a value to the actionMethod. 
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   178
     The argument, aKey comes from an UI-spec
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   179
     for a buttons #action property.
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   180
     Here, a corresponding message is sent to myself,
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   181
     which ought to be defined in the application subclass.
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   182
     Alternatively, a subclass may redefine this method, to provide
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   183
     actionBlocks from a Dictionary or whatever.
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   184
     Typically, a block is returned there."
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   185
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   186
    ^ nil
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   187
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   188
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   189
!
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   190
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   191
aspectFor:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   192
    "sent by the builder to ask for an aspect (a data model).
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   193
     The argument, aKey comes from an UI-spec
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   194
     for a components #aspect property.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   195
     Here, a corresponding message is sent to myself,
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   196
     which ought to be defined in the application subclass.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   197
     Alternatively, a subclass may redefine this method, to provide
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   198
     holders from a Dictionary or whatever.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   199
     Typically, a valueHolder is returned there."
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   200
723
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   201
    ^ self perform:aKey
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   202
723
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   203
    "/ ^ nil
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   204
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   205
    "Modified: / 27.10.1997 / 13:43:12 / cg"
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   206
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   207
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   208
clientFor:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   209
    "sent by the builder to ask for an application provided
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   210
     subcanvas's application.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   211
     The argument, aKey comes from an UI-spec
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   212
     for a subcanvas's #client property.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   213
     Here, a corresponding message is sent to myself,
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   214
     which ought to be defined in the application subclass.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   215
     Alternatively, a subclass may redefine this method, to provide
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   216
     appModels from a Dictionary or whatever.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   217
     Typically, an applicationModel is returned there."
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   218
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   219
    ^ nil
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   220
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   221
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   222
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   223
componentFor:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   224
    "sent by the builder to ask for an application provided
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   225
     component.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   226
     The argument, aKey comes from an UI-spec
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   227
     for a viewHolders #view property.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   228
     Here, a corresponding message is sent to myself,
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   229
     which ought to be defined in the application subclass.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   230
     Alternatively, a subclass may redefine this method, to provide
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   231
     holders from a Dictionary or whatever.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   232
     Typically, a view is returned there."
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   233
427
e8dffb2f3e1e checkin from browser
ca
parents: 421
diff changeset
   234
    (self respondsTo:aKey) ifTrue:[
e8dffb2f3e1e checkin from browser
ca
parents: 421
diff changeset
   235
        ^ self perform:aKey
e8dffb2f3e1e checkin from browser
ca
parents: 421
diff changeset
   236
    ].
e8dffb2f3e1e checkin from browser
ca
parents: 421
diff changeset
   237
    ^ nil
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   238
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   239
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   240
labelFor:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   241
    "sent by the builder to ask for an application provided
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   242
     label for a component.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   243
     The argument, aKey comes from an UI-spec
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   244
     for a components #label property.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   245
     Here, a corresponding message is sent to myself,
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   246
     which ought to be defined in the application subclass.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   247
     Alternatively, a subclass may redefine this method, to provide
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   248
     labels from a Dictionary or whatever.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   249
     Typically, a string is returned there."
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   250
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   251
    (self application respondsTo:aKey) ifTrue:[
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   252
        ^ self application perform:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   253
    ].
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   254
    ^ self application labelAt:aKey ifAbsent:nil
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   255
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   256
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   257
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   258
listFor:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   259
    "sent by the builder to ask for an application provided
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   260
     holder for a list.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   261
     The argument, aKey comes from an UI-spec
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   262
     for a listWidgets #list property.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   263
     Here, a corresponding message is sent to myself,
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   264
     which ought to be defined in the application subclass.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   265
     Alternatively, a subclass may redefine this method, to provide
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   266
     holders from a Dictionary or whatever.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   267
     Typically, a list-holding model (SelectionInList) is returned there."
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   268
483
bf49c2e7285f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 482
diff changeset
   269
    |app|
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   270
483
bf49c2e7285f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 482
diff changeset
   271
    (app := self application) notNil ifTrue:[
bf49c2e7285f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 482
diff changeset
   272
        (app respondsTo:aKey) ifTrue:[
bf49c2e7285f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 482
diff changeset
   273
            ^ app perform:aKey
bf49c2e7285f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 482
diff changeset
   274
        ]
bf49c2e7285f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 482
diff changeset
   275
    ].
bf49c2e7285f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 482
diff changeset
   276
    ^ nil.
bf49c2e7285f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 482
diff changeset
   277
bf49c2e7285f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 482
diff changeset
   278
    "Modified: 4.3.1997 / 00:53:03 / cg"
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   279
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   280
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   281
menuFor:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   282
    "sent by the builder to ask for an application provided
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   283
     holder for a menu.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   284
     The argument, aKey comes from an UI-spec
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   285
     for a widgets #menu property.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   286
     Here, a corresponding message is sent to myself,
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   287
     which ought to be defined in the application subclass.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   288
     Alternatively, a subclass may redefine this method, to provide
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   289
     holders from a Dictionary or whatever.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   290
     Typically, a menu or a menu-holding valueHolder is returned there."
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   291
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   292
    ^ self application perform:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   293
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   294
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   295
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   296
specificationFor:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   297
    "sent by the builder to ask for an application provided
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   298
     specification for a subcanvas or subspecification.
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   299
     The argument, aKey comes from an UI-spec
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   300
     for a subcanvases #specification property (minorKey).
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   301
     Here, a corresponding message is sent to myself,
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   302
     which ought to be defined in the application subclass.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   303
     Alternatively, a subclass may redefine this method, to provide
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   304
     interfaceSpecifications from a Dictionary or whatever.
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   305
     Typically, an interfaceSpecification is returned there."
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   306
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   307
    ^ self application perform:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   308
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   309
    "Modified: / 5.2.1998 / 00:21:57 / stefan"
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   310
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   311
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   312
visualFor:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   313
    "sent by the builder to ask for an application provided
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   314
     image or element for a label.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   315
     The argument, aKey comes from an UI-spec
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   316
     for a widgets #label property, if LabelIsImage is turned on.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   317
     Here, a corresponding message is sent to myself,
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   318
     which ought to be defined in the application subclass.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   319
     Alternatively, a subclass may redefine this method, to provide
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   320
     images from a Dictionary or whatever.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   321
     Typically, an image is returned there."
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   322
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   323
    (self application respondsTo:aKey) ifTrue:[
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   324
        ^ self application perform:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   325
    ].
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   326
    ^ self application visualAt:aKey ifAbsent:nil
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   327
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   328
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   329
! !
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   330
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   331
!ApplicationModel class methodsFor:'change & update'!
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   332
302
edd5c8754ac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   333
update:something with:aParameter from:changedObject
69
claus
parents: 63
diff changeset
   334
    "flush resources on language changes"
claus
parents: 63
diff changeset
   335
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   336
    something == #Language ifTrue:[
302
edd5c8754ac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   337
        "flush resources on language changes"
edd5c8754ac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   338
        self flushAllClassResources
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   339
    ]
302
edd5c8754ac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   340
edd5c8754ac8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   341
    "Created: 15.6.1996 / 15:13:29 / cg"
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   342
! !
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   343
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   344
!ApplicationModel class methodsFor:'defaults'!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   345
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   346
labelAt:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   347
    ^ nil
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   348
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   349
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   350
labelAt:aKey ifAbsent:aBlock
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   351
    ^ aBlock value
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   352
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   353
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   354
labelAt:aKey put:aValue
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   355
    "/ not yet implemented
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   356
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   357
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   358
labels
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   359
    "/ not yet implemented
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   360
    ^ nil
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   361
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   362
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   363
visualAt:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   364
    ^ nil
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   365
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   366
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   367
visualAt:aKey ifAbsent:aBlock
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   368
    ^ aBlock value
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   369
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   370
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   371
visualAt:aKey put:aValue
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   372
    "/ not yet implemented
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   373
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   374
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   375
visuals
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   376
    "/ not yet implemented
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   377
    ^ nil
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   378
! !
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   379
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   380
!ApplicationModel class methodsFor:'queries'!
63
claus
parents: 61
diff changeset
   381
claus
parents: 61
diff changeset
   382
interfaceSpecFor:aSelector
69
claus
parents: 63
diff changeset
   383
    "return an interface spec"
claus
parents: 63
diff changeset
   384
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   385
    ^ UISpecification from:(self application specificationFor:aSelector)
723
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   386
!
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   387
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   388
isVisualStartable
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   389
    "return true, if this application can be started via #open"
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   390
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   391
    (self == ApplicationModel) ifTrue:[^ false "I am abstract"].
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   392
    (self respondsTo:#windowSpec) ifFalse:[^ false].
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   393
    (self respondsTo:#open) ifFalse:[^ false].
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   394
    ^ true
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   395
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   396
    "Created: / 27.10.1997 / 16:38:02 / cg"
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   397
    "Modified: / 27.10.1997 / 16:46:08 / cg"
63
claus
parents: 61
diff changeset
   398
! !
claus
parents: 61
diff changeset
   399
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   400
!ApplicationModel class methodsFor:'resources'!
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   401
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   402
classResources
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   403
    "if not already loaded, get the classes resourcePack
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   404
     and return it"
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   405
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   406
    ClassResources isNil ifTrue:[
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   407
	ClassResources := ResourcePack for:self.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   408
    ].
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   409
    ^ ClassResources
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   410
!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   411
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   412
classResources:aResourcePack
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   413
    "allow setting of the classResources"
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   414
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   415
    ClassResources := aResourcePack
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   416
!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   417
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   418
flushAllClassResources
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   419
    "flush all classes resource translations.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   420
     Needed after a resource file / language setting has changed."
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   421
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   422
    ResourcePack flushCachedResourcePacks.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   423
    self flushClassResources.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   424
    self allSubclassesDo:[:aClass |
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   425
	aClass flushClassResources.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   426
    ]
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   427
!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   428
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   429
flushClassResources
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   430
    "flush classes resource string translations.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   431
     Needed whenever a resource file / language setting has changed"
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   432
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   433
    ClassResources := nil.
63
claus
parents: 61
diff changeset
   434
!
claus
parents: 61
diff changeset
   435
claus
parents: 61
diff changeset
   436
updateClassResources
claus
parents: 61
diff changeset
   437
    "update my classResources"
claus
parents: 61
diff changeset
   438
claus
parents: 61
diff changeset
   439
    ClassResources := nil.
claus
parents: 61
diff changeset
   440
    self classResources
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   441
! !
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   442
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   443
!ApplicationModel class methodsFor:'startup'!
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   444
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   445
open
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   446
    "create an instance of the application and open its view"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   447
240
09028fa9ff5f return app in class>>open
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   448
    ^ self new open
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   449
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   450
    "
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   451
     Launcher open
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   452
    "
240
09028fa9ff5f return app in class>>open
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   453
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   454
    "Modified: 13.1.1997 / 20:54:50 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   455
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   456
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   457
openAt:aLocation
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   458
    "create an instance of the application and open its view
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   459
     at some position."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   460
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   461
    ^ self new openAt:aLocation
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   462
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   463
    "Modified: 14.2.1997 / 20:28:41 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   464
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   465
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   466
openDialogInterface:anInterfaceSymbol
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   467
    "create an instance of the application and open a view as
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   468
     specified by anInterfaceSymbol."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   469
464
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   470
    ^ self openDialogInterface:anInterfaceSymbol withBindings:nil
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   471
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   472
    "Modified: 5.9.1995 / 17:54:50 / claus"
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   473
    "Created: 14.2.1997 / 20:33:10 / cg"
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   474
    "Modified: 28.2.1997 / 14:07:36 / cg"
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   475
!
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   476
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   477
openDialogInterface:anInterfaceSymbol withBindings:bindings
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   478
    "create an instance of the application and open a view as
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   479
     specified by anInterfaceSymbol."
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   480
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   481
    ^ self new openDialogInterface:anInterfaceSymbol withBindings:bindings
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   482
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   483
    "Modified: 5.9.1995 / 17:54:50 / claus"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   484
    "Modified: 13.1.1997 / 20:55:02 / cg"
464
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
   485
    "Created: 28.2.1997 / 14:07:24 / cg"
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   486
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   487
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   488
openInterface:anInterfaceSymbol
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   489
    "create an instance of the application and open a view as
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   490
     specified by anInterfaceSymbol."
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   491
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   492
    ^ self new openInterface:anInterfaceSymbol
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   493
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   494
    "Modified: 5.9.1995 / 17:54:50 / claus"
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   495
    "Modified: 13.1.1997 / 20:55:02 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   496
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   497
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   498
openInterface:anInterfaceSymbol at:aPoint
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   499
    "create an instance of the application and open a view as
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   500
     specified by anInterfaceSymbol."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   501
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   502
    ^ self new openInterface:anInterfaceSymbol at:aPoint
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   503
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   504
    "Modified: 14.2.1997 / 20:28:47 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   505
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   506
657
285350fb3885 open modal
ca
parents: 614
diff changeset
   507
openModal
285350fb3885 open modal
ca
parents: 614
diff changeset
   508
    "create an instance of the application and open its view modal"
285350fb3885 open modal
ca
parents: 614
diff changeset
   509
285350fb3885 open modal
ca
parents: 614
diff changeset
   510
    ^ self new openModal
285350fb3885 open modal
ca
parents: 614
diff changeset
   511
!
285350fb3885 open modal
ca
parents: 614
diff changeset
   512
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   513
openOn:anApplicationModel
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   514
    "send an open message to the argument, anApplicationModel.
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   515
     I dont really understand what this method is useful for ..."
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   516
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   517
    ^ anApplicationModel open
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   518
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   519
    "Modified: 13.1.1997 / 20:55:05 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   520
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   521
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   522
openOnDevice:aDevice
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   523
    "create an instance of the application and open its view
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   524
     on ANOTHER device. 
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   525
     For more info, read the document on multiple display
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   526
     support and the documentation of the DeviceWorkstation class."
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   527
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   528
    ^ (self onDevice:aDevice) open
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
   529
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   530
    "
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   531
     Launcher openOnDevice:Display
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   532
    "
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   533
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
   534
    "Modified: 13.1.1997 / 20:55:27 / cg"
685
49bff60514bc st80 compatibility
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   535
!
49bff60514bc st80 compatibility
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   536
49bff60514bc st80 compatibility
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   537
openWithSpec:aSpecSymbol
49bff60514bc st80 compatibility
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   538
    "ST80 compatibility:
49bff60514bc st80 compatibility
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   539
     mhmh - what is the difference to #openInterface ?"
49bff60514bc st80 compatibility
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   540
49bff60514bc st80 compatibility
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   541
    ^ self openInterface:aSpecSymbol
49bff60514bc st80 compatibility
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   542
49bff60514bc st80 compatibility
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   543
    "Modified: 29.8.1997 / 01:16:52 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   544
! !
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   545
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   546
!ApplicationModel methodsFor:'accessing'!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   547
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   548
application
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   549
    "application knows about interfaceSpecs, menuSpecs etc.
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   550
     Usually this is my class.
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   551
     This may be redefined in subclasses"
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   552
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   553
    ^ self class
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   554
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   555
    "Modified: / 5.2.1998 / 00:45:21 / stefan"
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   556
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   557
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   558
builder
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   559
    "return the applications builder; this one has more information
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   560
     about views, components etc."
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   561
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   562
    ^ builder
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   563
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   564
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   565
builder:aBuilder
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   566
    "set the applications builder. Normally, you should not set it
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   567
     directly, but depend on the default builder, as created when the application
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   568
     was created."
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   569
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   570
    builder := aBuilder
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   571
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   572
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   573
focusSequence
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   574
    "return a focusSequence for stepping through the applications views.
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   575
     The builder usually keeps track of so-called 'tabable' views.
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   576
     Stepping is done with the FocusNext/FocusPrevius keys, which are 
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   577
     typically bound to Meta-CursorUp/Meta-CursorDown.
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   578
     (unless the focus is currently attached to a textEditing view,
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   579
      tabbing is also possible via the tab-key)
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   580
     Subclasses which do not use the builder (but instead build their view
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   581
     programmatically) should redefine this method to return a collection of
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   582
     views which defines that sequence.
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   583
     Notice, that the focuse sequence is asked for at the time of the tabbing
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   584
     (not only during startup of the view) - so dynamically adding/removing
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   585
     components is possible."
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   586
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   587
    builder notNil ifTrue:[
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   588
        ^ builder focusSequence
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   589
    ].
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   590
    ^ nil
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   591
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   592
    "Modified: / 31.10.1997 / 19:11:14 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   593
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   594
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   595
masterApplication
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   596
    "return the value of the instance variable 'masterApplication' (automatically generated)"
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   597
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   598
    ^ masterApplication!
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   599
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   600
masterApplication:something
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   601
    "set the value of the instance variable 'masterApplication' (automatically generated)"
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   602
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   603
    masterApplication := something.!
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   604
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   605
resources
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   606
    "return the applications resources - thats a ResourcePack containing
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   607
     language strings"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   608
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   609
    ^ resources
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   610
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   611
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   612
window
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   613
    "return my topWindow"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   614
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   615
    ^ builder window
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   616
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   617
187
9e35ae67f07c added #window:
Claus Gittinger <cg@exept.de>
parents: 144
diff changeset
   618
window:aTopView
9e35ae67f07c added #window:
Claus Gittinger <cg@exept.de>
parents: 144
diff changeset
   619
    "set my topWindow"
9e35ae67f07c added #window:
Claus Gittinger <cg@exept.de>
parents: 144
diff changeset
   620
9e35ae67f07c added #window:
Claus Gittinger <cg@exept.de>
parents: 144
diff changeset
   621
    builder window:aTopView
9e35ae67f07c added #window:
Claus Gittinger <cg@exept.de>
parents: 144
diff changeset
   622
9e35ae67f07c added #window:
Claus Gittinger <cg@exept.de>
parents: 144
diff changeset
   623
    "Created: 18.4.1996 / 14:55:26 / cg"
9e35ae67f07c added #window:
Claus Gittinger <cg@exept.de>
parents: 144
diff changeset
   624
!
9e35ae67f07c added #window:
Claus Gittinger <cg@exept.de>
parents: 144
diff changeset
   625
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   626
windowGroup 
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   627
    "return the applications windowGroup"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   628
657
285350fb3885 open modal
ca
parents: 614
diff changeset
   629
    |w|
285350fb3885 open modal
ca
parents: 614
diff changeset
   630
285350fb3885 open modal
ca
parents: 614
diff changeset
   631
    (w := builder window) notNil ifTrue:[
285350fb3885 open modal
ca
parents: 614
diff changeset
   632
        ^ w windowGroup
285350fb3885 open modal
ca
parents: 614
diff changeset
   633
    ].
285350fb3885 open modal
ca
parents: 614
diff changeset
   634
    ^ nil
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   635
! !
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
   636
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   637
!ApplicationModel methodsFor:'active help'!
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   638
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   639
showHelp:aHelpText for:view
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   640
    "hook to allow an application to display active help
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   641
     texts in its own info area.
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   642
     This method may be redefined in a concrete application.
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   643
     If it returns false, the ActiveHelp manager will popup a
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   644
     bubble with the help text."
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   645
599
681af9f06019 help features
ca
parents: 594
diff changeset
   646
    masterApplication notNil ifTrue:[
681af9f06019 help features
ca
parents: 594
diff changeset
   647
        ^ masterApplication showHelp:aHelpText for:view
681af9f06019 help features
ca
parents: 594
diff changeset
   648
    ].
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   649
    ^ false
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   650
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   651
! !
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   652
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   653
!ApplicationModel methodsFor:'binding access'!
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   654
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   655
actionFor:aKey
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   656
    "sent by the builder to ask for an actionBlock for
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   657
     a Button. The argument, aKey comes from an UI-spec
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   658
     for a buttons #action property.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   659
     Here, a corresponding message is sent to myself,
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   660
     which ought to be defined in the application subclass.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   661
     Alternatively, a subclass may redefine this method, to provide
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   662
     actionBlocks from a Dictionary or whatever.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   663
     Typically, a block is returned there."
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   664
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   665
     (self selfResponsibleFor:aKey) ifTrue:[
723
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   666
         ^ [self perform:aKey]   "/ could use:  MessageSend receiver:self selector:aKey 
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   667
     ].
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   668
     ^ masterApplication actionFor:aKey
723
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   669
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   670
    "Modified: / 28.10.1997 / 20:34:51 / cg"
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   671
!
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   672
715
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   673
actionFor:aKey withValue:aValue
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   674
    "sent by the builder to ask for an actionBlock for
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   675
     a Button which passes a value. 
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   676
     The argument, aKey comes from an UI-spec for a buttons #action property.
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   677
     Here, a corresponding message is sent to myself,
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   678
     which ought to be defined in the application subclass.
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   679
     Alternatively, a subclass may redefine this method, to provide
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   680
     actionBlocks from a Dictionary or whatever.
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   681
     Typically, a block is returned there."
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   682
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   683
     (self selfResponsibleFor:aKey) ifTrue:[
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   684
         ^ [self perform:aKey with:aValue]
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   685
     ].
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   686
     ^ masterApplication actionFor:aKey withValue:aValue
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   687
!
bedd651e731c actionFor:aKey withValue:aValue
ca
parents: 713
diff changeset
   688
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   689
aspectFor:aKey
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   690
    "sent by the builder to ask for an aspect (a data model).
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   691
     The argument, aKey comes from an UI-spec
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   692
     for a components #aspect property.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   693
     Here, a corresponding message is sent to myself,
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   694
     which ought to be defined in the application subclass.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   695
     Alternatively, a subclass may redefine this method, to provide
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   696
     holders from a Dictionary or whatever.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   697
     Typically, a valueHolder is returned there."
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   698
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   699
     (self selfResponsibleFor:aKey) ifTrue:[
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   700
         ^ self perform:aKey
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   701
     ].
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   702
     ^ masterApplication aspectFor:aKey
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   703
!
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   704
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   705
clientFor:aKey
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   706
    "sent by the builder to ask for an application provided
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   707
     subcanvas's application.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   708
     The argument, aKey comes from an UI-spec
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   709
     for a subcanvas's #client property.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   710
     Here, a corresponding message is sent to myself,
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   711
     which ought to be defined in the application subclass.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   712
     Alternatively, a subclass may redefine this method, to provide
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   713
     appModels from a Dictionary or whatever.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   714
     Typically, an applicationModel is returned there."
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   715
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   716
     (self selfResponsibleFor:aKey) ifTrue:[
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   717
         ^ self perform:aKey
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   718
     ].
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   719
     ^ masterApplication clientFor:aKey
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   720
!
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   721
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   722
componentFor:aKey
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   723
    "sent by the builder to ask for an application provided
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   724
     component.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   725
     The argument, aKey comes from an UI-spec
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   726
     for a viewHolders #view property.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   727
     Here, a corresponding message is sent to myself,
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   728
     which ought to be defined in the application subclass.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   729
     Alternatively, a subclass may redefine this method, to provide
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   730
     holders from a Dictionary or whatever.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   731
     Typically, a view is returned there."
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   732
849
7e234a4ccaf6 access mechanism for aspects
ca
parents: 825
diff changeset
   733
     (self selfResponsibleFor:aKey) ifTrue:[
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   734
        ^ self perform:aKey
849
7e234a4ccaf6 access mechanism for aspects
ca
parents: 825
diff changeset
   735
     ].
7e234a4ccaf6 access mechanism for aspects
ca
parents: 825
diff changeset
   736
     ^ masterApplication componentFor:aKey
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   737
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   738
!
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   739
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   740
helpTextFor:aComponent
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   741
    "activeHelp interface: return some help text for a component"
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   742
614
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   743
    |key cls|
599
681af9f06019 help features
ca
parents: 594
diff changeset
   744
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   745
    builder notNil ifTrue:[
599
681af9f06019 help features
ca
parents: 594
diff changeset
   746
        cls := self class.
681af9f06019 help features
ca
parents: 594
diff changeset
   747
681af9f06019 help features
ca
parents: 594
diff changeset
   748
        (cls respondsTo:#helpSpec) ifTrue:[
681af9f06019 help features
ca
parents: 594
diff changeset
   749
            (key := builder helpKeyFor:aComponent) notNil ifTrue:[
614
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   750
                ^ self helpTextForKey:key
599
681af9f06019 help features
ca
parents: 594
diff changeset
   751
            ]
681af9f06019 help features
ca
parents: 594
diff changeset
   752
        ]
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   753
    ].
614
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   754
    masterApplication notNil ifTrue:[
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   755
        ^ masterApplication helpTextFor:aComponent
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   756
    ].
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   757
  ^ nil
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   758
!
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   759
614
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   760
helpTextForKey:aKey
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   761
    "activeHelp interface: return some help text for a key"
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   762
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   763
    |cls helpText|
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   764
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   765
    cls := self class.
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   766
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   767
    (cls respondsTo:#helpSpec) ifTrue:[
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   768
        helpText := (cls helpSpec) at:aKey ifAbsent:nil
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   769
    ].
599
681af9f06019 help features
ca
parents: 594
diff changeset
   770
    (masterApplication notNil and:[helpText isNil]) ifTrue:[
614
0e0f08065592 helpTextForKey:
ca
parents: 604
diff changeset
   771
        helpText := masterApplication helpTextForKey:aKey
599
681af9f06019 help features
ca
parents: 594
diff changeset
   772
    ].
681af9f06019 help features
ca
parents: 594
diff changeset
   773
  ^ helpText
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   774
!
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   775
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   776
labelFor:aKey
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   777
    "sent by the builder to ask for an application provided
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   778
     label for a component.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   779
     The argument, aKey comes from an UI-spec
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   780
     for a components #label property.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   781
     Here, a corresponding message is sent to myself,
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   782
     which ought to be defined in the application subclass.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   783
     Alternatively, a subclass may redefine this method, to provide
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   784
     labels from a Dictionary or whatever.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   785
     Typically, a string is returned there."
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   786
659
f5594160921c labelFor
ca
parents: 657
diff changeset
   787
     (self selfResponsibleFor:aKey) ifTrue:[
f5594160921c labelFor
ca
parents: 657
diff changeset
   788
         ^ self perform:aKey
f5594160921c labelFor
ca
parents: 657
diff changeset
   789
     ].
f5594160921c labelFor
ca
parents: 657
diff changeset
   790
     ^ masterApplication labelFor:aKey
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   791
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   792
!
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   793
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   794
listFor:aKey
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   795
    "sent by the builder to ask for an application provided
604
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   796
     holder for a list (for example, a popUpLists list).
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   797
     The argument, aKey comes from an UI-spec
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   798
     for a listWidgets #list property.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   799
     Here, a corresponding message is sent to myself,
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   800
     which ought to be defined in the application subclass.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   801
     Alternatively, a subclass may redefine this method, to provide
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   802
     holders from a Dictionary or whatever.
604
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   803
     Typically, a list-holding model (SelectionInList) is returned there.
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   804
     If the instance does not provide a value, a corresponding aspect
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   805
     is asked for. If that fails as well, the app class is asked as a last
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   806
     chance."
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   807
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   808
    |a|
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   809
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   810
    (self respondsTo:aKey) ifTrue:[
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   811
        ^ self perform:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   812
    ].
604
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   813
    a := self aspectFor:aKey.
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   814
    a notNil ifTrue:[
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   815
        ^ a
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   816
    ].
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   817
    ^ self application listFor:aKey
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   818
604
190f3d243635 when asking for a list, look in the aspects as a fall back.
Claus Gittinger <cg@exept.de>
parents: 603
diff changeset
   819
    "Modified: 17.6.1997 / 13:13:35 / cg"
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   820
!
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   821
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   822
menuFor:aKey
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   823
    "sent by the builder to ask for an application provided
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   824
     holder for a menu.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   825
     The argument, aKey comes from an UI-spec
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   826
     for a widgets #menu property.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   827
     Here, a corresponding message is sent to myself,
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   828
     which ought to be defined in the application subclass.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   829
     Alternatively, a subclass may redefine this method, to provide
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   830
     holders from a Dictionary or whatever.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   831
     Typically, a menu or a menu-holding valueHolder is returned there."
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   832
849
7e234a4ccaf6 access mechanism for aspects
ca
parents: 825
diff changeset
   833
    (self selfResponsibleFor:aKey) ifTrue:[
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   834
        ^ self perform:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   835
    ].
849
7e234a4ccaf6 access mechanism for aspects
ca
parents: 825
diff changeset
   836
    ^ masterApplication menuFor:aKey
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   837
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   838
!
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   839
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   840
specificationFor:aKey
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   841
    "sent by the builder to ask for an application provided
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   842
     specification for a subcanvas or subspecification.
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   843
     The argument, aKey comes from an UI-spec
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   844
     for a subcanvases #specification property (minorKey).
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   845
     Here, a corresponding message is sent to myself,
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   846
     which ought to be defined in the application subclass.
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   847
     Alternatively, a subclass may redefine this method, to provide
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   848
     interfaceSpecifications from a Dictionary or whatever.
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   849
     Typically, an interfaceSpecification is returned there."
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   850
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   851
     |app|
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   852
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   853
     (self selfResponsibleFor:aKey) ifTrue:[
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   854
         ^ self perform:aKey
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   855
     ].
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   856
     ((app := self application) respondsTo:aKey) ifTrue:[
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   857
         ^ app perform:aKey
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   858
     ].
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
   859
     ^ masterApplication specificationFor:aKey
825
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   860
98429ad39f5d #specificationFor: asks the class about the window specification.
Stefan Vogel <sv@exept.de>
parents: 788
diff changeset
   861
    "Modified: / 5.2.1998 / 00:31:39 / stefan"
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   862
!
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   863
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   864
visualFor:aKey
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   865
    "sent by the builder to ask for an application provided
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   866
     image or element for a label.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   867
     The argument, aKey comes from an UI-spec
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   868
     for a widgets #label property, if LabelIsImage is turned on.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   869
     Here, a corresponding message is sent to myself,
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   870
     which ought to be defined in the application subclass.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   871
     Alternatively, a subclass may redefine this method, to provide
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   872
     images from a Dictionary or whatever.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   873
     Typically, an image is returned there."
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   874
421
e163e734b31c changed binding access
ca
parents: 402
diff changeset
   875
    ^ self application visualFor:aKey
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   876
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   877
! !
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
   878
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   879
!ApplicationModel methodsFor:'component manipulations'!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   880
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   881
components:aSymbolOrArray do:aBlock
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   882
    "evaluate aBlock for all components listed aSymbolOrArray."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   883
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   884
    |coll|
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   885
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   886
    aSymbolOrArray isSymbol ifTrue:[
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   887
        "/ a single components name
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   888
        coll := Array with:aSymbolOrArray
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   889
    ] ifFalse:[
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   890
        coll := aSymbolOrArray
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   891
    ].
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   892
    coll do:[:aSymbol |
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   893
        |component|
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   894
500
3a387d00c0ff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 483
diff changeset
   895
        (component := self componentFor:aSymbol) isNil ifFalse:[
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   896
            aBlock value:component
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   897
        ]
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   898
    ]
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   899
500
3a387d00c0ff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 483
diff changeset
   900
    "Modified: 26.3.1997 / 16:23:14 / cg"
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   901
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   902
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   903
disable:aSymbolOrArray
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   904
    "disable the components whose id's are aSymbolOrArray."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   905
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   906
    self components:aSymbolOrArray do:[:comp | comp disable]
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   907
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   908
    "Modified: 14.2.1997 / 17:32:09 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   909
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   910
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   911
enable:aSymbolOrArray
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   912
    "enables the component(s) identified by aSymbolOrArray."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   913
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   914
    self components:aSymbolOrArray do:[:comp | comp enable]
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   915
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   916
    "Modified: 14.2.1997 / 17:32:19 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   917
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   918
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   919
invalidate:aSymbolOrArray
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   920
    "invalidates the component(s) identified by aSymbolOrArray."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   921
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   922
    self components:aSymbolOrArray do:[:comp | comp invalidate]
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   923
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   924
    "Modified: 14.2.1997 / 17:32:28 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   925
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   926
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   927
makeInvisible:aSymbolOrArray
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   928
    "makes the components whose id's are aSymbolOrArray invisible"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   929
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   930
    self components:aSymbolOrArray do:[:comp | comp beInvisible]
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   931
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   932
    "Modified: 14.2.1997 / 17:32:42 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   933
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   934
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   935
makeReadOnly:aSymbolOrArray
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   936
    "make all components identified by aSymbolOrArray read only
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   937
     (for editText components)."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   938
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   939
    self components:aSymbolOrArray do:[:comp | comp readOnly:true]
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   940
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   941
    "Modified: 14.2.1997 / 17:36:22 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   942
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   943
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   944
makeVisible:aSymbolOrArray
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   945
    "makes the components whose id's are aSymbolOrArray visible"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   946
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   947
    self components:aSymbolOrArray do:[:comp | comp beVisible]
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   948
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   949
    "Modified: 14.2.1997 / 17:32:52 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   950
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   951
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   952
makeWritable:aSymbolOrArray
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   953
    "make all components identified by aSymbolOrArray writable 
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   954
     (for editText components)."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   955
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   956
    self components:aSymbolOrArray do:[:comp | comp readOnly:false]
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   957
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   958
    "Created: 14.2.1997 / 17:36:17 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   959
! !
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   960
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   961
!ApplicationModel methodsFor:'drag & drop'!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   962
521
2937b6c596b3 drop arg is always a collection
Claus Gittinger <cg@exept.de>
parents: 500
diff changeset
   963
canDrop:aCollectionOfDropObjects in:aComponent
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   964
    "drop manager asked if a drop is possible
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   965
     - should be redefined by apps which can do it, to return true"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   966
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   967
    ^ false
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   968
521
2937b6c596b3 drop arg is always a collection
Claus Gittinger <cg@exept.de>
parents: 500
diff changeset
   969
    "Modified: 11.4.1997 / 12:42:47 / cg"
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   970
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   971
521
2937b6c596b3 drop arg is always a collection
Claus Gittinger <cg@exept.de>
parents: 500
diff changeset
   972
drop:aCollectionOfDropObjects in:aComponent at:aPoint
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   973
    "drop manager wants to drop.
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   974
     This is ony sent, if #canDrop:in: returned true.
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   975
     Must be redefined in apps which return true to #canDrop."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   976
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   977
    self subclassResponsibility
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   978
521
2937b6c596b3 drop arg is always a collection
Claus Gittinger <cg@exept.de>
parents: 500
diff changeset
   979
    "Modified: 11.4.1997 / 12:43:19 / cg"
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   980
! !
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   981
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   982
!ApplicationModel methodsFor:'easy bindings'!
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   983
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   984
registerInterestIn:aValueModel using:aSelectorOrArray
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   985
    "Register interest in a change in aValueModel using information in aSelectorOrArray.
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   986
     aSelectorOrArray can be one of three things:  
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   987
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   988
            1) nil                  in which case no interest is registered
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   989
            2) a selector           in which case the receiver is understood to be self
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   990
            3) an Array             in which case the size is two where the first element is the
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   991
                                    message to be sent and the second element is the receiver."
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   992
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   993
    aSelectorOrArray isNil ifTrue:[^ aValueModel].
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   994
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   995
    (aSelectorOrArray isArray) ifTrue:[
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
   996
        aValueModel onChangeSend:(aSelectorOrArray at:1) to:(aSelectorOrArray at:2)
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   997
    ] ifFalse: [
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   998
        aValueModel onChangeSend:aSelectorOrArray to:self
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
   999
    ].
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1000
    ^aValueModel
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1001
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
  1002
    "Modified: / 31.10.1997 / 18:19:44 / cg"
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1003
!
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1004
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1005
valueHolderFor:aSelector initialValue:anObject
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1006
    "Return a ValueHolder on anObject." 
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1007
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1008
    ^ self valueHolderFor:aSelector initialValue:anObject changeMessage:nil
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1009
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1010
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1011
!
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1012
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
  1013
valueHolderFor:aSelector initialValue:anObject changeMessage:aSelectorOrArray
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1014
    "Return a ValueHolder on anObject.  aSelectorOrArray is the change information 
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1015
     for the ValueHolder.  This argument is either a Symbol or an Array of two elements.  
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1016
     If it is a Symbol, then it is the change message and the interested object is understood
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1017
     to be the reciever.  If it is an Array, then the first element is the change message and 
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1018
     the second element is the interested object. " 
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1019
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  1020
    (builder bindings includesKey:aSelector) ifFalse:[
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1021
        ^ self registerInterestIn:(ValueHolder with:anObject) using:aSelectorOrArray
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1022
    ].
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  1023
    ^ builder aspectAt:aSelector
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1024
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
  1025
    "Modified: / 31.10.1997 / 18:20:31 / cg"
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1026
! !
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1027
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
  1028
!ApplicationModel methodsFor:'initialization'!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
  1029
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1030
addTopViewsToCurrentProject
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1031
    "add all of my topViews to the current projects list of views.
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1032
     This allows hiding views on a per-project basis.
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1033
     Applications which do not want to be switched with projects
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1034
     (such as the Launcher), may redefine this to a noop."
85
claus
parents: 83
diff changeset
  1035
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1036
    self windowGroup topViews do:[:aView |
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1037
        aView addToCurrentProject
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1038
    ]
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1039
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1040
    "Modified: 17.1.1997 / 19:43:39 / cg"
85
claus
parents: 83
diff changeset
  1041
!
claus
parents: 83
diff changeset
  1042
63
claus
parents: 61
diff changeset
  1043
basicInitialize
69
claus
parents: 63
diff changeset
  1044
    "initialize the application.
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1045
     Since ST-80 applications seem commonly to redefine #initialize
69
claus
parents: 63
diff changeset
  1046
     without doing a super initialize, the real initialization is
claus
parents: 63
diff changeset
  1047
     done here ..."
claus
parents: 63
diff changeset
  1048
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
  1049
    super initialize.
72
claus
parents: 71
diff changeset
  1050
311
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1051
    device := Screen current.
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1052
72
claus
parents: 71
diff changeset
  1053
    "claus: I wanted to delay the creation & assignment of the
claus
parents: 71
diff changeset
  1054
     builder till later, to allow setting to another builder.
claus
parents: 71
diff changeset
  1055
     however, some ST-80 code accesses the builder right after instance
claus
parents: 71
diff changeset
  1056
     creation ..."
claus
parents: 71
diff changeset
  1057
claus
parents: 71
diff changeset
  1058
"/    "
claus
parents: 71
diff changeset
  1059
"/     Create a windowBuilder to have someone around which
claus
parents: 71
diff changeset
  1060
"/     understands the builder protocol. Since UIBuilder is not present
claus
parents: 71
diff changeset
  1061
"/     in all systems, this allows operation without one (unless a spec
claus
parents: 71
diff changeset
  1062
"/     is read later ...)
claus
parents: 71
diff changeset
  1063
"/    "
85
claus
parents: 83
diff changeset
  1064
    builder := self createBuilder.
78
claus
parents: 72
diff changeset
  1065
    builder notNil ifTrue:[builder application:self].
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
  1066
    resources := self class classResources.
311
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1067
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1068
    "Modified: 17.1.1997 / 19:41:59 / cg"
63
claus
parents: 61
diff changeset
  1069
!
claus
parents: 61
diff changeset
  1070
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1071
createBuilder 
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1072
    "create a UI Builder for me.
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1073
     This method can be redefined if (eventually) there are
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1074
     spec readers for other UI languages (motif UIL ?)"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1075
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1076
    |cls|
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1077
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1078
    (cls := UIBuilder) isNil ifTrue:[
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1079
	(cls := WindowBuilder) isNil ifTrue:[
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1080
	    ^ nil
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1081
	]
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1082
    ].
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1083
    ^ cls new
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1084
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1085
63
claus
parents: 61
diff changeset
  1086
initialize
83
claus
parents: 81
diff changeset
  1087
    "nothing done here;
claus
parents: 81
diff changeset
  1088
     but can be redefined in concrete applications"
311
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1089
!
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1090
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1091
setDevice:aDevice
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1092
    "set the device (i.e. some Screen), where the application
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1093
     shall open its view(s).
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1094
     The default device (if not set here) will be the current screen."
311
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1095
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1096
    device := aDevice
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1097
fa222d8a208c allow opening an app on another device
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
  1098
    "Created: 5.7.1996 / 12:01:40 / cg"
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1099
    "Modified: 17.1.1997 / 19:44:09 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1100
! !
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1101
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1102
!ApplicationModel methodsFor:'misc'!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1103
287
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1104
restoreCursors
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1105
    "restore the original cursors in all of my views"
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1106
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1107
    ^ self window windowGroup restoreCursors
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1108
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1109
    "Created: 1.6.1996 / 17:01:24 / cg"
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1110
!
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1111
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1112
showCursor:aCursor
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1113
    "set all of my views cursor to aCursor.
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1114
     It can be restored with #restoreCursor."
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1115
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1116
    ^ self window windowGroup showCursor:aCursor
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1117
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1118
    "Created: 1.6.1996 / 17:01:09 / cg"
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1119
!
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1120
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1121
withCursor:aCursor do:aBlock
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1122
    "evaluate aBlock, showing aCursor in my topView and all of its subviews.
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1123
     Return the value of aBlock."
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1124
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1125
    ^ self window withCursor:aCursor do:aBlock
63
claus
parents: 61
diff changeset
  1126
!
claus
parents: 61
diff changeset
  1127
142
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1128
withExecuteCursorDo:aBlock
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1129
    "evaluate aBlock, showing an executeCursor in my topView and all of its subviews.
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1130
     Return the value of aBlock."
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1131
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1132
    ^ self withCursor:(Cursor execute) do:aBlock
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1133
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1134
    "Created: 14.12.1995 / 20:57:03 / cg"
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1135
!
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1136
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1137
withReadCursorDo:aBlock
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1138
    "evaluate aBlock, showing a readCursor in my topView and all of its subviews.
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1139
     Return the value of aBlock."
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1140
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1141
    ^ self withCursor:(Cursor read) do:aBlock
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1142
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1143
    "Created: 14.12.1995 / 20:56:47 / cg"
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1144
    "Modified: 14.12.1995 / 20:57:36 / cg"
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1145
!
6c6259d788a4 added withReadCursorDo: / withExecuteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1146
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1147
withWaitCursorDo:aBlock
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1148
    "evaluate aBlock, showing a waitCursor in my topView and all of its subviews.
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1149
     Return the value of aBlock."
63
claus
parents: 61
diff changeset
  1150
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1151
    ^ self withCursor:Cursor wait do:aBlock
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
  1152
! !
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
  1153
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1154
!ApplicationModel methodsFor:'opening'!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1155
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1156
openDialog
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1157
    "open the window - assumes that the builder has already setup
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1158
     the interface."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1159
432
ba589e89a829 *** empty log message ***
ca
parents: 429
diff changeset
  1160
    ^ builder openDialog.
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1161
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1162
    "Modified: 14.2.1997 / 20:32:52 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1163
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1164
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1165
openDialogInterface:aSelector
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1166
    "open a dialog"
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1167
464
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
  1168
    ^ self openDialogInterface:aSelector withBindings:nil
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
  1169
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
  1170
    "Modified: 28.2.1997 / 14:08:01 / cg"
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
  1171
!
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
  1172
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
  1173
openDialogInterface:aSelector withBindings:bindings
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
  1174
    "open a dialog"
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
  1175
767
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1176
    ^ SimpleDialog new 
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1177
        openFor:self 
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1178
        interface:aSelector 
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1179
        withBindings:bindings
464
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 438
diff changeset
  1180
767
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1181
    "Created: / 28.2.1997 / 14:07:45 / cg"
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1182
    "Modified: / 23.1.1998 / 18:18:14 / cg"
429
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1183
!
3311c88f2a0e dialog opening stuff
ca
parents: 428
diff changeset
  1184
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1185
openWindow
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1186
    "open the window - assumes that the builder has already setup
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1187
     the interface."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1188
438
c3d379e83de7 checkin from browser
ca
parents: 437
diff changeset
  1189
    builder open.
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1190
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1191
    "Created: 14.2.1997 / 20:20:39 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1192
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1193
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1194
openWindowAt:aLocation
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1195
    "open the window - assumes that the builder has already setup
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1196
     the interface."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1197
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1198
    builder openWindowAt:aLocation.
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1199
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1200
    "Created: 14.2.1997 / 20:20:55 / cg"
657
285350fb3885 open modal
ca
parents: 614
diff changeset
  1201
!
285350fb3885 open modal
ca
parents: 614
diff changeset
  1202
285350fb3885 open modal
ca
parents: 614
diff changeset
  1203
openWindowModal
285350fb3885 open modal
ca
parents: 614
diff changeset
  1204
    "open the window - assumes that the builder has already setup
285350fb3885 open modal
ca
parents: 614
diff changeset
  1205
     the interface."
285350fb3885 open modal
ca
parents: 614
diff changeset
  1206
285350fb3885 open modal
ca
parents: 614
diff changeset
  1207
    builder openModal.
285350fb3885 open modal
ca
parents: 614
diff changeset
  1208
285350fb3885 open modal
ca
parents: 614
diff changeset
  1209
    "Created: 14.2.1997 / 20:20:39 / cg"
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1210
! !
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1211
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1212
!ApplicationModel methodsFor:'private'!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1213
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1214
opened
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1215
    "the topView has been opened.
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1216
     This is sent by my topView when its really open
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1217
     (i.e. finally visible)"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1218
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1219
    self addTopViewsToCurrentProject.
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1220
    self postOpenWith:builder
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1221
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1222
    "Modified: 14.2.1997 / 20:26:16 / cg"
594
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
  1223
!
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
  1224
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
  1225
selfResponsibleFor:aKey
da97311844fb route to masterApplication to get bindings
ca
parents: 588
diff changeset
  1226
    ^ (aKey isNil or:[masterApplication isNil or:[self respondsTo:aKey]])
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1227
! !
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1228
71
claus
parents: 69
diff changeset
  1229
!ApplicationModel methodsFor:'queries'!
claus
parents: 69
diff changeset
  1230
371
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1231
defaultWindowType
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1232
    "Applications come up non-modal, by default"
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1233
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1234
    ^ #normal
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1235
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1236
    "Created: 17.1.1997 / 19:57:34 / cg"
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1237
!
ce94ec6a38ee more ST-80 compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1238
313
09c2e83252f4 added access to graphicsDevice
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
  1239
graphicsDevice
09c2e83252f4 added access to graphicsDevice
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
  1240
    "return the device I want to open my views on.
09c2e83252f4 added access to graphicsDevice
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
  1241
     The default (if not created with #onDevice:) is the currently
09c2e83252f4 added access to graphicsDevice
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
  1242
     active screen."
09c2e83252f4 added access to graphicsDevice
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
  1243
09c2e83252f4 added access to graphicsDevice
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
  1244
    ^ device
09c2e83252f4 added access to graphicsDevice
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
  1245
09c2e83252f4 added access to graphicsDevice
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
  1246
    "Created: 5.7.1996 / 17:51:31 / cg"
09c2e83252f4 added access to graphicsDevice
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
  1247
!
09c2e83252f4 added access to graphicsDevice
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
  1248
770
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1249
interfaceSpecFor:aSelector
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1250
    "return an interface spec.
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1251
     Here, the query is forwarded to my class.
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1252
     Can be refefined in subclasses which want to provide per-instance specs."
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1253
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1254
    ^ self class interfaceSpecFor:aSelector
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1255
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1256
    "Created: / 25.1.1998 / 19:45:12 / cg"
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1257
    "Modified: / 25.1.1998 / 19:47:09 / cg"
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1258
!
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1259
71
claus
parents: 69
diff changeset
  1260
processName
claus
parents: 69
diff changeset
  1261
    "return a name to be shown for me in the process monitor"
claus
parents: 69
diff changeset
  1262
746
8e84030fcec8 default processname is name of app-class
Claus Gittinger <cg@exept.de>
parents: 730
diff changeset
  1263
    self class == ApplicationModel ifTrue:[
8e84030fcec8 default processname is name of app-class
Claus Gittinger <cg@exept.de>
parents: 730
diff changeset
  1264
        ^ 'Application'
8e84030fcec8 default processname is name of app-class
Claus Gittinger <cg@exept.de>
parents: 730
diff changeset
  1265
    ].
8e84030fcec8 default processname is name of app-class
Claus Gittinger <cg@exept.de>
parents: 730
diff changeset
  1266
    ^ self class nameWithoutPrefix
8e84030fcec8 default processname is name of app-class
Claus Gittinger <cg@exept.de>
parents: 730
diff changeset
  1267
8e84030fcec8 default processname is name of app-class
Claus Gittinger <cg@exept.de>
parents: 730
diff changeset
  1268
    "Modified: / 4.12.1997 / 12:39:14 / cg"
706
ca
parents: 685
diff changeset
  1269
!
ca
parents: 685
diff changeset
  1270
ca
parents: 685
diff changeset
  1271
resolveClassNamed:something inClass:aClass
ca
parents: 685
diff changeset
  1272
    "return the class from something, a class, symbol, string or nil.
ca
parents: 685
diff changeset
  1273
     first we are looking in the namespace of the application, than of the
ca
parents: 685
diff changeset
  1274
     current namespace and than in Smalltalk
ca
parents: 685
diff changeset
  1275
    "
ca
parents: 685
diff changeset
  1276
ca
parents: 685
diff changeset
  1277
    ^ Smalltalk resolveName:something inClass:aClass.
ca
parents: 685
diff changeset
  1278
!
ca
parents: 685
diff changeset
  1279
ca
parents: 685
diff changeset
  1280
resolveName:something
ca
parents: 685
diff changeset
  1281
    "return the class from something, a class, symbol, string or nil.
ca
parents: 685
diff changeset
  1282
     first we are looking in the namespace of the application, than of the
ca
parents: 685
diff changeset
  1283
     current namespace and than in Smalltalk
ca
parents: 685
diff changeset
  1284
    "
ca
parents: 685
diff changeset
  1285
    ^ self resolveName:something inClass:self class
ca
parents: 685
diff changeset
  1286
!
ca
parents: 685
diff changeset
  1287
ca
parents: 685
diff changeset
  1288
resolveName:something inClass:aClass
ca
parents: 685
diff changeset
  1289
    "return the class from something, a class, symbol, string or nil.
ca
parents: 685
diff changeset
  1290
     first we are looking in the namespace of the application, than of the
ca
parents: 685
diff changeset
  1291
     current namespace and than in Smalltalk
ca
parents: 685
diff changeset
  1292
    "
711
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1293
    |cls|
706
ca
parents: 685
diff changeset
  1294
711
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1295
    aClass notNil ifTrue:[
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1296
        (cls := Smalltalk resolveName:something inClass:aClass) notNil ifTrue:[
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1297
            ^ cls
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1298
        ].
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1299
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1300
        masterApplication notNil ifTrue:[
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1301
            ^ masterApplication resolveName:something
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1302
        ]
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1303
    ].
43df095ef760 resolveName:something inClass:aClass
ca
parents: 706
diff changeset
  1304
    ^ nil
71
claus
parents: 69
diff changeset
  1305
! !
claus
parents: 69
diff changeset
  1306
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1307
!ApplicationModel methodsFor:'startup / release'!
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
  1308
63
claus
parents: 61
diff changeset
  1309
allButOpenFrom:aSpec
69
claus
parents: 63
diff changeset
  1310
    "create my views but do not open the main window"
claus
parents: 63
diff changeset
  1311
723
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
  1312
    |realBuilder window|
71
claus
parents: 69
diff changeset
  1313
72
claus
parents: 71
diff changeset
  1314
"/ DISABLED; see comment in basicInitialize
claus
parents: 71
diff changeset
  1315
"/
claus
parents: 71
diff changeset
  1316
"/    "
claus
parents: 71
diff changeset
  1317
"/     here, we kludge a bit: up to now, the builder was an
claus
parents: 71
diff changeset
  1318
"/     instance of the no-op WindowBuilder. Now, it becomes
claus
parents: 71
diff changeset
  1319
"/     a UIBuilder ....
claus
parents: 71
diff changeset
  1320
"/     This allows for ApplicationModels without a UIBuilder
claus
parents: 71
diff changeset
  1321
"/     if not needed.
claus
parents: 71
diff changeset
  1322
"/    "
claus
parents: 71
diff changeset
  1323
"/    realBuilder := UIBuilder new.
claus
parents: 71
diff changeset
  1324
"/    builder := realBuilder.
claus
parents: 71
diff changeset
  1325
"/    builder application:self.
claus
parents: 71
diff changeset
  1326
"/    builder bindings:builder bindings.
71
claus
parents: 69
diff changeset
  1327
63
claus
parents: 61
diff changeset
  1328
    self preBuildWith:builder.
claus
parents: 61
diff changeset
  1329
    builder buildFromSpec:aSpec.
723
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
  1330
    window := builder window.
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
  1331
    window model:self.
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
  1332
    (window respondsTo:#application:) ifTrue:[
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
  1333
        window application:self.
472
40eaf3d339c9 set application after allButOpenFrom:
ca
parents: 464
diff changeset
  1334
    ].
63
claus
parents: 61
diff changeset
  1335
    self postBuildWith:builder.
723
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
  1336
1b6645c38f89 class queries for aspect
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
  1337
    "Modified: / 26.10.1997 / 12:51:12 / cg"
63
claus
parents: 61
diff changeset
  1338
!
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
  1339
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1340
allButOpenInterface:aSymbol
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1341
    "create my views but do not open the main window"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1342
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1343
    |spec|
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1344
770
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1345
    spec := self interfaceSpecFor:aSymbol.
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1346
    self allButOpenFrom:spec.
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1347
    ^ builder
770
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1348
86ff2c263a8d instance asks class for #interfaceSpecFor:
Claus Gittinger <cg@exept.de>
parents: 767
diff changeset
  1349
    "Modified: / 25.1.1998 / 19:45:29 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1350
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1351
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1352
close
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1353
    "this is sent by my topView when about to be closed
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1354
     by the program (not by the windowManager).
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1355
     Could be redefined in subclasses."
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1356
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1357
    self closeDownViews
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1358
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1359
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1360
closeDownViews
435
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1361
    "close down the applications view(s)"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1362
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1363
    |wg views|
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1364
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1365
    (wg := self windowGroup) notNil ifTrue:[
435
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1366
        views := wg topViews.
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1367
        views notNil ifTrue:[
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1368
            views copy do:[:aView |
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1369
                aView notNil ifTrue:[aView destroy]
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1370
            ]
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1371
        ]
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1372
    ]
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1373
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1374
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1375
closeRequest
482
c357e80669e9 close -> closeRequest leads to a cycle with ST-80 apps;
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  1376
    "this is sent by my topView when about to be closed
786
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1377
     by the windowManager.
482
c357e80669e9 close -> closeRequest leads to a cycle with ST-80 apps;
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  1378
     Could be redefined in subclasses to suppress close or confirm."
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1379
786
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1380
    |sav|
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1381
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1382
    masterApplication notNil ifTrue:[
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1383
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1384
        "/ temporary clear my masterApplication to prevent
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1385
        "/ endless recursion, in case the master sends me
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1386
        "/ a closeRequest (although, it is supposed to
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1387
        "/ send me a closeDownViews ...)
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1388
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1389
        sav := masterApplication.
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1390
        masterApplication := nil.
787
fced0a358392 bug fix:
ca
parents: 786
diff changeset
  1391
        sav closeRequestFor:(self window).
786
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1392
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1393
        "/ restore - in case master did not want me to close ...
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1394
        masterApplication := sav.
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1395
    ] ifFalse:[
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1396
        self closeDownViews
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1397
    ].
482
c357e80669e9 close -> closeRequest leads to a cycle with ST-80 apps;
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  1398
c357e80669e9 close -> closeRequest leads to a cycle with ST-80 apps;
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  1399
    "Modified: 4.3.1997 / 00:48:15 / cg"
435
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1400
!
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1401
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1402
closeRequestFor:aTopView
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1403
    "this is sent by any of my topViews when about to be closed by the
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1404
     windowmanager. For backward compatibility with single-view applications,
786
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1405
     this is forwarded here to a simple (non topView-specific) closeRequest,
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1406
     effectively closing all of my views.
435
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1407
     MultiView applications should redefine this method if closing of individual
786
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1408
     views closing is to be caught and/or should not close all of them."
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1409
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1410
    |sav|
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1411
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1412
    masterApplication notNil ifTrue:[
435
68081adabd45 checkin from browser
ca
parents: 432
diff changeset
  1413
786
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1414
        "/ temporary clear my masterApplication to prevent
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1415
        "/ endless recursion, in case the master sends me
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1416
        "/ a closeRequest (although, it is supposed to
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1417
        "/ send me a closeDownViews ...)
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1418
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1419
        sav := masterApplication.
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1420
        masterApplication := nil.
788
48a926974696 checkin from browser
tz
parents: 787
diff changeset
  1421
        sav closeRequestFor:(self window).
786
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1422
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1423
        "/ restore - in case master did not want me to close ...
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1424
        masterApplication := sav.
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1425
    ] ifFalse:[
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1426
        self closeRequest
91d5639d9999 forward closeRequests to my masterApp, if I have one.
ca
parents: 770
diff changeset
  1427
    ]
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1428
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1429
69
claus
parents: 63
diff changeset
  1430
open
claus
parents: 63
diff changeset
  1431
    "open a standard interface"
claus
parents: 63
diff changeset
  1432
240
09028fa9ff5f return app in class>>open
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
  1433
    ^ self openInterface
09028fa9ff5f return app in class>>open
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
  1434
09028fa9ff5f return app in class>>open
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
  1435
    "Modified: 3.5.1996 / 13:39:15 / cg"
69
claus
parents: 63
diff changeset
  1436
!
claus
parents: 63
diff changeset
  1437
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1438
openAt:aPoint
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1439
    "open a standard interface at some point"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1440
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1441
    ^ self openInterfaceAt:aPoint
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1442
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1443
    "Modified: 3.5.1996 / 13:39:15 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1444
    "Created: 14.2.1997 / 20:17:41 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1445
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1446
63
claus
parents: 61
diff changeset
  1447
openInterface
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1448
    "open a standard interface.
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1449
78
claus
parents: 72
diff changeset
  1450
     Subclasses which do not have an interfaceSpec 
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1451
     should redefine this method and create & open their view(s) there.
330
d7ce98930ad3 Rename Launcher-->OldLauncher, NewLauncher-->Launcher.
Stefan Vogel <sv@exept.de>
parents: 313
diff changeset
  1452
     (see Launcher as an example)."
69
claus
parents: 63
diff changeset
  1453
767
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1454
    ^ self openInterface:#windowSpec
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1455
767
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1456
    "Modified: / 9.9.1996 / 22:39:23 / stefan"
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1457
    "Modified: / 23.1.1998 / 18:16:50 / cg"
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
  1458
!
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
  1459
63
claus
parents: 61
diff changeset
  1460
openInterface:aSymbol
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1461
    "open a specific interface. 
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1462
     The argument, aSymbol specifies which interface. The concrete
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1463
     application subclass must provide a method with that name,
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1464
     which must return an interfaceSpec. This is forwarded to
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1465
     the builder to create the views.
69
claus
parents: 63
diff changeset
  1466
     Typically, applications only use one interface, 
78
claus
parents: 72
diff changeset
  1467
     returned by the #windowSpec method."
69
claus
parents: 63
diff changeset
  1468
85
claus
parents: 83
diff changeset
  1469
    self allButOpenInterface:aSymbol.
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1470
    self openWindow.
63
claus
parents: 61
diff changeset
  1471
    ^ builder
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1472
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1473
    "Modified: 14.2.1997 / 20:25:33 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1474
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1475
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1476
openInterface:aSymbol at:aLocation
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1477
    "open a specific interface. 
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1478
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1479
     The argument, aSymbol specifies which interface. The concrete
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1480
     application subclass must provide a method with that name,
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1481
     which must return an interfaceSpec. This is forwarded to
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1482
     the builder to create the views.
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1483
     Typically, applications only use one interface, 
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1484
     returned by the #windowSpec method."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1485
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1486
    self allButOpenInterface:aSymbol.
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1487
    self openWindowAt:aLocation.
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1488
    ^ builder
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1489
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1490
    "Created: 14.2.1997 / 20:19:44 / cg"
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1491
!
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1492
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1493
openInterfaceAt:aLocation
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1494
    "open a standard interface."
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1495
767
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1496
    ^ self openInterface:#windowSpec at:aLocation
428
25f3b4964f14 more startup variations
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
  1497
767
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1498
    "Created: / 14.2.1997 / 20:18:20 / cg"
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1499
    "Modified: / 23.1.1998 / 18:17:13 / cg"
63
claus
parents: 61
diff changeset
  1500
!
claus
parents: 61
diff changeset
  1501
657
285350fb3885 open modal
ca
parents: 614
diff changeset
  1502
openInterfaceModal
285350fb3885 open modal
ca
parents: 614
diff changeset
  1503
    "open a standard interface.
285350fb3885 open modal
ca
parents: 614
diff changeset
  1504
285350fb3885 open modal
ca
parents: 614
diff changeset
  1505
     Subclasses which do not have an interfaceSpec 
285350fb3885 open modal
ca
parents: 614
diff changeset
  1506
     should redefine this method and create & open their view(s) there.
285350fb3885 open modal
ca
parents: 614
diff changeset
  1507
     (see Launcher as an example)."
285350fb3885 open modal
ca
parents: 614
diff changeset
  1508
767
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1509
    ^ self openInterfaceModal:#windowSpec
657
285350fb3885 open modal
ca
parents: 614
diff changeset
  1510
767
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1511
    "Modified: / 9.9.1996 / 22:39:23 / stefan"
acc3850cbf7e pass return values of openXX messages back to caller
Claus Gittinger <cg@exept.de>
parents: 746
diff changeset
  1512
    "Modified: / 23.1.1998 / 18:17:17 / cg"
657
285350fb3885 open modal
ca
parents: 614
diff changeset
  1513
!
285350fb3885 open modal
ca
parents: 614
diff changeset
  1514
285350fb3885 open modal
ca
parents: 614
diff changeset
  1515
openInterfaceModal:aSymbol
285350fb3885 open modal
ca
parents: 614
diff changeset
  1516
    "open a specific interface. 
285350fb3885 open modal
ca
parents: 614
diff changeset
  1517
     The argument, aSymbol specifies which interface. The concrete
285350fb3885 open modal
ca
parents: 614
diff changeset
  1518
     application subclass must provide a method with that name,
285350fb3885 open modal
ca
parents: 614
diff changeset
  1519
     which must return an interfaceSpec. This is forwarded to
285350fb3885 open modal
ca
parents: 614
diff changeset
  1520
     the builder to create the views.
285350fb3885 open modal
ca
parents: 614
diff changeset
  1521
     Typically, applications only use one interface, 
285350fb3885 open modal
ca
parents: 614
diff changeset
  1522
     returned by the #windowSpec method."
285350fb3885 open modal
ca
parents: 614
diff changeset
  1523
285350fb3885 open modal
ca
parents: 614
diff changeset
  1524
    self allButOpenInterface:aSymbol.
285350fb3885 open modal
ca
parents: 614
diff changeset
  1525
    self openWindowModal.
285350fb3885 open modal
ca
parents: 614
diff changeset
  1526
    ^ builder
285350fb3885 open modal
ca
parents: 614
diff changeset
  1527
285350fb3885 open modal
ca
parents: 614
diff changeset
  1528
    "Modified: 14.2.1997 / 20:25:33 / cg"
285350fb3885 open modal
ca
parents: 614
diff changeset
  1529
!
285350fb3885 open modal
ca
parents: 614
diff changeset
  1530
285350fb3885 open modal
ca
parents: 614
diff changeset
  1531
openModal
285350fb3885 open modal
ca
parents: 614
diff changeset
  1532
    "open a standard interface"
285350fb3885 open modal
ca
parents: 614
diff changeset
  1533
285350fb3885 open modal
ca
parents: 614
diff changeset
  1534
    ^ self openInterfaceModal
285350fb3885 open modal
ca
parents: 614
diff changeset
  1535
285350fb3885 open modal
ca
parents: 614
diff changeset
  1536
    "Modified: 3.5.1996 / 13:39:15 / cg"
285350fb3885 open modal
ca
parents: 614
diff changeset
  1537
!
285350fb3885 open modal
ca
parents: 614
diff changeset
  1538
362
52212e2a8c84 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
  1539
openOnDevice:aDevice
52212e2a8c84 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
  1540
    "open a standard interface on some other device"
52212e2a8c84 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
  1541
52212e2a8c84 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
  1542
    self setDevice:aDevice.
52212e2a8c84 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
  1543
    ^ self open
52212e2a8c84 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
  1544
52212e2a8c84 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
  1545
    "Created: 13.1.1997 / 21:24:11 / cg"
52212e2a8c84 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
  1546
    "Modified: 13.1.1997 / 21:24:30 / cg"
52212e2a8c84 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
  1547
!
52212e2a8c84 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
  1548
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1549
postBuildWith:aBuilder
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1550
    "this is sent after an interface is built from a spec.
657
285350fb3885 open modal
ca
parents: 614
diff changeset
  1551
     Can be redefined in subclasses for additional setup after
285350fb3885 open modal
ca
parents: 614
diff changeset
  1552
     the view has been built, but not yet opened."
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1553
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1554
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1555
postOpenWith:aBuilder
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1556
    "this is sent after the applications main window is opened.
730
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
  1557
     Can be redefined in subclasses for actions after opening the view."
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
  1558
cc391efb62c0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 723
diff changeset
  1559
    "Modified: / 31.10.1997 / 17:55:54 / cg"
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1560
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1561
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1562
preBuildWith:aBuilder
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1563
    "this is sent before an interface is built from a spec.
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1564
     Can be redefined in subclasses.
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1565
     mhmh - what should this do here ?"
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1566
!
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1567
69
claus
parents: 63
diff changeset
  1568
restarted
287
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1569
    "sent by my topWindow, when restarted from an image.
69
claus
parents: 63
diff changeset
  1570
     Nothing done here, but can be redefined to perform any actions
claus
parents: 63
diff changeset
  1571
     required to reset the application after an image-restart.
claus
parents: 63
diff changeset
  1572
     (for example: check if application files are still around, restart
287
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1573
      subprocesses etc.)."
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1574
7a733e0b5465 cursor stuff
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
  1575
    "Modified: 1.6.1996 / 16:55:50 / cg"
63
claus
parents: 61
diff changeset
  1576
!
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
  1577
63
claus
parents: 61
diff changeset
  1578
saveAndTerminateRequest
claus
parents: 61
diff changeset
  1579
    "some windowManagers send this to shut down an application
claus
parents: 61
diff changeset
  1580
     and have it save its state for restart.
claus
parents: 61
diff changeset
  1581
     Can be redefined in subclasses"
claus
parents: 61
diff changeset
  1582
claus
parents: 61
diff changeset
  1583
    self closeRequest
437
092e025be49e checkin from browser
ca
parents: 435
diff changeset
  1584
!
092e025be49e checkin from browser
ca
parents: 435
diff changeset
  1585
092e025be49e checkin from browser
ca
parents: 435
diff changeset
  1586
saveAndTerminateRequestFor:aTopView
092e025be49e checkin from browser
ca
parents: 435
diff changeset
  1587
    "some windowManagers send this to shut down an application
092e025be49e checkin from browser
ca
parents: 435
diff changeset
  1588
     and have it save its state for restart.
092e025be49e checkin from browser
ca
parents: 435
diff changeset
  1589
     Can be redefined in subclasses"
092e025be49e checkin from browser
ca
parents: 435
diff changeset
  1590
092e025be49e checkin from browser
ca
parents: 435
diff changeset
  1591
    self saveAndTerminateRequest
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
  1592
! !
72
claus
parents: 71
diff changeset
  1593
85
claus
parents: 83
diff changeset
  1594
!ApplicationModel methodsFor:'window events'!
claus
parents: 83
diff changeset
  1595
144
a75a0c558a77 activity notification added
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
  1596
showActivity:someMessage
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1597
    "some activityNotification shalt be communicated to
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1598
     the user. Forwarded from the topView and ignored here.
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1599
     Can be redefined in concrete applications to show the
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1600
     message either in some infoView (infoLabel as in Windows)
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1601
     or in the title area (as done in the browsers)"
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1602
144
a75a0c558a77 activity notification added
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
  1603
    ^ self
a75a0c558a77 activity notification added
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
  1604
a75a0c558a77 activity notification added
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
  1605
    "Created: 16.12.1995 / 18:41:04 / cg"
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1606
    "Modified: 24.4.1996 / 09:34:22 / cg"
144
a75a0c558a77 activity notification added
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
  1607
!
a75a0c558a77 activity notification added
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
  1608
85
claus
parents: 83
diff changeset
  1609
windowEvent:anEvent from:anApplicationWindow
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1610
    "dummy: windowEvent forwarding is not yet implemented"
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1611
85
claus
parents: 83
diff changeset
  1612
    ^ self
215
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1613
369b0376e859 commentary
Claus Gittinger <cg@exept.de>
parents: 187
diff changeset
  1614
    "Modified: 24.4.1996 / 09:32:50 / cg"
85
claus
parents: 83
diff changeset
  1615
! !
claus
parents: 83
diff changeset
  1616
361
765fe20a26d1 fixed #openOnDevice:;
Claus Gittinger <cg@exept.de>
parents: 330
diff changeset
  1617
!ApplicationModel class methodsFor:'documentation'!
72
claus
parents: 71
diff changeset
  1618
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1619
version
849
7e234a4ccaf6 access mechanism for aspects
ca
parents: 825
diff changeset
  1620
    ^ '$Header: /cvs/stx/stx/libview2/ApplicationModel.st,v 1.72 1998-02-25 14:31:49 ca Exp $'
81
claus
parents: 78
diff changeset
  1621
! !
138
492fb73ca439 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 114
diff changeset
  1622
ApplicationModel initialize!