EnterBox.st
author Claus Gittinger <cg@exept.de>
Mon, 27 Jul 1998 20:19:03 +0200
changeset 1615 7bb9ce880706
parent 1613 5f5a595a696f
child 1763 1c6be8158c27
permissions -rw-r--r--
preferredExtent a bit smaller.
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
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
    14
	instanceVariableNames:'labelField enterField trimBlanks'
306
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
1613
5f5a595a696f defaultExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
    20
!EnterBox class methodsFor:'documentation'!
3
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
"
355
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    38
   Historic note:
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    39
        originally, ST/X had separate classes for the various entry methods;
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    40
        there were YesNoBox, EnterBox, InfoBox and so on.
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    41
        In the meantime, the DialogBox class (and therefore its alias: Dialog)
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    42
        is going to duplicate most funcionality found in these classes.
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    43
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    44
        In the future, those existing subclasses' functionality is going to
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    45
        be moved fully into Dialog, and the subclasses will be replaced by dummy
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    46
        delegators. (They will be kept for backward compatibility, though).
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    47
a55f62047156 commentary
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    48
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    49
    this class implements a pop-up box to enter some string
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    50
    with 2 buttons; a cancel button, and a trigger-action button.
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    51
    Normally, the box is created and opened with the single message:
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    52
        EnterBox request:'someString'
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    53
    which returns nil if aborted and the entered string otherwise.
3
claus
parents: 0
diff changeset
    54
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    55
    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
    56
    (EnterBox new) and then modified as appropriate before its shown.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    57
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    58
    For example, the boxes title can be changed with: 
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    59
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    60
        aBox title:'some string'
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    61
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    62
    The two button-labels default to 'abort' and 'ok'; 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    63
    they can be changed using:
3
claus
parents: 0
diff changeset
    64
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    65
        aBox okText:'someString'
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    66
        aBox abortText:'someString'
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    67
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    68
    The initial text in the enterfield can be set using:
3
claus
parents: 0
diff changeset
    69
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    70
        aBox initialText:'someString'
3
claus
parents: 0
diff changeset
    71
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    72
    when the ok-button is pressed, an action is performed, which is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    73
    set using:
3
claus
parents: 0
diff changeset
    74
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    75
        aBox action:[ ... ]
