EnterBox.st
author ca
Fri, 09 Feb 1996 13:48:15 +0100
changeset 338 9cbc51998a23
parent 306 6a6a1513b713
child 355 a55f62047156
permissions -rw-r--r--
oops
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     1
"
5
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1990 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
     3
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     4
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    11
"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    12
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
    13
DialogBox subclass:#EnterBox
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
    14
	instanceVariableNames:'labelField enterField'
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
    15
	classVariableNames:''
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
    16
	poolDictionaries:''
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
    17
	category:'Views-DialogBoxes'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    18
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    19
3
claus
parents: 0
diff changeset
    20
!EnterBox class methodsFor:'documentation'!
claus
parents: 0
diff changeset
    21
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    22
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    23
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    24
 COPYRIGHT (c) 1990 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
    25
	      All Rights Reserved
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    26
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    27
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    28
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    30
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    31
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    32
 hereby transferred.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    33
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    34
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    35
3
claus
parents: 0
diff changeset
    36
documentation
claus
parents: 0
diff changeset
    37
"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    38
    this class implements a pop-up box to enter some string
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    39
    with 2 buttons; a cancel button, and a trigger-action button.
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    40
    Normally, the box is created and opened with the single message:
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    41
        EnterBox request:'someString'
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    42
    which returns nil if aborted and the entered string otherwise.
3
claus
parents: 0
diff changeset
    43
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    44
    However, to control more details of the box, it may also be created first
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    45
    (EnterBox new) and then modified as appropriate before its shown.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    46
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    47
    For example, the boxes title can be changed with: 
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    48
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    49
        aBox title:'some string'
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    50
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    51
    The two button-labels default to 'abort' and 'ok'; 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    52
    they can be changed using:
3
claus
parents: 0
diff changeset
    53
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    54
        aBox okText:'someString'
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    55
        aBox abortText:'someString'
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    56
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    57
    The initial text in the enterfield can be set using:
3
claus
parents: 0
diff changeset
    58
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    59
        aBox initialText:'someString'
3
claus
parents: 0
diff changeset
    60
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    61
    when the ok-button is pressed, an action is performed, which is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    62
    set using:
3
claus
parents: 0
diff changeset
    63
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    64
        aBox action:[ ... ]
