SimpleDialog.st
author james
Thu, 18 Dec 2003 11:52:39 +0100
changeset 1881 22a568696a7b
parent 1793 eba6da749414
child 1943 0cff3328cb36
permissions -rw-r--r--
doAcceptByReturnKey and doCancelByEscapeKey pushed up to ApplicationModel. Needed when calls openModel is called.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 1996 by eXept Software AG
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
1373
c04eea37d7db Fix typos in comment.
Stefan Vogel <sv@exept.de>
parents: 1346
diff changeset
    14
"{ Package: 'stx:libview2' }"
c04eea37d7db Fix typos in comment.
Stefan Vogel <sv@exept.de>
parents: 1346
diff changeset
    15
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
ApplicationModel subclass:#SimpleDialog
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    17
	instanceVariableNames:'accept cancel close escapeIsCancel postBuildBlock postOpenBlock
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
    18
		preBuildBlock closeAllowedChannel'
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	classVariableNames:''
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	poolDictionaries:''
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	category:'Interface-Framework'
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
!SimpleDialog class methodsFor:'documentation'!
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
copyright
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
 COPYRIGHT (c) 1996 by eXept Software AG
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
              All Rights Reserved
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 This software is furnished under a license and may be used
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 only in accordance with the terms of that license and with the
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 inclusion of the above copyright notice.   This software may not
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 be provided or otherwise made available to, or used by, any
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 other person.  No title to or ownership of the software is
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
 hereby transferred.
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
documentation
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
"
1589
2c0a2c71d775 Update docu
Stefan Vogel <sv@exept.de>
parents: 1551
diff changeset
    43
    Use SimpleDialog to specify Dialogs with a windowSpec built by the GUI Builder.
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    Notice: this class was implemented using protocol information
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    from alpha testers and PD code - it may not be complete or compatible to
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    the corresponding ST-80 class. If you encounter any incompatibilities,
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    please forward a note to the ST/X team.
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    [author:]
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
        Claus Gittinger
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    [see also:]
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
        StandardSystemView
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
        WindowGroup DeviceWorkstation DialogBox
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
! !
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
906
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    59
!SimpleDialog class methodsFor:'queries'!
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    60
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    61
isVisualStartable
1427
b3e355574ccf comment only
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
    62
    "return true, if this application can be started via #open.
b3e355574ccf comment only
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
    63
     (to allow start of a change browser via double-click in the browser)"
906
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    64
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    65
    self == SimpleDialog ifTrue:[^false].
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    66
    ^super isVisualStartable
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    67
! !
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    68
976
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    69
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    70
!SimpleDialog methodsFor:'accessing'!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    71
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    72
accept
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
    73
    "return the valueholder which gets set by the accept button.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
    74
     Also, when this valueHolder gets a true stuffed into it, the
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
    75
     dialog is closed."
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    76
1640
5bd912083327 Initialize accept and cancel valueHolders
Stefan Vogel <sv@exept.de>
parents: 1598
diff changeset
    77
    accept isNil ifTrue:[
5bd912083327 Initialize accept and cancel valueHolders
Stefan Vogel <sv@exept.de>
parents: 1598
diff changeset
    78
        accept := false asValue.
5bd912083327 Initialize accept and cancel valueHolders
Stefan Vogel <sv@exept.de>
parents: 1598
diff changeset
    79
    ].
5bd912083327 Initialize accept and cancel valueHolders
Stefan Vogel <sv@exept.de>
parents: 1598
diff changeset
    80
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    81
    ^ accept
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
    82
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
    83
    "Modified: / 20.5.1998 / 20:51:05 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    84
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    85
1381
1035403e302e added #accepted
Claus Gittinger <cg@exept.de>
parents: 1375
diff changeset
    86
accepted
1035403e302e added #accepted
Claus Gittinger <cg@exept.de>
parents: 1375
diff changeset
    87
    "after the box has closed:
1035403e302e added #accepted
Claus Gittinger <cg@exept.de>
parents: 1375
diff changeset
    88
         return true if accepted, false if canceled"
1035403e302e added #accepted
Claus Gittinger <cg@exept.de>
parents: 1375
diff changeset
    89
1035403e302e added #accepted
Claus Gittinger <cg@exept.de>
parents: 1375
diff changeset
    90
    ^ self accept value
1035403e302e added #accepted
Claus Gittinger <cg@exept.de>
parents: 1375
diff changeset
    91
1035403e302e added #accepted
Claus Gittinger <cg@exept.de>
parents: 1375
diff changeset
    92
