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