3
claus
parents: 0
diff changeset
    65
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    66
    the abort-action defaults to no-action, but can also be set.
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    67
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    68
    The box can be opened modal (i.e. the currently active view will
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    69
    be suspended) or modeless. The default is modal (i.e. sending #open
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    70
    is equivalent to #openModal).
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    71
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    72
    Most of the above is also available via messages to Dialog for ST-80 compatibility
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    73
    (i.e. Dialog request:someString' is the same as EnterBox request:'someString')
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    74
"
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    75
!
3
claus
parents: 0
diff changeset
    76
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    77
examples 
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    78
"
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    79
    examples (for ST-80 compatibility, please use Dialog messages):
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    80
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    81
    simple (most common):
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    82
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    83
        |someString|
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    84
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    85
        someString := EnterBox request:'enter a string'.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    86
        Transcript showCr:someString
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
    87
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    88
    creating first, setting actions and manually opening:
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    89
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    90
        |box|
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    91
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    92
        box := EnterBox new.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    93
        box title:'your name please:'.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    94
        box action:[:arg | Transcript showCr:'entered: ' , arg printString].
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    95
        box open
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
    96
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    97
    non-modal:
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    98
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    99
        |box|
8
82e87dc3540e *** empty log message ***
claus
parents: 7
diff changeset
   100
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   101
        box := EnterBox new.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   102
        box title:'your name please:'.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   103
        box action:[:arg | Transcript showCr:'entered: ' , arg printString].
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   104
        box openModeless
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   105
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   106
    for easier instance creation, there are also some combination methods:
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   107
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   108
        |box|
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   109
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   110
        box := EnterBox 
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   111
                 title:'your name please:'
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   112
                 action:[:arg | Transcript showCr:'entered: ' , arg printString].
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   113
        box openModeless
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   114
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   115
    If the box is needed to ask for a simple string, you can also use the
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   116
    #request method, to bring up a box, let it ask for something and return
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   117
    the entered string. This method will return nil, if the box was
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   118
    closed with the 'abort' button.
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   119
    Example:
8
82e87dc3540e *** empty log message ***
claus
parents: 7
diff changeset
   120
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   121
        |box string|
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   122
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   123
        box := EnterBox request:'input some string:'.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   124
        string isNil ifTrue:[
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   125
            Transcript showCr:'no input'
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   126
        ] ifFalse:[
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   127
            Transcript showCr:('the entered string was: ' , string)
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   128
        ]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   129
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   130
    of course, this can be written shorter as:
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   131
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   132
        |string|
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   133
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   134
        string := EnterBox request:'input some string:'.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   135
        string isNil ifTrue:[
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   136
            Transcript showCr:'no input'
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   137
        ] ifFalse:[
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   138
            Transcript showCr:('the entered string was: ' , string)
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   139
        ]
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   140
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   141
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   142
    A box for passwords is created with:
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   143
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   144
        |box|
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   145
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   146
        box := EnterBox 
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   147
                 title:'your name please:'
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   148
                 action:[:arg | Transcript showCr:'entered: ' , arg printString].
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   149
        box enterField passwordCharacter:$*.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   150
        box showAtPointer
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   151
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   152
    or simply:
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   153
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   154
        |string|
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   155
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   156
        string := EnterBox requestPassword:'enter your password:'.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   157
        Transcript showCr:string.
3
claus
parents: 0
diff changeset
   158
"
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   159
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   160
    "Modified: 16.11.1995 / 21:28:11 / cg"
3
claus
parents: 0
diff changeset
   161
! !
claus
parents: 0
diff changeset
   162
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   163
!EnterBox class methodsFor:'instance creation'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   164
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   165
action:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   166
    "create and return a new EnterBox 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   167
     which will evaluate aBlock when 'ok' is pressed"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   168
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   169
    ^ (self new) action:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   170
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   171
    "(EnterBox action:[:string | Transcript showCr:string]) showAtPointer"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   172
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   173
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   174
title:titleString
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   175
    "create and return a new EnterBox with title aString"
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   176
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   177
    ^ self new title:titleString
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   178
!
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   179
101
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   180
title:titleString action:aBlock
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   181
    "create and return a new EnterBox with title aString,
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   182
     which will evaluate aBlock when 'ok' is pressed"
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   183
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   184
    ^ (self title:titleString) action:aBlock
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   185
!
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   186
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   187
title:titleString okText:okText abortText:abortText action:aBlock
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   188
    "create and return a new EnterBox with title aString, and buttons showing
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   189
     okText and abortText; it will evaluate aBlock when 'ok' is pressed"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   190
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   191
    ^ (self title:titleString okText:okText action:aBlock) abortText:abortText 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   192
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   193
101
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   194
title:titleString okText:okText action:aBlock
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   195
    "create and return a new EnterBox with title aString, and ok button showing
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   196
     okText; it will evaluate aBlock when 'ok' is pressed"
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   197
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   198
    ^ (self title:titleString action:aBlock) okText:okText
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   199
! !
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   200
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   201
!EnterBox class methodsFor:'defaults'!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   202
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   203
defaultExtent
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   204
    ^ (Screen current pixelPerMillimeter * (60 @ 30)) rounded
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   205
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   206
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   207
minExtent
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   208
    ^ self defaultExtent
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   209
! !
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   210
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   211
!EnterBox class methodsFor:'easy startup '!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   212
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   213
request:aTitle
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   214
    "create and show an enterBox asking for aTitle.
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   215
     Return the enterred string or an empty string (if abort was pressed).
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   216
     The string may be empty, in case return was pressed immediately."
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   217
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   218
    ^ self new request:aTitle
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   219
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   220
    "
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   221
     EnterBox request:'enter a string'
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   222
    "
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   223
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   224
    "Modified: 27.1.1996 / 14:34:23 / cg"
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   225
!
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   226
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   227
requestPassword:aTitle
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   228
    "create and show an enterBox asking for aTitle.
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   229
     The box is setup to NOT display entered characters (as with password entry).
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   230
     Return the entered string or nil (if abort was pressed).
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   231
     The string may be empty, in case return was pressed immediately."
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   232
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   233
    ^ self new requestPassword:aTitle
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   234
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   235
    "
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   236
     |s|
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   237
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   238
     s := EnterBox requestPassword:'enter a string'.
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   239
     Transcript showCr:'you entered: ' , s
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   240
    "
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   241
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   242
    "Created: 16.11.1995 / 21:25:08 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   243
! !
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   244
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   245
!EnterBox methodsFor:'accessing'!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   246
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   247
contents
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   248
    "return my contents"
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   249
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   250
    ^ enterField contents
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   251
!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   252
144
claus
parents: 139
diff changeset
   253
contents:aString
claus
parents: 139
diff changeset
   254
    "set my contents"
claus
parents: 139
diff changeset
   255
claus
parents: 139
diff changeset
   256
    enterField contents:aString
claus
parents: 139
diff changeset
   257
!
claus
parents: 139
diff changeset
   258
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   259
enterField
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   260
    "provide access to the entryfield"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   261
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   262
    ^ enterField
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   263
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   264
    "Created: 16.11.1995 / 21:23:48 / cg"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   265
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   266
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   267
entryCompletionBlock:aBlock
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   268
    enterField entryCompletionBlock:aBlock
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   269
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   270
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   271
initialText:aString
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   272
    "define the initial text in the enterfield. all will be selected initially"
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   273
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   274
    enterField initialText:aString
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   275
!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   276
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   277
initialText:aString selectFrom:start to:stop
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   278
    "define the initial text in the enterfield, and the part to be selected"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   279
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   280
    enterField initialText:aString.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   281
    enterField selectFromLine:1 col:start toLine:1 col:stop
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   282
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   283
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   284
labelField
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   285
    "provide access to the labelfield"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   286
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   287
    ^ labelField
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   288
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   289
    "Created: 16.11.1995 / 21:23:48 / cg"
144
claus
parents: 139
diff changeset
   290
!
claus
parents: 139
diff changeset
   291
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   292
title:aString
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   293
    "set the title to be displayed at top of enterBox"
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   294
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   295
    |oldSize|
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   296
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   297
    aString ~= labelField label ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   298
	oldSize := labelField extent.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   299
	labelField label:aString.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   300
	labelField forceResize.
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   301
118
claus
parents: 113
diff changeset
   302
	shown ifTrue:[
claus
parents: 113
diff changeset
   303
	    labelField extent ~= oldSize ifTrue:[
claus
parents: 113
diff changeset
   304
		self resize
claus
parents: 113
diff changeset
   305
	    ]
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   306
	]
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   307
    ]
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   308
!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   309
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   310
title:titleString okText:okString
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   311
    "set title and text in okbutton"
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   312
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   313
    (titleString ~= labelField label or:[okString ~= okButton label]) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   314
	okButton label:okString.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   315
	okButton resize.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   316
	labelField label:titleString.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   317
	labelField forceResize.
97
cbf495fe3b64 *** empty log message ***
claus
parents: 90
diff changeset
   318
	shown ifTrue:[self resize].
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   319
    ]
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   320
!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   321
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   322
title:titleString okText:okString abortText:abortString
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   323
    "set title and texts in the buttons"
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   324
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   325
    (titleString ~= labelField label 
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   326
     or:[okString ~= okButton label
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   327
     or:[abortString ~= abortButton label]]) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   328
	okButton label:okString.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   329
	okButton resize.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   330
	abortButton label:abortString.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   331
	abortButton resize.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   332
	labelField label:titleString.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   333
	labelField forceResize.