!
1035403e302e added #accepted
Claus Gittinger <cg@exept.de>
parents: 1375
diff changeset
    93
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    94
bindings
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
    95
    "return my builders bindings"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
    96
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    97
    ^ builder bindings
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
    98
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
    99
    "Modified: / 20.5.1998 / 20:51:15 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   100
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   101
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   102
cancel
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   103
    "return the valueholder which gets set by the cancel button.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   104
     Also, when this valueHolder gets a true stuffed into it, the
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   105
     dialog is closed."
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   106
1640
5bd912083327 Initialize accept and cancel valueHolders
Stefan Vogel <sv@exept.de>
parents: 1598
diff changeset
   107
    cancel isNil ifTrue:[
5bd912083327 Initialize accept and cancel valueHolders
Stefan Vogel <sv@exept.de>
parents: 1598
diff changeset
   108
        cancel := false asValue.
5bd912083327 Initialize accept and cancel valueHolders
Stefan Vogel <sv@exept.de>
parents: 1598
diff changeset
   109
    ].
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   110
    ^ cancel
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   111
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   112
    "Modified: / 20.5.1998 / 20:51:02 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   113
!
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   114
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   115
closeAllowedChannel
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   116
    "return the value-provider which controls if close is allowed.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   117
     This is initialized to true."
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   118
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   119
    ^ closeAllowedChannel
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   120
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   121
    "Created: / 20.5.1998 / 21:52:32 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   122
    "Modified: / 20.5.1998 / 21:53:18 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   123
!
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   124
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   125
closeAllowedChannel:aValueHolderOrBlock
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   126
    "set a value-provider which controls if close is allowed."
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   127
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   128
    ^ closeAllowedChannel
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   129
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   130
    "Created: / 20.5.1998 / 21:52:53 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   131
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   132
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   133
closeChannel
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   134
    "return the closeChannel; If a true is stuffed into this valueHolder,
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   135
     I will close myself."
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   136
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   137
    ^ close
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   138
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   139
    "Modified: / 20.5.1998 / 20:52:29 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   140
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   141
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   142
escapeIsCancel
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   143
    "return the escapeIsCancel setting"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   144
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   145
    ^ escapeIsCancel
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   146
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   147
    "Modified: / 20.5.1998 / 20:52:44 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   148
!
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   149
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   150
escapeIsCancel:something
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   151
    "set/clear the escapeIsCancel option.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   152
     If on, an ESC-key will be treated like a cancel action."
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   153
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   154
    escapeIsCancel := something.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   155
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   156
    "Modified: / 20.5.1998 / 20:53:23 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   157
!
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   158
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   159
postBuildBlock:something
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   160
    "set postBuildBlock; if non-nil, this is evaluated after the build process"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   161
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   162
    postBuildBlock := something.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   163
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   164
    "Modified: / 20.5.1998 / 20:54:06 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   165
!
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   166
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   167
postOpenBlock:something
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   168
    "set the postBuildBlock; if non-nil, this is evaluated after the view is opened"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   169
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   170
    postOpenBlock := something.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   171
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   172
    "Modified: / 20.5.1998 / 20:54:23 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   173
!
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   174
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   175
preBuildBlock:something
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   176
    "set the preBuildBlock; if non-nil, this is evaluated before the view is constructed"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   177
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   178
    preBuildBlock := something.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   179
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   180
    "Modified: / 20.5.1998 / 20:54:41 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   181
!
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   182
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   183
source:anApplication
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   184
    "define the application which provides resources, aspects etc."
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   185
1067
5b39cef366fe also set the masterApplication when a simpleDialogs source
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
   186
    builder source:anApplication.
5b39cef366fe also set the masterApplication when a simpleDialogs source
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
   187
    masterApplication isNil ifTrue:[
1440
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   188
        anApplication ~~ self ifTrue:[
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   189
            masterApplication := anApplication
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   190
        ]
1067
5b39cef366fe also set the masterApplication when a simpleDialogs source
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
   191
    ].
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   192
1067
5b39cef366fe also set the masterApplication when a simpleDialogs source
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
   193
    "Modified: / 8.9.1998 / 01:46:06 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   194
! !
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   195
1397
47ac1d3e1df1 category changes
Claus Gittinger <cg@exept.de>
parents: 1381
diff changeset
   196