3
claus
parents: 0
diff changeset
    76
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    77
    the abort-action defaults to no-action, but can also be set.
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    78
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    79
    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
    80
    be suspended) or modeless. The default is modal (i.e. sending #open
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    81
    is equivalent to #openModal).
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    82
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    83
    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
    84
    (i.e. Dialog request:someString' is the same as EnterBox request:'someString')
585
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    85
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    86
    [author:]
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    87
        Claus Gittinger
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    88
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    89
    [see also:]
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    90
        DialogBox
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    91
        EnterBox2 YesNoBox ListSelectionBox FileSelectionBox FileSaveBox
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    92
        EditField EditTextView
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    93
        EnterFieldGroup
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    94
"
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    95
!
3
claus
parents: 0
diff changeset
    96
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    97
examples 
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    98
"
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    99
    examples (for ST-80 compatibility, please use Dialog messages):
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   100
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   101
    simple (most common):
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   102
                                                                        [exBegin]
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   103
        |someString|
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   104
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   105
        someString := EnterBox request:'enter a string'.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   106
        Transcript showCR:someString
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   107
                                                                        [exEnd]
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   108
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   109
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   110
    creating first, setting actions and manually opening:
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   111
                                                                        [exBegin]
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   112
        |box|
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   113
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   114
        box := EnterBox new.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   115
        box title:'your name please:'.
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   116
        box action:[:arg | Transcript showCR:'entered: ''' , arg printString , ''''].
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   117
        box open
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   118
                                                                        [exEnd]
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   119
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   120
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   121
    turning off trimming of leading/trailing spaces (seldom required):
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   122
                                                                        [exBegin]
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   123
        |box|
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   124
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   125
        box := EnterBox new.
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   126
        box title:'your name please:'.
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   127
        box action:[:arg | Transcript showCR:'entered: ''' , arg printString , ''''].
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   128
        box trimBlanks:false.
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   129
        box open
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   130
                                                                        [exEnd]
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   131
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   132
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   133
    non-modal
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   134
    (just for the demo; it does not really make sense,
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   135
     since cancel-button has no effect):
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   136
                                                                        [exBegin]
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   137
        |box|
8
82e87dc3540e *** empty log message ***
claus
parents: 7
diff changeset
   138
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   139
        box := EnterBox new.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   140
        box title:'your name please:'.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   141
        box action:[:arg | Transcript showCR:'entered: ' , arg printString].
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   142
        box openModeless
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   143
                                                                        [exEnd]
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   144
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   145
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   146
    for easier instance creation, there are also some combination methods:
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   147
                                                                        [exBegin]
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   148
        |box|
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   149
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   150
        box := EnterBox 
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   151
                 title:'your name please:'
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   152
                 action:[:arg | Transcript showCR:'entered: ' , arg printString].
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   153
        box open
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   154
                                                                        [exEnd]
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   155
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   156
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   157
    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
   158
    #request method, to bring up a box, let it ask for something and return
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   159
    the entered string. This method will return nil, if the box was
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   160
    closed with the 'abort' button.
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   161
    Example:
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   162
                                                                        [exBegin]
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   163
        |box string|
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   164
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   165
        box := EnterBox request:'input some string:'.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   166
        string isNil ifTrue:[
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   167
            Transcript showCR:'no input'
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   168
        ] ifFalse:[
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   169
            Transcript showCR:('the entered string was: ' , string)
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   170
        ]
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   171
                                                                        [exEnd]
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   172
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   173
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   174
    of course, this can be written shorter as:
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   175
                                                                        [exBegin]
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   176
        |string|
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   177
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   178
        string := EnterBox request:'input some string:'.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   179
        string isNil ifTrue:[
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   180
            Transcript showCR:'no input'
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   181
        ] ifFalse:[
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   182
            Transcript showCR:('the entered string was: ' , string)
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   183
        ]
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   184
                                                                        [exEnd]
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   185
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   186
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   187
    A box for passwords is created with:
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   188
                                                                        [exBegin]
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   189
        |box|
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   190
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   191
        box := EnterBox 
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   192
                 title:'your name please:'
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   193
                 action:[:arg | Transcript showCR:'entered: ' , arg printString].
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   194
        box enterField passwordCharacter:$*.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   195
        box showAtPointer
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   196
                                                                        [exEnd]
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   197
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   198
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   199
    or simply:
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   200
                                                                        [exBegin]
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   201
        |string|
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   202
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   203
        string := EnterBox requestPassword:'enter your password:'.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   204
        Transcript showCR:string.
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   205
                                                                        [exEnd]
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   206
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   207
    ATTENTION:
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   208
    for ST-80 compatibility, please use protocol from Dialog 
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   209
    (which is an alias for DialogBox):
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   210
                                                                        [exBegin]
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   211
        |string|
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   212
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   213
        string := Dialog request:'input some string:'.
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   214
        string isNil ifTrue:[
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   215
            Transcript showCR:'no input'
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   216
        ] ifFalse:[
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   217
            Transcript showCR:('the entered string was: ' , string)
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   218
        ]
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   219
                                                                        [exEnd]
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   220
    and:    
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   221
                                                                        [exBegin]
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   222
        |string|
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   223
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   224
        string := Dialog requestPassword:'enter your password:'.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   225
        Transcript showCR:string.
593
86dd024ed773 examples
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   226
                                                                        [exEnd]
3
claus
parents: 0
diff changeset
   227
"
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   228
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   229
    "Modified: 16.11.1995 / 21:28:11 / cg"
3
claus
parents: 0
diff changeset
   230
! !
claus
parents: 0
diff changeset
   231
1613
5f5a595a696f defaultExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   232
!EnterBox class methodsFor:'instance creation'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   233
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   234
action:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   235
    "create and return a new EnterBox 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   236
     which will evaluate aBlock when 'ok' is pressed"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   237
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   238
    ^ (self new) action:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   239
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   240
    "(EnterBox action:[:string | Transcript showCR:string]) showAtPointer"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   241
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   242
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   243
title:titleString
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   244
    "create and return a new EnterBox with title aString"
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   245
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   246
    ^ self new title:titleString
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   247
!
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   248
101
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   249
title:titleString action:aBlock
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   250
    "create and return a new EnterBox with title aString,
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   251
     which will evaluate aBlock when 'ok' is pressed"
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   252
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   253
    ^ (self title:titleString) action:aBlock
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   254
!
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   255
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   256
title:titleString okText:okText abortText:abortText action:aBlock
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   257
    "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
   258
     okText and abortText; it will evaluate aBlock when 'ok' is pressed"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   259
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   260
    ^ (self title:titleString okText:okText action:aBlock) abortText:abortText 
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
101
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   263
title:titleString okText:okText action:aBlock
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   264
    "create and return a new EnterBox with title aString, and ok button showing
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   265
     okText; it will evaluate aBlock when 'ok' is pressed"
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   266
88e7faeda854 *** empty log message ***
claus
parents: 97
diff changeset
   267
    ^ (self title:titleString action:aBlock) okText:okText
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   268
! !
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   269
1613
5f5a595a696f defaultExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   270
!EnterBox class methodsFor:'defaults'!
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   271
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   272
defaultExtent
571
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 355
diff changeset
   273
    "return the default extent of my instances.
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 355
diff changeset
   274
     The value returned here is usually ignored, and
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 355
diff changeset
   275
     the value from preferredExtent taken instead."
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 355
diff changeset
   276
1613
5f5a595a696f defaultExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   277
    ^ (Screen current pixelPerMillimeter * (60 @ 20)) rounded
571
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 355
diff changeset
   278
1613
5f5a595a696f defaultExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   279
    "Modified: / 22.1.1998 / 09:57:26 / md"
5f5a595a696f defaultExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   280
    "Modified: / 27.7.1998 / 20:15:52 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   281
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   282
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   283
minExtent
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   284
    ^ self defaultExtent
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   285
! !
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   286
1613
5f5a595a696f defaultExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   287
!EnterBox class methodsFor:'easy startup '!
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   288
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   289
request:aTitle
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   290
    "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
   291
     Return the enterred string or an empty string (if abort was pressed).
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   292
     The string may be empty, in case return was pressed immediately."
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   293
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   294
    ^ self new request:aTitle
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   295
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   296
    "
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   297
     EnterBox request:'enter a string'
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   298
    "
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   299
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   300
    "Modified: 27.1.1996 / 14:34:23 / cg"
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   301
!
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   302
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   303
requestPassword:aTitle
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   304
    "create and show an enterBox asking for aTitle.
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   305
     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
   306
     Return the entered string or nil (if abort was pressed).
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   307
     The string may be empty, in case return was pressed immediately."
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   308
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   309
    ^ self new requestPassword:aTitle
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   310
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   311
    "
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   312
     |s|
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   313
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   314
     s := EnterBox requestPassword:'enter a string'.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 593
diff changeset
   315
     Transcript showCR:'you entered: ' , s
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   316
    "
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   317
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   318
    "Created: 16.11.1995 / 21:25:08 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   319
! !
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   320
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   321
!EnterBox methodsFor:'accessing - behavior'!
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   322
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   323
entryCompletionBlock:aBlock
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   324
    "define an entryCompletion block; if nonNil, that one
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   325
     is evaluated if TAB is pressed in the field and should
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   326
     try to complete the input. 
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   327
     Typically used with fileName-boxes."
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   328
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   329
    enterField entryCompletionBlock:aBlock
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   330
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   331
    "Modified: 22.5.1996 / 15:19:31 / cg"
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   332
!
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   333
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   334
trimBlanks:aBoolean
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   335
    "set/clear blank trimming in the returned string.
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   336
     By default, leading and trailing spaces are removed from the input;
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   337
     setting trimBlanks to false disables this behavior.
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   338
     (not normally useful in most applications)"
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   339
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   340
    trimBlanks := aBoolean
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   341
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   342
    "Created: 22.5.1996 / 15:23:45 / cg"
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   343
! !
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   344
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   345
!EnterBox methodsFor:'accessing - components'!
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   346
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   347
enterField
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   348
    "provide access to the entryfield"
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   349
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   350
    ^ enterField
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   351
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   352
    "Created: 16.11.1995 / 21:23:48 / cg"
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   353
!
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   354
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   355
labelField
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   356
    "provide access to the labelfield"
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   357
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   358
    ^ labelField
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   359
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   360
    "Created: 16.11.1995 / 21:23:48 / cg"
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   361
! !
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   362
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   363
!EnterBox methodsFor:'accessing - contents'!
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   364
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   365
contents
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   366
    "return my contents"
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   367
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   368
    ^ enterField contents
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   369
!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   370
144
claus
parents: 139
diff changeset
   371
contents:aString
claus
parents: 139
diff changeset
   372
    "set my contents"
claus
parents: 139
diff changeset
   373
claus
parents: 139
diff changeset
   374
    enterField contents:aString
claus
parents: 139
diff changeset
   375
!
claus
parents: 139
diff changeset
   376
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   377
initialText:aString
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   378
    "define the initial text in the enterfield. all will be selected initially"
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   379
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   380
    enterField initialText:aString
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   381
!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   382
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   383
initialText:aString selectFrom:start to:stop
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   384
    "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
   385
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   386
    enterField initialText:aString.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   387
    enterField selectFromLine:1 col:start toLine:1 col:stop
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   388
! !
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   389
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   390
!EnterBox methodsFor:'accessing - look'!
144
claus
parents: 139
diff changeset
   391
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   392
title:aString
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   393
    "set the title to be displayed at top of enterBox"
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   394
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   395
    |oldSize|
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   396
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   397
    aString ~= labelField label ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   398
	oldSize := labelField extent.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   399
	labelField label:aString.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   400
	labelField forceResize.
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   401
118
claus
parents: 113
diff changeset
   402
	shown ifTrue:[
claus
parents: 113
diff changeset
   403
	    labelField extent ~= oldSize ifTrue:[
claus
parents: 113
diff changeset
   404
		self resize
claus
parents: 113
diff changeset
   405
	    ]
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   406
	]
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   407
    ]
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   408
!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   409
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   410
title:titleString okText:okString
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   411
    "set title and text in okbutton"
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   412
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   413
    (titleString ~= labelField label or:[okString ~= okButton label]) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   414
	okButton label:okString.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   415
	okButton resize.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   416
	labelField label:titleString.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   417
	labelField forceResize.
97
cbf495fe3b64 *** empty log message ***
claus
parents: 90
diff changeset
   418
	shown ifTrue:[self resize].
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   419
    ]
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   420
!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   421
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   422
title:titleString okText:okString abortText:abortString
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   423
    "set title and texts in the buttons"
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   424
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   425
    (titleString ~= labelField label 
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   426
     or:[okString ~= okButton label
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   427
     or:[abortString ~= abortButton label]]) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   428
	okButton label:okString.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   429
	okButton resize.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   430
	abortButton label:abortString.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   431
	abortButton resize.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   432
	labelField label:titleString.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   433
	labelField forceResize.
97
cbf495fe3b64 *** empty log message ***
claus
parents: 90
diff changeset
   434
	shown ifTrue:[self resize].
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   435
    ]
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   436
! !
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   437
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   438
!EnterBox methodsFor:'change & update'!
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   439
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   440
update:something with:someArgument from:changedObject
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   441
    "sent if my enterbox thinks it needs more real-estate ..."
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   442
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   443
    changedObject == enterField ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   444
	something == #preferredExtent ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   445
	    shown ifTrue:[self resizeUnderPointer].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   446
	    ^ self
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   447
	]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   448
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   449
    super update:something with:someArgument from:changedObject
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   450
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   451
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   452
!EnterBox methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   453
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   454
createEnterField
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   455
    "this has been extracted from the initialize method
121
claus
parents: 118
diff changeset
   456
     to allow redefinition in subclasses. (FilenameEnterBox for example).
claus
parents: 118
diff changeset
   457
     It shall return a new instance of the desired editField class."
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   458
121
claus
parents: 118
diff changeset
   459
     ^ EditField new.
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   460
!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   461
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   462
initialize
90
6e94d68102a4 *** empty log message ***
claus
parents: 77
diff changeset
   463
    |space2 innerWidth|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   464
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   465
    super initialize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   466
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   467
    self addAbortButton; addOkButton.
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   468
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   469
    trimBlanks := true.
150
claus
parents: 144
diff changeset
   470
    label := resources string:'Enter'.
73
2cd4588996e8 last version before using new DialogBox
claus
parents: 62
diff changeset
   471
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   472
    space2 := 2 * ViewSpacing.
73
2cd4588996e8 last version before using new DialogBox
claus
parents: 62
diff changeset
   473
    innerWidth := width - space2.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   474
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   475
    labelField := Label in:self.
118
claus
parents: 113
diff changeset
   476
    labelField 
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   477
        label:''; 
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   478
        borderWidth:0;
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   479
        adjust:#left;
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   480
        origin:(0.0 @ ViewSpacing) extent:[1.0 @ labelField height];
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   481
        leftInset:ViewSpacing; 
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   482
        rightInset:ViewSpacing.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   483
121
claus
parents: 118
diff changeset
   484
    self addComponent:(enterField := self createEnterField).
118
claus
parents: 113
diff changeset
   485
    enterField 
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   486
        origin:[0.0 @ (space2 + labelField preferredExtent y "height")]
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   487
        extent:(1.0 @ enterField height).
118
claus
parents: 113
diff changeset
   488
    enterField 
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   489
        leftInset:ViewSpacing-enterField borderWidth; 
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   490
        rightInset:ViewSpacing;
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   491
        leaveAction:[:key | self okPressed].
118
claus
parents: 113
diff changeset
   492
130
claus
parents: 122
diff changeset
   493
    enterField addDependent:self. "to get preferredExtent-changes"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   494
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   495
    "
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   496
     forward keyboard input to the enterfield
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   497
    "
122
claus
parents: 121
diff changeset
   498
    self delegate:(KeyboardForwarder toView:enterField condition:#noFocus).
121
claus
parents: 118
diff changeset
   499
    enterField hasKeyboardFocus:true.
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   500
740
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   501
    self makeTabable:enterField
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   502
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   503
    "Modified: 31.5.1996 / 21:51:28 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   504
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   505
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   506
reAdjustGeometry
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   507
    "sent late in snapin processing - gives me a chance
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   508
     to resize for new font dimensions"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   509
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   510
    super reAdjustGeometry.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   511
    labelField resize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   512
    okButton resize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   513
    abortButton resize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   514
    self resize
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   515
! !
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   516
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   517
!EnterBox methodsFor:'queries'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   518
130
claus
parents: 122
diff changeset
   519
preferredExtent 
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   520
    "compute the boxes preferredExtent from the components' sizes"
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   521
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   522
    |wWanted hWanted wPanel vs2 min 
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   523
     labelPref enterPref panelPref|
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   524
797
2f9cd56f48ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
   525
    "/ If I have an explicit preferredExtent ..
2f9cd56f48ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
   526
713
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   527
    preferredExtent notNil ifTrue:[
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   528
        ^ preferredExtent
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   529
    ].
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   530
130
claus
parents: 122
diff changeset
   531
    panelPref := buttonPanel preferredExtent.
claus
parents: 122
diff changeset
   532
    labelPref := labelField preferredExtent.
claus
parents: 122
diff changeset
   533
    enterPref := enterField preferredExtent.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   534
    wWanted := (labelPref x max:enterPref x).
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   535
    wPanel := panelPref x.
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   536
    wPanel > wWanted ifTrue:[
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   537
        wWanted := wPanel
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   538
    ].
1615
7bb9ce880706 preferredExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
   539
    hWanted := labelPref y + ViewSpacing + enterPref y +
7bb9ce880706 preferredExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
   540
               ViewSpacing + panelPref y + ViewSpacing.
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   541
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   542
    min := self class minExtent.
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   543
    wWanted <  min x ifTrue:[
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   544
        wWanted :=  min x
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   545
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   546
    hWanted <  min y ifTrue:[
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   547
        hWanted :=  min y
59
450ce95a72a4 *** empty log message ***
claus
parents: 48
diff changeset
   548
    ].
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   549
    vs2 := ViewSpacing * 2.
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   550
    ^ (wWanted + vs2) @ (hWanted + vs2)
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   551
1615
7bb9ce880706 preferredExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
   552
    "Modified: / 22.1.1998 / 09:57:55 / md"
7bb9ce880706 preferredExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
   553
    "Modified: / 27.7.1998 / 20:18:41 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   554
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   555
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   556
!EnterBox methodsFor:'startup'!
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   557
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   558
request
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   559
    "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
   560
     or an empty string, if abort was pressed"
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   561
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   562
    ^ self requestOnCancel:''
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   563
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   564
    "Modified: 27.1.1996 / 14:50:01 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   565
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   566
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   567
request:title
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   568
    "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
   569
     or  the empty string, if abort was pressed."
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   570
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   571
    ^ self request:title onCancel:''
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   572
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   573
    "
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   574
     EnterBox request:'enter some string:' 
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   575
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   576
     |bx|
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   577
     bx := EnterBox new.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   578
     bx label:'foo bar baz'.
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   579
     bx request:'enter some string:' 
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   580
    "
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   581
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   582
    "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
   583
    "Modified: 27.1.1996 / 14:49:23 / cg"
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   584
!
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   585
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   586
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
   587
    "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
   588
     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
   589
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   590
    self title:title.
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   591
    ^ self requestOnCancel:cancelValue
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   592
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   593
    "
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   594
     EnterBox request:'enter some string:' onCancel:nil
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   595
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   596
     |bx|
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   597
     bx := EnterBox new.
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   598
     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
   599
     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
   600
    "
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   601
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   602
    "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
   603
    "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
   604
!
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   605
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   606
requestOnCancel:cancelValue
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   607
    "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
   608
     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
   609
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   610
    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
   611
    self open.
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   612
    ^ cancelValue value
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   613
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   614
    "Created: 27.1.1996 / 14:47:47 / cg"
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   615
!
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   616
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   617
requestPassword:title
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   618
    "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
   619
     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
   620
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   621
    ^ 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
   622
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   623
    "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
   624
    "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
   625
!
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   626
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   627
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
   628
    "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
   629
     or cancelValue, if abort was pressed"
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   630
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   631
    enterField passwordCharacter:$*.
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   632
    ^ self request:title onCancel:cancelValue
181
dc72c27581b7 added requestPassword
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   633
306
6a6a1513b713 changed cancel-value to '' (ST-80 compat.); added xxx:onCancel: methods
Claus Gittinger <cg@exept.de>
parents: 242
diff changeset
   634
    "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
   635
    "Created: 27.1.1996 / 14:52:13 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 73
diff changeset
   636
! !
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   637
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   638
!EnterBox methodsFor:'user actions'!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   639
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   640
hideAndEvaluate:aBlock
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   641
    "common processing for all ok-actions (see subclasses);
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   642
     if modal, shut down box. 
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   643
     Then fetch entered string, trim spaces and evaluate actionBlock on it"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   644
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   645
    |string|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   646
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   647
    (windowGroup notNil and:[windowGroup isModal]) ifTrue:[
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   648
        self hide.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   649
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   650
    aBlock notNil ifTrue:[
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   651
        string := self contents.
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   652
        string isNil ifTrue:[
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   653
            string := ''
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   654
        ] ifFalse:[
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   655
            trimBlanks ifTrue:[
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   656
                string := string withoutSeparators
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   657
            ]
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   658
        ].
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   659
        aBlock value:string
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   660
    ]
669
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   661
fef6f8160573 allow blank-trimming to be turned off
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   662
    "Modified: 22.5.1996 / 15:24:30 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   663
! !
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   664
1613
5f5a595a696f defaultExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   665
!EnterBox class methodsFor:'documentation'!
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   666
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   667
version
1615
7bb9ce880706 preferredExtent a bit smaller.
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
   668
    ^ '$Header: /cvs/stx/stx/libwidg/EnterBox.st,v 1.47 1998-07-27 18:19:03 cg Exp $'
242
1fa14a974cc2 commentary
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   669
! !