97
cbf495fe3b64 *** empty log message ***
claus
parents: 90
diff changeset
   334
	shown ifTrue:[self resize].
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   335
    ]
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   336
! !
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   337
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   338
!EnterBox methodsFor:'change & update'!
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   339
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   340
update:something with:someArgument from:changedObject
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   341
    "sent if my enterbox thinks it needs more real-estate ..."
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   342
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   343
    changedObject == enterField ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   344
	something == #preferredExtent ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   345
	    shown ifTrue:[self resizeUnderPointer].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   346
	    ^ self
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   347
	]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   348
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   349
    super update:something with:someArgument from:changedObject
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   350
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   351
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   352
!EnterBox methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   353
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   354
createEnterField
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   355
    "this has been extracted from the initialize method
121
claus
parents: 118
diff changeset
   356
     to allow redefinition in subclasses. (FilenameEnterBox for example).
claus
parents: 118
diff changeset
   357
     It shall return a new instance of the desired editField class."
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   358
121
claus
parents: 118
diff changeset
   359
     ^ EditField new.
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   360
!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   361
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   362
focusSequence
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   363
    ^ Array with:enterField with:abortButton with:okButton 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   364
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   365
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   366
initialize
90
6e94d68102a4 *** empty log message ***
claus
parents: 77
diff changeset
   367
    |space2 innerWidth|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   368
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   369
    super initialize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   370
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   371
    self addAbortButton; addOkButton.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   372