!SimpleDialog methodsFor:'accessing-window'!
481
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   197
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   198
minWidth:nPixels
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   199
    |w box |
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   200
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   201
    w := builder window width.
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   202
    builder window width:(w max:nPixels).
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   203
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   204
"/    box := builder window displayBox.
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   205
"/    box width: (box width max: nPixels).
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   206
"/    builder window displayBox: box
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   207
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   208
    "Modified: 3.3.1997 / 21:56:27 / cg"
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   209
! !
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   210
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   211
!SimpleDialog methodsFor:'events'!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   212
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   213
closeAccept
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   214
    "accept was pressed. close the dialog"
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   215
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   216
    self requestForWindowClose ifTrue:[
1129
0d5fd9b819a9 autoAccept
Claus Gittinger <cg@exept.de>
parents: 1067
diff changeset
   217
        builder keyboardProcessor requestGlobalAutoAccept ifTrue:[
0d5fd9b819a9 autoAccept
Claus Gittinger <cg@exept.de>
parents: 1067
diff changeset
   218
            self closeWindow
0d5fd9b819a9 autoAccept
Claus Gittinger <cg@exept.de>
parents: 1067
diff changeset
   219
        ]
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   220
    ]
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   221
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   222
    "Modified: 17.6.1997 / 14:10:23 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   223
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   224
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   225
closeCancel
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   226
    "cancel was pressed. close the dialog"
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   227
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   228
    self requestForWindowClose ifTrue:[
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   229
        self closeWindow
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   230
    ]
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   231
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   232
    "Modified: 17.6.1997 / 14:10:29 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   233
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   234
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   235
closeWindow
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   236
    "close the dialog"
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   237
1053
0d77637f9d45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 978
diff changeset
   238
    |c|
0d77637f9d45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 978
diff changeset
   239
0d77637f9d45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 978
diff changeset
   240
    c := self closeChannel.
0d77637f9d45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 978
diff changeset
   241
    c retractInterestsFor:self.
0d77637f9d45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 978
diff changeset
   242
    c value:true.
903
b9e0882bd2f4 checkin from browser
tz
parents: 902
diff changeset
   243
    "/ must destroy - otherwise there is no #release to
b9e0882bd2f4 checkin from browser
tz
parents: 902
diff changeset
   244
    "/ the  controllers (onChangeSend-dependency problem)
902
4851101e5b8c checkin from browser
tz
parents: 766
diff changeset
   245
    builder window destroy. "/ hide
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   246
1053
0d77637f9d45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 978
diff changeset
   247
    "Modified: / 24.8.1998 / 17:45:56 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   248
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   249
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   250
requestForWindowClose
1373
c04eea37d7db Fix typos in comment.
Stefan Vogel <sv@exept.de>
parents: 1346
diff changeset
   251
    "the dialog is about to be closed - this method is invoked and may
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   252
     return false to suppress the close.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   253
     Here the value of closeAllowedChannel is returned, which is
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   254
     set to true initially.
1373
c04eea37d7db Fix typos in comment.
Stefan Vogel <sv@exept.de>
parents: 1346
diff changeset
   255
     You may redefined this in a special dialog, and/or provide a boolean
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   256
     valueHolder or a boolean block via the #closeAllowedChannel: method."
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   257
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   258
    ^ closeAllowedChannel value
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   259
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   260
    "Modified: / 20.5.1998 / 21:52:25 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   261
! !
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   262
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   263
!SimpleDialog methodsFor:'forced actions'!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   264
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   265
doAccept
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   266
    "force accept"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   267
1640
5bd912083327 Initialize accept and cancel valueHolders
Stefan Vogel <sv@exept.de>
parents: 1598
diff changeset
   268
    self accept value:true
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   269
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   270
    "Created: / 18.10.1997 / 05:18:09 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   271
    "Modified: / 20.5.1998 / 21:53:35 / cg"
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   272
!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   273
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   274
doCancel
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   275
    "force cancel"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   276
1640
5bd912083327 Initialize accept and cancel valueHolders
Stefan Vogel <sv@exept.de>
parents: 1598
diff changeset
   277
    self cancel value:true
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   278
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   279
    "Created: / 18.10.1997 / 05:18:22 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   280
    "Modified: / 20.5.1998 / 21:53:40 / cg"
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   281
! !
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   282
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   283
!SimpleDialog methodsFor:'initialization'!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   284
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   285
initialize
935
ccb6caad1da0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   286
    accept := (ValueHolder with:false).
ccb6caad1da0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   287
    close := (ValueHolder with:false).
ccb6caad1da0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   288
    cancel := (ValueHolder with:false).