150
claus
parents: 144
diff changeset
   373
    label := resources string:'Enter'.
73
2cd4588996e8 last version before using new DialogBox
claus
parents: 62
diff changeset
   374
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   375
    space2 := 2 * ViewSpacing.
73
2cd4588996e8 last version before using new DialogBox
claus
parents: 62
diff changeset
   376
    innerWidth := width - space2.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   377
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   378
    labelField := Label in:self.
118
claus
parents: 113
diff changeset
   379
    labelField 
claus
parents: 113
diff changeset
   380
	label:''; 
claus
parents: 113
diff changeset
   381
	borderWidth:0;
claus
parents: 113
diff changeset
   382
	adjust:#left;
claus
parents: 113
diff changeset
   383
	origin:(0.0 @ ViewSpacing) extent:[1.0 @ labelField height];
claus
parents: 113
diff changeset
   384
	leftInset:ViewSpacing; 
claus
parents: 113
diff changeset
   385
	rightInset:ViewSpacing.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   386
121
claus
parents: 118
diff changeset
   387
    self addComponent:(enterField := self createEnterField).
118
claus
parents: 113
diff changeset
   388
    enterField 
130
claus
parents: 122
diff changeset
   389
	origin:[0.0 @ (space2 + labelField preferredExtent y "height")]
139
claus
parents: 134
diff changeset
   390
	extent:(1.0 @ enterField height).
118
claus
parents: 113
diff changeset
   391
    enterField 
139
claus
parents: 134
diff changeset
   392
	leftInset:ViewSpacing-enterField borderWidth; 
118
claus
parents: 113
diff changeset
   393
	rightInset:ViewSpacing;
claus
parents: 113
diff changeset
   394
	leaveAction:[:key | self okPressed].
claus
parents: 113
diff changeset
   395
130
claus
parents: 122
diff changeset
   396
    enterField addDependent:self. "to get preferredExtent-changes"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   397
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   398
    "
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   399
     forward keyboard input to the enterfield
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   400
    "
122
claus
parents: 121
diff changeset
   401
    self delegate:(KeyboardForwarder toView:enterField condition:#noFocus).
121
claus
parents: 118
diff changeset
   402
    enterField hasKeyboardFocus:true.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   403
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   404
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   405
reAdjustGeometry
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   406
    "sent late in snapin processing - gives me a chance
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   407
     to resize for new font dimensions"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   408
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   409
    super reAdjustGeometry.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   410
    labelField resize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   411
    okButton resize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   412
    abortButton resize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   413
    self resize
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   414
! !
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   415
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   416
!EnterBox methodsFor:'queries'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   417
130
claus
parents: 122
diff changeset
   418
preferredExtent 
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   419
    |wWanted hWanted wPanel vs2 min 
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   420
     labelPref enterPref panelPref|
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   421
130
claus
parents: 122
diff changeset
   422
    panelPref := buttonPanel preferredExtent.
claus
parents: 122
diff changeset
   423
    labelPref := labelField preferredExtent.
claus
parents: 122
diff changeset
   424
    enterPref := enterField preferredExtent.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   425
    wWanted := (labelPref x max:enterPref x).
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   426
    wPanel := panelPref x.
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   427
    wPanel > wWanted ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   428
	wWanted := wPanel
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   429
    ].
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   430
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   431
    hWanted := labelPref y + enterPref y +