978
cd056a68d67a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   289
    self createBuilder.
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   290
    builder aspectAt:#accept put:accept.
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   291
    builder aspectAt:#close put:close.
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   292
    builder aspectAt:#cancel put:cancel.
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   293
    escapeIsCancel := true.
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   294
    closeAllowedChannel := true
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   295
978
cd056a68d67a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   296
    "Modified: / 19.6.1998 / 03:35:48 / cg"
476
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   297
!
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   298
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   299
initializeBuilderFor:aView 
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   300
    aView notNil ifTrue:[
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   301
        builder window:aView.
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   302
    ]
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   303
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   304
    "Created: 3.3.1997 / 16:23:04 / cg"
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   305
!
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   306
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   307
initializeWindowFor:aView
679
0f94c493751c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 605
diff changeset
   308
    |v|
476
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   309
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   310
    (v := aView) isNil ifTrue:[
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   311
        v := ModalBox new.
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   312
    ].
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   313
481
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   314
    builder setupWindowFor:v.
476
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   315
481
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   316
    "Modified: 3.3.1997 / 20:39:46 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   317
! !
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   318
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   319
!SimpleDialog methodsFor:'interface opening'!
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   320
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   321
allButOpenFrom:aSpec
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   322
    "create my views but do not open the main window"
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   323
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   324
    super allButOpenFrom:aSpec.
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   325
    self preOpen
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   326
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   327
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   328
openFor:anApplication interface:aSelector
465
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   329
    "open the dialog for some appModel from a given spec;
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   330
     Return true if accepted, false if canceled"
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   331
464
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   332
    ^ self openFor:anApplication interface:aSelector withBindings:nil
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   333
465
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   334
    "Modified: 28.2.1997 / 16:22:08 / cg"
464
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   335
!
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   336
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   337
openFor:anApplication interface:aSelector withBindings:bindings
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   338
    "open the dialog for some appModel from a given specSymbol;
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   339
     the application must provide an interfaceSpec for that symbol.
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   340
     The bindings argument may provide overwriting bindings for the
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   341
     dialog.
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   342
     Return true if accepted, false if canceled"
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   343
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   344
    ^ self
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   345
        openFor:anApplication 
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   346
        interfaceSpec:(anApplication class interfaceSpecFor:aSelector)
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   347
        withBindings:bindings
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   348
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   349
    "Modified: 18.10.1997 / 04:43:13 / cg"
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   350
!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   351
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   352
openFor:anApplication interfaceSpec:aSpec withBindings:bindings
465
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   353
    "open the dialog for some appModel from a given spec;
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   354
     the bindings argument may provide overwriting bindings for the
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   355
     dialog.
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   356
     Return true if accepted, false if canceled"
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   357
1491
6a1c859f50da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1441
diff changeset
   358
    |app|
6a1c859f50da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1441
diff changeset
   359
464
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   360
    builder addBindings:bindings.
1491
6a1c859f50da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1441
diff changeset
   361
    (app := anApplication) isNil ifTrue:[
6a1c859f50da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1441
diff changeset
   362
        app := ApplicationModel new
6a1c859f50da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1441
diff changeset
   363
    ].
6a1c859f50da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1441
diff changeset
   364
    self source:app.
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   365
    ^ self openFrom:aSpec
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   366
465
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   367
    "Modified: 28.2.1997 / 16:22:00 / cg"
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   368
    "Created: 18.10.1997 / 04:41:29 / cg"
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   369
!
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   370
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   371
openFor:anApplication spec:aSpec withBindings:bindings
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   372
    "open the dialog for some appModel from a given spec.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   373
     The bindings argument may provide overwriting bindings for the
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   374
     dialog.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   375
     Return true if accepted, false if canceled"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   376
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   377
    ^ self
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   378
        openFor:anApplication 
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   379
        interfaceSpec:aSpec
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   380
        withBindings:bindings
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   381
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   382
    "Modified: / 18.10.1997 / 04:43:13 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   383
    "Created: / 20.5.1998 / 20:28:29 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   384
!
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   385
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   386
openFrom:anInterfaceSpec
466
784ed480f4eb comments
Claus Gittinger <cg@exept.de>
parents: 465
diff changeset
   387
    "open the dialog from a given spec;
784ed480f4eb comments
Claus Gittinger <cg@exept.de>
parents: 465
diff changeset
   388
     return true if accepted, false if canceled"