73
2cd4588996e8 last version before using new DialogBox
claus
parents: 62
diff changeset
   432
	       (ViewSpacing * 6) + panelPref y + ViewSpacing.
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   433
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   434
    min := self class minExtent.
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   435
    wWanted <  min x ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   436
	wWanted :=  min x
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   437
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   438
    hWanted <  min y ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   439
	hWanted :=  min y
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   440
    ].
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   441
    vs2 := ViewSpacing * 2.
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   442
    ^ (wWanted + vs2) @ (hWanted + vs2) 
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   443
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   444
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   445
!EnterBox methodsFor:'startup'!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   446
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   447
request
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   448
    "open the box and return the entered string
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   449
     or an empty string, if abort was pressed"
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   450
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   451
    ^ self requestOnCancel:''
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   452
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   453
    "Modified: 27.1.1996 / 14:50:01 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   454
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   455
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   456
request:title
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   457
    "set the title, open the box and return the entered string,
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   458
     or  the empty string, if abort was pressed."
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   459
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   460
    ^ self request:title onCancel:''
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   461
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   462
    "
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   463
     EnterBox request:'enter some string:' 
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   464
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   465
     |bx|
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   466
     bx := EnterBox new.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   467
     bx label:'foo bar baz'.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   468
     bx request:'enter some string:' 
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   469
    "
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   470
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   471
    "Created: 7.12.1995 / 23:12:19 / cg"
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   472
    "Modified: 27.1.1996 / 14:49:23 / cg"
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   473
!
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   474
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   475
request:title onCancel:cancelValue
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   476
    "set the title, open the box and return the entered string,
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   477
     or cancelValue if abort was pressed."
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   478
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   479
    self title:title.
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   480
    ^ self requestOnCancel:cancelValue
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   481
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   482
    "
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   483
     EnterBox request:'enter some string:' onCancel:nil
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   484
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   485
     |bx|
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   486
     bx := EnterBox new.
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   487
     bx label:'foo bar baz'.
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   488
     bx request:'enter some string:' onCancel:#foo 
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   489
    "
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   490
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   491
    "Created: 7.12.1995 / 23:12:19 / cg"
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   492
    "Modified: 27.1.1996 / 14:48:39 / cg"
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   493
!
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   494
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   495
requestOnCancel:cancelValue
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   496
    "open the box and return the entered string 
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   497
     or cancelValue, if abort was pressed"
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   498
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   499
    self action:[:string | ^ string].
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   500
    self open.
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   501
    ^ cancelValue value
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   502
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   503
    "Created: 27.1.1996 / 14:47:47 / cg"
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   504
!
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   505
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   506
requestPassword:title
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   507
    "set the title, set password mode, open the box and return the entered string 
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   508
     or an empty string, if abort was pressed"
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   509
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   510
    ^ self requestPassword:title onCancel:''
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   511
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   512
    "Created: 16.11.1995 / 21:25:33 / cg"
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   513
    "Modified: 27.1.1996 / 14:52:36 / cg"
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   514
!
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   515
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   516
requestPassword:title onCancel:cancelValue
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   517
    "set the title, set password mode, open the box and return the entered string 
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   518
     or cancelValue, if abort was pressed"
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   519
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   520
    enterField passwordCharacter:$*.
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   521
    ^ self request:title onCancel:cancelValue
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   522
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   523
    "Modified: 27.1.1996 / 14:34:07 / cg"
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   524
    "Created: 27.1.1996 / 14:52:13 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   525
! !
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   526
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   527
!EnterBox methodsFor:'user actions'!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   528
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   529
hideAndEvaluate:aBlock
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   530
    "common processing for all ok-actions (see subclasses);
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   531
     if modal, shut down box. 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   532
     Then fetch entered string and evaluate the passed action with it"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   533
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   534
    |string|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   535
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   536
    (windowGroup notNil and:[windowGroup isModal]) ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   537
	self hide.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   538
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   539
    aBlock notNil ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   540
	string := self contents.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   541
	string isNil ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   542
	    string := ''
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   543
	] ifFalse:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   544
	    string := string withoutSeparators
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   545
	].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   546
	aBlock value:string
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   547
    ]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   548
! !
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   549
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   550
!EnterBox class methodsFor:'documentation'!
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   551
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   552
version
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   553
    ^ '$Header: /cvs/stx/stx/libwidg/EnterBox.st,v 1.35 1996-01-27 14:15:17 cg Exp $'
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   554
! !