784ed480f4eb comments
Claus Gittinger <cg@exept.de>
parents: 465
diff changeset
   389
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   390
    self allButOpenFrom:anInterfaceSpec.
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   391
    self openDialog.
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   392
    ^ accept value
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   393
466
784ed480f4eb comments
Claus Gittinger <cg@exept.de>
parents: 465
diff changeset
   394
    "Modified: 28.2.1997 / 16:40:36 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   395
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   396
1441
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   397
openInterface:aSymbol
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   398
    "open a standard interface.
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   399
     Redefined to return the accept value instead of the builder."
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   400
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   401
    super openInterfaceModal:aSymbol.
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   402
    ^ accept value.
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   403
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   404
    "Created: / 23.1.1998 / 18:19:57 / cg"
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   405
    "Modified: / 20.5.1998 / 20:21:28 / cg"
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   406
!
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   407
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   408
openSpec:aWindowSpec
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   409
    "open a window spec.
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   410
     Redefned to open modal and to return the accept value instead 
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   411
     of the builder."
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   412
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   413
    super openSpecModal:aWindowSpec.
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   414
    ^ accept value.
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   415
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   416
    "Modified: / 22.4.1998 / 11:59:05 / cg"
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   417
    "Created: / 20.5.1998 / 20:21:17 / cg"
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   418
!
2777d3f49053 category changes
Claus Gittinger <cg@exept.de>
parents: 1440
diff changeset
   419
1440
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   420
openSpec:anInterfaceSpec withBindings:bindings
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   421
    "open the dialog with a given spec;
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   422
     The bindings argument is mandatory and provides aspect bindings for the
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   423
     dialog.
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   424
     Return true if accepted, false if canceled"
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   425
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   426
    ^ self
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   427
        openFor:self 
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   428
        interfaceSpec:anInterfaceSpec
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   429
        withBindings:bindings
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   430
!
7a0b8cc86e87 added #openSpec:withBindings:
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   431
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   432
postBuildWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   433
    "this is sent after the dialogs widgets have been created
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   434
     (but before the dialog is opened).
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   435
     If a postBuildBlock was set, evaluate it here."
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   436
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   437
    postBuildBlock notNil ifTrue:[
1551
f3428747591f use new #valueWithOptionalArg
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   438
        postBuildBlock valueWithOptionalArgument:aBuilder
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   439
    ].
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   440
    super postBuildWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   441
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   442
    "Created: 18.10.1997 / 05:17:12 / cg"
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   443
!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   444
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   445
postOpenWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   446
    "this is sent after the dialogs main window is opened.
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   447
     If a postOpenBlock was set, evaluate it here."
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   448
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   449
    postOpenBlock notNil ifTrue:[
1551
f3428747591f use new #valueWithOptionalArg
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   450
        postOpenBlock valueWithOptionalArgument:aBuilder
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   451
    ].
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   452
    super postOpenWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   453
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   454
    "Created: 18.10.1997 / 05:15:48 / cg"
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   455
!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   456
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   457
preBuildWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   458
    "this is sent before the dialogs widgets are created.
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   459
     If a preBuildBlock was set, evaluate it here."
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   460
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   461
    preBuildBlock notNil ifTrue:[
1551
f3428747591f use new #valueWithOptionalArg
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   462
        preBuildBlock valueWithOptionalArgument:aBuilder
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   463
    ].
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   464
    super preBuildWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   465
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   466
    "Created: 18.10.1997 / 15:02:27 / cg"
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   467
!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   468
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   469
preOpen
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   470
    "arrange for #closeAccept & #closeCancel to be invoked when
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   471
     either accept or close is triggered
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   472
     (usually the models of corresponding buttons)"
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   473
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   474
    accept onChangeSend:#closeAccept to:self.
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   475
    cancel onChangeSend:#closeCancel to:self.
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   476
    close  onChangeSend:#closeWindow to:self.
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   477
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   478
    "Modified: / 20.5.1998 / 20:49:26 / cg"
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   479
! !
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   480
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   481
!SimpleDialog methodsFor:'queries'!
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   483
defaultWindowType
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   484
    "SimpleDialogs come up modal, by default"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   485
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
    ^ #dialog
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
    "Modified: 14.2.1997 / 22:17:20 / cg"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   489
! !
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
!SimpleDialog class methodsFor:'documentation'!
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
version
1881
22a568696a7b doAcceptByReturnKey and doCancelByEscapeKey pushed up to
james
parents: 1793
diff changeset
   494
    ^ '$Header: /cvs/stx/stx/libview2/SimpleDialog.st,v 1.42 2003-12-18 10:52:39 james Exp $'
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   495
! !