EditField.st
author claus
Sun, 07 May 1995 02:16:56 +0200
changeset 122 04ec3fda7c11
parent 121 4e63bbdb266a
child 125 3ffa271732f7
permissions -rw-r--r--
.
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: 47
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
121
claus
parents: 120
diff changeset
    13
'From Smalltalk/X, Version:2.10.5 on 4-may-1995 at 8:46:55 am'!
105
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
    14
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    15
EditTextView subclass:#EditField
122
claus
parents: 121
diff changeset
    16
	 instanceVariableNames:'leaveAction enabled enableAction crAction tabAction
claus
parents: 121
diff changeset
    17
		converter acceptAction leaveKeys alwaysAccept acceptOnLeave acceptOnReturn'
105
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
    18
	 classVariableNames:'DefaultForegroundColor DefaultBackgroundColor
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
    19
		DefaultSelectionForegroundColor DefaultSelectionBackgroundColor
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
    20
		DefaultFont'
105
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
    21
	 poolDictionaries:''
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
    22
	 category:'Views-Text'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    23
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    24
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    25
EditField comment:'
5
claus
parents: 3
diff changeset
    26
COPYRIGHT (c) 1990 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
    27
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    28
122
claus
parents: 121
diff changeset
    29
$Header: /cvs/stx/stx/libwidg/EditField.st,v 1.20 1995-05-07 00:15:56 claus Exp $
19
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
    30
'!
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
    31
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
    32
!EditField class methodsFor:'documentation'!
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
    33
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    34
copyright
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
 COPYRIGHT (c) 1990 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
    37
	      All Rights Reserved
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    39
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    40
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    41
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    42
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    43
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    44
 hereby transferred.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    45
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    46
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    47
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    48
version
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    49
"
122
claus
parents: 121
diff changeset
    50
$Header: /cvs/stx/stx/libwidg/EditField.st,v 1.20 1995-05-07 00:15:56 claus Exp $
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    51
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    52
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    53
19
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
    54
documentation
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
    55
"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    56
    an editable text-field. Realized by using an EditTextView,
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    57
    and forcing its size to 1 line - disabling cursor movement
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    58
    in the vertical direction.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    59
    An action (leaveAction) is performed when the field is left
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    60
    by either Return or a cursor movement, or if 'accept' is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
    61
    performed from the menu.
121
claus
parents: 120
diff changeset
    62
claus
parents: 120
diff changeset
    63
    Instance variables:
claus
parents: 120
diff changeset
    64
claus
parents: 120
diff changeset
    65
      leaveAction    <Block | nil>              if non-nil, this is evaluated with
claus
parents: 120
diff changeset
    66
						the key (#Return, #CursorUp etc.) when
claus
parents: 120
diff changeset
    67
						the field is left via keyboard keys.
claus
parents: 120
diff changeset
    68
						(fieldGroups use this to decide which
claus
parents: 120
diff changeset
    69
						 field has to be enabled next)
claus
parents: 120
diff changeset
    70
claus
parents: 120
diff changeset
    71
      enabled        <Boolean>                  if false, input is ignored.
claus
parents: 120
diff changeset
    72
claus
parents: 120
diff changeset
    73
      enableAction   <Block | nil>
claus
parents: 120
diff changeset
    74
claus
parents: 120
diff changeset
    75
      crAction       <Block | nil>              if non-nil, keyboard input of a cr are not
claus
parents: 120
diff changeset
    76
						handled specially, instead this block is evaluated
claus
parents: 120
diff changeset
    77
						(however, this block can perform additional checks and send
claus
parents: 120
diff changeset
    78
						 a #accept then)
claus
parents: 120
diff changeset
    79
claus
parents: 120
diff changeset
    80
      tabAction      <Block | nil>              if non-nil, keyboard input of a tab character
claus
parents: 120
diff changeset
    81
						is not entered into the text, instead this block
claus
parents: 120
diff changeset
    82
						is evaluated.
claus
parents: 120
diff changeset
    83
claus
parents: 120
diff changeset
    84
      converter      <PrintConverter | nil>     if non-nil, this is supposed to convert between
claus
parents: 120
diff changeset
    85
						the object and its printed representation.
claus
parents: 120
diff changeset
    86
						Defaults to nil i.e. assume that strings are edited.
claus
parents: 120
diff changeset
    87
claus
parents: 120
diff changeset
    88
      acceptAction   <Block | nil>              if non-nil, this is performed in addition to
claus
parents: 120
diff changeset
    89
						the leaveAction.
claus
parents: 120
diff changeset
    90
claus
parents: 120
diff changeset
    91
      leaveKeys      <Collection>               keys which are interpreted as 'leving the field'
122
claus
parents: 121
diff changeset
    92
claus
parents: 121
diff changeset
    93
      alwaysAccept   <Boolean>                  if true, every change of the text is immediately
claus
parents: 121
diff changeset
    94
						forwardd to the model/acceptBlock.
claus
parents: 121
diff changeset
    95
						Default is false i.e. only forward changes
claus
parents: 121
diff changeset
    96
						on accept.
claus
parents: 121
diff changeset
    97
claus
parents: 121
diff changeset
    98
      acceptOnLeave  <Boolean>                  if true, leaving the field (via cursor keys)
claus
parents: 121
diff changeset
    99
						automatically accepts the value into the model.
claus
parents: 121
diff changeset
   100
						Default is false.
claus
parents: 121
diff changeset
   101
claus
parents: 121
diff changeset
   102
      acceptOnReturn <Boolean>                  if true, leaving the field via return
claus
parents: 121
diff changeset
   103
						automatically accepts the value into the model.
claus
parents: 121
diff changeset
   104
						Default is true.
19
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   105
"
120
claus
parents: 118
diff changeset
   106
!
claus
parents: 118
diff changeset
   107
claus
parents: 118
diff changeset
   108
examples 
claus
parents: 118
diff changeset
   109
"
122
claus
parents: 121
diff changeset
   110
    see more examples in EnterFieldGroup>>examples.
claus
parents: 121
diff changeset
   111
claus
parents: 121
diff changeset
   112
claus
parents: 121
diff changeset
   113
    basic field in a view:
120
claus
parents: 118
diff changeset
   114
claus
parents: 118
diff changeset
   115
	|top field|
claus
parents: 118
diff changeset
   116
claus
parents: 118
diff changeset
   117
	top := StandardSystemView new.
claus
parents: 118
diff changeset
   118
	top extent:200@100.
claus
parents: 118
diff changeset
   119
claus
parents: 118
diff changeset
   120
	field := EditField origin:0.0@0.0 in:top.
claus
parents: 118
diff changeset
   121
	field width:1.0.        'let its height as-is'.
claus
parents: 118
diff changeset
   122
claus
parents: 118
diff changeset
   123
	top open
claus
parents: 118
diff changeset
   124
122
claus
parents: 121
diff changeset
   125
claus
parents: 121
diff changeset
   126
    forward input in topView to field:
claus
parents: 121
diff changeset
   127
claus
parents: 121
diff changeset
   128
	|top field|
claus
parents: 121
diff changeset
   129
claus
parents: 121
diff changeset
   130
	top := StandardSystemView new.
claus
parents: 121
diff changeset
   131
	top extent:200@100.
claus
parents: 121
diff changeset
   132
claus
parents: 121
diff changeset
   133
	field := EditField origin:0.0@0.0 in:top.
claus
parents: 121
diff changeset
   134
	field width:1.0.        'let its height as-is'.
claus
parents: 121
diff changeset
   135
claus
parents: 121
diff changeset
   136
	top delegate:(KeyboardForwarder toView:field).
claus
parents: 121
diff changeset
   137
	top open
claus
parents: 121
diff changeset
   138
claus
parents: 121
diff changeset
   139
120
claus
parents: 118
diff changeset
   140
    just to make it look better: set some inset:
claus
parents: 118
diff changeset
   141
claus
parents: 118
diff changeset
   142
	|top field|
claus
parents: 118
diff changeset
   143
claus
parents: 118
diff changeset
   144
	top := StandardSystemView new.
claus
parents: 118
diff changeset
   145
	top extent:200@100.
claus
parents: 118
diff changeset
   146
claus
parents: 118
diff changeset
   147
	field := EditField origin:0.0@ViewSpacing in:top.
claus
parents: 118
diff changeset
   148
	field width:1.0.        'let its height as-is'.
claus
parents: 118
diff changeset
   149
	field leftInset:ViewSpacing;
claus
parents: 118
diff changeset
   150
	      rightInset:ViewSpacing.
claus
parents: 118
diff changeset
   151
claus
parents: 118
diff changeset
   152
	top open
claus
parents: 118
diff changeset
   153
122
claus
parents: 121
diff changeset
   154
120
claus
parents: 118
diff changeset
   155
    give it an initial contents:
claus
parents: 118
diff changeset
   156
claus
parents: 118
diff changeset
   157
	|top field|
claus
parents: 118
diff changeset
   158
claus
parents: 118
diff changeset
   159
	top := StandardSystemView new.
claus
parents: 118
diff changeset
   160
	top extent:200@100.
claus
parents: 118
diff changeset
   161
claus
parents: 118
diff changeset
   162
	field := EditField origin:0.0@ViewSpacing in:top.
claus
parents: 118
diff changeset
   163
	field width:1.0.       
claus
parents: 118
diff changeset
   164
	field leftInset:ViewSpacing;
claus
parents: 118
diff changeset
   165
	      rightInset:ViewSpacing.
121
claus
parents: 120
diff changeset
   166
	field editValue:'hello world'.
120
claus
parents: 118
diff changeset
   167
claus
parents: 118
diff changeset
   168
	top open
claus
parents: 118
diff changeset
   169
122
claus
parents: 121
diff changeset
   170
120
claus
parents: 118
diff changeset
   171
    and have it preselected:
claus
parents: 118
diff changeset
   172
claus
parents: 118
diff changeset
   173
	|top field|
claus
parents: 118
diff changeset
   174
claus
parents: 118
diff changeset
   175
	top := StandardSystemView new.
claus
parents: 118
diff changeset
   176
	top extent:200@100.
claus
parents: 118
diff changeset
   177
claus
parents: 118
diff changeset
   178
	field := EditField origin:0.0@ViewSpacing in:top.
claus
parents: 118
diff changeset
   179
	field width:1.0.     
claus
parents: 118
diff changeset
   180
	field leftInset:ViewSpacing;
claus
parents: 118
diff changeset
   181
	      rightInset:ViewSpacing.
121
claus
parents: 120
diff changeset
   182
	field editValue:'hello world' selected:true.
120
claus
parents: 118
diff changeset
   183
claus
parents: 118
diff changeset
   184
	top open
claus
parents: 118
diff changeset
   185
122
claus
parents: 121
diff changeset
   186
120
claus
parents: 118
diff changeset
   187
    have part of it preselected:
claus
parents: 118
diff changeset
   188
claus
parents: 118
diff changeset
   189
	|top field|
claus
parents: 118
diff changeset
   190
claus
parents: 118
diff changeset
   191
	top := StandardSystemView new.
claus
parents: 118
diff changeset
   192
	top extent:200@100.
claus
parents: 118
diff changeset
   193
claus
parents: 118
diff changeset
   194
	field := EditField origin:0.0@ViewSpacing in:top.
claus
parents: 118
diff changeset
   195
	field width:1.0.     
claus
parents: 118
diff changeset
   196
	field leftInset:ViewSpacing;
claus
parents: 118
diff changeset
   197
	      rightInset:ViewSpacing.
121
claus
parents: 120
diff changeset
   198
	field editValue:'hello world';
120
claus
parents: 118
diff changeset
   199
	      selectFromCharacterPosition:1 to:5.
claus
parents: 118
diff changeset
   200
claus
parents: 118
diff changeset
   201
	top open
claus
parents: 118
diff changeset
   202
122
claus
parents: 121
diff changeset
   203
121
claus
parents: 120
diff changeset
   204
    use a converter:
claus
parents: 120
diff changeset
   205
      - numbers:
claus
parents: 120
diff changeset
   206
claus
parents: 120
diff changeset
   207
	|top field|
claus
parents: 120
diff changeset
   208
claus
parents: 120
diff changeset
   209
	top := StandardSystemView new.
claus
parents: 120
diff changeset
   210
	top extent:200@100.
claus
parents: 120
diff changeset
   211
claus
parents: 120
diff changeset
   212
	field := EditField origin:0.0@ViewSpacing in:top.
claus
parents: 120
diff changeset
   213
	field width:1.0.
claus
parents: 120
diff changeset
   214
	field leftInset:ViewSpacing;
claus
parents: 120
diff changeset
   215
	      rightInset:ViewSpacing.
claus
parents: 120
diff changeset
   216
claus
parents: 120
diff changeset
   217
	field converter:(PrintConverter new initForNumber).
claus
parents: 120
diff changeset
   218
	field editValue:1234.
claus
parents: 120
diff changeset
   219
	field acceptAction:[:value | Transcript showCr:value].
claus
parents: 120
diff changeset
   220
	field crAction:[field accept. top destroy].
claus
parents: 120
diff changeset
   221
	top open.
claus
parents: 120
diff changeset
   222
claus
parents: 120
diff changeset
   223
      - dates:
claus
parents: 120
diff changeset
   224
claus
parents: 120
diff changeset
   225
	|top field|
claus
parents: 120
diff changeset
   226
claus
parents: 120
diff changeset
   227
	top := StandardSystemView new.
claus
parents: 120
diff changeset
   228
	top extent:200@100.
claus
parents: 120
diff changeset
   229
claus
parents: 120
diff changeset
   230
	field := EditField origin:0.0@ViewSpacing in:top.
claus
parents: 120
diff changeset
   231
	field width:1.0.
claus
parents: 120
diff changeset
   232
	field leftInset:ViewSpacing;
claus
parents: 120
diff changeset
   233
	      rightInset:ViewSpacing.
claus
parents: 120
diff changeset
   234
claus
parents: 120
diff changeset
   235
	field converter:(PrintConverter new initForDate).
claus
parents: 120
diff changeset
   236
	field editValue:Date today.
claus
parents: 120
diff changeset
   237
	field acceptAction:[:value | Transcript show:value class name; space; showCr:value].
claus
parents: 120
diff changeset
   238
	field crAction:[field accept. top destroy].
claus
parents: 120
diff changeset
   239
	top open.
claus
parents: 120
diff changeset
   240
122
claus
parents: 121
diff changeset
   241
121
claus
parents: 120
diff changeset
   242
    setting alwaysAccept, makes the field update with every key:
claus
parents: 120
diff changeset
   243
      - numbers:
claus
parents: 120
diff changeset
   244
claus
parents: 120
diff changeset
   245
	|top field|
claus
parents: 120
diff changeset
   246
claus
parents: 120
diff changeset
   247
	top := StandardSystemView new.
claus
parents: 120
diff changeset
   248
	top extent:200@100.
claus
parents: 120
diff changeset
   249
claus
parents: 120
diff changeset
   250
	field := EditField origin:0.0@ViewSpacing in:top.
claus
parents: 120
diff changeset
   251
	field width:1.0.
claus
parents: 120
diff changeset
   252
	field leftInset:ViewSpacing;
claus
parents: 120
diff changeset
   253
	      rightInset:ViewSpacing.
claus
parents: 120
diff changeset
   254
claus
parents: 120
diff changeset
   255
	field converter:(PrintConverter new initForNumber).
claus
parents: 120
diff changeset
   256
	field alwaysAccept:true.
claus
parents: 120
diff changeset
   257
	field editValue:1234.
claus
parents: 120
diff changeset
   258
	field acceptAction:[:value | Transcript showCr:value].
claus
parents: 120
diff changeset
   259
	field crAction:[field accept. top destroy].
claus
parents: 120
diff changeset
   260
	top open.
claus
parents: 120
diff changeset
   261
122
claus
parents: 121
diff changeset
   262
120
claus
parents: 118
diff changeset
   263
    use a model:
claus
parents: 118
diff changeset
   264
    (see changing model value in inspector when return is pressed in the field)
claus
parents: 118
diff changeset
   265
claus
parents: 118
diff changeset
   266
	|top field model|
claus
parents: 118
diff changeset
   267
claus
parents: 118
diff changeset
   268
	model := 'hello world' asValue.
claus
parents: 118
diff changeset
   269
claus
parents: 118
diff changeset
   270
	top := StandardSystemView new.
claus
parents: 118
diff changeset
   271
	top extent:200@100.
claus
parents: 118
diff changeset
   272
claus
parents: 118
diff changeset
   273
	field := EditField origin:0.0@ViewSpacing in:top.
121
claus
parents: 120
diff changeset
   274
	field width:1.0.
120
claus
parents: 118
diff changeset
   275
	field leftInset:ViewSpacing;
claus
parents: 118
diff changeset
   276
	      rightInset:ViewSpacing.
claus
parents: 118
diff changeset
   277
	field model:model.
claus
parents: 118
diff changeset
   278
claus
parents: 118
diff changeset
   279
	top open.
121
claus
parents: 120
diff changeset
   280
	model inspect.
claus
parents: 120
diff changeset
   281
122
claus
parents: 121
diff changeset
   282
121
claus
parents: 120
diff changeset
   283
    two views on the same model:
claus
parents: 120
diff changeset
   284
claus
parents: 120
diff changeset
   285
	|top1 top2 field1 field2 model|
claus
parents: 120
diff changeset
   286
claus
parents: 120
diff changeset
   287
	model := 'hello world' asValue.
claus
parents: 120
diff changeset
   288
claus
parents: 120
diff changeset
   289
	top1 := StandardSystemView new.
claus
parents: 120
diff changeset
   290
	top1 extent:200@100.
claus
parents: 120
diff changeset
   291
	field1 := EditField origin:0.0@ViewSpacing in:top1.
claus
parents: 120
diff changeset
   292
	field1 width:1.0.
claus
parents: 120
diff changeset
   293
	field1 leftInset:ViewSpacing;
claus
parents: 120
diff changeset
   294
	      rightInset:ViewSpacing.
claus
parents: 120
diff changeset
   295
	field1 model:model.
claus
parents: 120
diff changeset
   296
	top1 open.
claus
parents: 120
diff changeset
   297
claus
parents: 120
diff changeset
   298
	top2 := StandardSystemView new.
claus
parents: 120
diff changeset
   299
	top2 extent:200@100.
claus
parents: 120
diff changeset
   300
	field2 := EditField origin:0.0@ViewSpacing in:top2.
claus
parents: 120
diff changeset
   301
	field2 width:1.0.
claus
parents: 120
diff changeset
   302
	field2 leftInset:ViewSpacing;
claus
parents: 120
diff changeset
   303
	      rightInset:ViewSpacing.
claus
parents: 120
diff changeset
   304
	field2 model:model.
claus
parents: 120
diff changeset
   305
	top2 open.
claus
parents: 120
diff changeset
   306
122
claus
parents: 121
diff changeset
   307
121
claus
parents: 120
diff changeset
   308
    just an example; a checkBox and an editField on the same model:
claus
parents: 120
diff changeset
   309
claus
parents: 120
diff changeset
   310
	|top1 top2 field1 box model|
claus
parents: 120
diff changeset
   311
claus
parents: 120
diff changeset
   312
	model := false asValue.
claus
parents: 120
diff changeset
   313
claus
parents: 120
diff changeset
   314
	top1 := StandardSystemView new.
claus
parents: 120
diff changeset
   315
	top1 extent:200@100.
claus
parents: 120
diff changeset
   316
	field1 := EditField origin:0.0@ViewSpacing in:top1.
claus
parents: 120
diff changeset
   317
	field1 width:1.0.
claus
parents: 120
diff changeset
   318
	field1 leftInset:ViewSpacing;
claus
parents: 120
diff changeset
   319
	      rightInset:ViewSpacing.
claus
parents: 120
diff changeset
   320
	field1 converter:(PrintConverter new initForYesNo).
claus
parents: 120
diff changeset
   321
	field1 model:model.
claus
parents: 120
diff changeset
   322
	top1 open.
claus
parents: 120
diff changeset
   323
claus
parents: 120
diff changeset
   324
	top2 := StandardSystemView new.
claus
parents: 120
diff changeset
   325
	top2 extent:200@100.
claus
parents: 120
diff changeset
   326
	box := CheckBox on:model.
claus
parents: 120
diff changeset
   327
	box label:'on/off'.
claus
parents: 120
diff changeset
   328
	top2 add:box.
claus
parents: 120
diff changeset
   329
	top2 open.
claus
parents: 120
diff changeset
   330
120
claus
parents: 118
diff changeset
   331
	model inspect.
claus
parents: 118
diff changeset
   332
"
19
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   333
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   334
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   335
!EditField class methodsFor:'defaults'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   336
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   337
updateStyleCache
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   338
    DefaultForegroundColor := StyleSheet colorAt:'editFieldForegroundColor' default:Black.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   339
    DefaultBackgroundColor := StyleSheet colorAt:'editFieldBackgroundColor' default:White.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   340
    DefaultSelectionForegroundColor := StyleSheet colorAt:'editFieldSelectionForegroundColor' default:DefaultBackgroundColor.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   341
    DefaultSelectionBackgroundColor := StyleSheet colorAt:'editFieldSelectionBackgroundColor' default:DefaultForegroundColor.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   342
    DefaultFont := StyleSheet fontAt:'editFieldFont' default:nil.
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   343
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   344
    "
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   345
     self updateStyleCache
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   346
    "
105
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   347
!
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   348
121
claus
parents: 120
diff changeset
   349
defaultLeaveKeys
claus
parents: 120
diff changeset
   350
    ^ #(Return CursorUp CursorDown Next Previous Accept)
claus
parents: 120
diff changeset
   351
!
claus
parents: 120
diff changeset
   352
105
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   353
defaultNumberOfLines
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   354
    "the number of lines in the field"
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   355
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   356
    ^ 1
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   357
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   358
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   359
!EditField methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   360
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   361
initialize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   362
    super initialize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   363
    self height:(font height + font descent + (topMargin * 2)).
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   364
    enabled := true.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   365
    fixedSize := true.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   366
    nFullLinesShown := 1.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   367
    nLinesShown := 1.
121
claus
parents: 120
diff changeset
   368
    alwaysAccept := false.
122
claus
parents: 121
diff changeset
   369
    acceptOnLeave := false.
claus
parents: 121
diff changeset
   370
    acceptOnReturn := true.
121
claus
parents: 120
diff changeset
   371
    leaveKeys := self class defaultLeaveKeys.
claus
parents: 120
diff changeset
   372
    cursorShown := true
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   373
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   374
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   375
initStyle
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   376
    super initStyle.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   377
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   378
    DefaultBackgroundColor notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   379
	bgColor := DefaultBackgroundColor on:device.
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   380
	self viewBackground:bgColor.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   381
    ].
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   382
    fgColor := DefaultForegroundColor.
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   383
    selectionFgColor := DefaultSelectionForegroundColor.
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   384
    selectionBgColor := DefaultSelectionBackgroundColor.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   385
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   386
    DefaultFont notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   387
	font := DefaultFont on:device
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   388
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   389
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   390
97
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   391
editMenu
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   392
    |labels selectors m|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   393
97
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   394
    labels := #(
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   395
		'copy'
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   396
		'cut'
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   397
		'paste'
19
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   398
"
97
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   399
		'replace'
19
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   400
"
97
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   401
		'-'
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   402
		'accept'
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   403
	       ).
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   404
97
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   405
     selectors := #(
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   406
		 copySelection
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   407
		 cut
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   408
		 paste
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   409
"
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   410
		 replace
19
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   411
"
97
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   412
		 nil
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   413
		 accept
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   414
		).
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   415
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   416
    m := PopUpMenu 
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   417
	  labels:(resources array:labels)
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   418
	  selectors:selectors.
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   419
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   420
    self hasSelection ifFalse:[
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   421
	m disable:#copySelection.
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   422
	m disable:#cut
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   423
    ].
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   424
cbf495fe3b64 *** empty log message ***
claus
parents: 77
diff changeset
   425
    ^ m
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   426
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   427
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   428
!EditField methodsFor:'realization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   429
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   430
realize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   431
    "scroll back to beginning when realized"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   432
    leftOffset := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   433
    super realize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   434
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   435
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   436
!EditField methodsFor:'private'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   437
120
claus
parents: 118
diff changeset
   438
getListFromModel
claus
parents: 118
diff changeset
   439
    "redefined to aquire the text via the aspectMsg - not the listMsg"
claus
parents: 118
diff changeset
   440
121
claus
parents: 120
diff changeset
   441
    |savedCursorCol|
claus
parents: 120
diff changeset
   442
120
claus
parents: 118
diff changeset
   443
    (model notNil and:[aspectMsg notNil]) ifTrue:[
121
claus
parents: 120
diff changeset
   444
	"
claus
parents: 120
diff changeset
   445
	 kludge: editValue positions cursor to beginning
claus
parents: 120
diff changeset
   446
	"
claus
parents: 120
diff changeset
   447
	savedCursorCol := cursorCol.
claus
parents: 120
diff changeset
   448
	self editValue:(model perform:aspectMsg).
claus
parents: 120
diff changeset
   449
	savedCursorCol ~~ 1 ifTrue:[self cursorLine:1 col:savedCursorCol].
claus
parents: 120
diff changeset
   450
	cursorVisibleLine := 1.
claus
parents: 120
diff changeset
   451
    ]
claus
parents: 120
diff changeset
   452
!
claus
parents: 120
diff changeset
   453
claus
parents: 120
diff changeset
   454
textChanged
claus
parents: 120
diff changeset
   455
    super textChanged.
claus
parents: 120
diff changeset
   456
    alwaysAccept ifTrue:[
claus
parents: 120
diff changeset
   457
	self accept
120
claus
parents: 118
diff changeset
   458
    ]
claus
parents: 118
diff changeset
   459
!
claus
parents: 118
diff changeset
   460
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   461
startAutoScrollUp:y
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   462
    "no vertical scrolling in editfields"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   463
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   464
    ^ self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   465
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   466
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   467
startAutoScrollDown:y
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   468
    "no vertical scrolling in editfields"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   469
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   470
    ^ self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   471
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   472
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   473
!EditField methodsFor:'queries'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   474
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   475
preferedExtent
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   476
    "return the prefered extent of this view.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   477
     That is the width of the string plus some extra, 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   478
     but not wider than half of the screen"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   479
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   480
    |string w|
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   481
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   482
    string := self contents.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   483
    (string isNil or:[string isBlank]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   484
	string := '          ' "/ just any string is ok ^ super preferedExtent
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   485
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   486
    w := (((font on:device) widthOf:string) * 1.5) rounded.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   487
    w := w min:(device width // 2).
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   488
    ^ w @ self height
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   489
! !
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   490
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   491
!EditField methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   492
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   493
list:someText
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   494
    "redefined to force text to 1 line, and notify dependents
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   495
     of any changed extent-wishes."
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   496
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   497
    |l oldWidth|
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   498
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   499
    l := someText.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   500
    l size > 1 ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   501
	l := OrderedCollection with:(l at:1)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   502
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   503
    oldWidth := self widthOfContents.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   504
    super list:l.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   505
    self widthOfContents ~~ oldWidth ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   506
	self changed:#preferedExtent
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   507
    ]
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   508
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   509
121
claus
parents: 120
diff changeset
   510
contents:someText
claus
parents: 120
diff changeset
   511
    "set the contents from a string
122
claus
parents: 121
diff changeset
   512
     - redefined to place the cursor to the end.
claus
parents: 121
diff changeset
   513
    In your application, please use #editValue:; 
claus
parents: 121
diff changeset
   514
    it uses a converter (if any) and is compatible to ST-80."
121
claus
parents: 120
diff changeset
   515
claus
parents: 120
diff changeset
   516
    super contents:someText.
claus
parents: 120
diff changeset
   517
    self cursorCol:(someText size + 1).
claus
parents: 120
diff changeset
   518
!
claus
parents: 120
diff changeset
   519
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   520
contents
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   521
    "return contents as a string
122
claus
parents: 121
diff changeset
   522
     - redefined since EditFields hold only one line of text.
claus
parents: 121
diff changeset
   523
    In your application, please use #editValue; 
claus
parents: 121
diff changeset
   524
    it uses a converter (if any) and is compatible to ST-80."
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   525
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   526
    list isNil ifTrue:[^ ''].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   527
    (list size == 0) ifTrue:[^ ''].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   528
    ^ list at:1
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   529
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   530
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   531
enable
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   532
    "enable the field; show cursor and allow input"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   533
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   534
    enabled ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   535
	enableAction notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   536
	    enableAction value
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   537
	].
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   538
	enabled := true.
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   539
	super showCursor
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   540
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   541
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   542
105
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   543
leaveAction:aBlock
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   544
    "define an action to be evaluated when field is left by return key"
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   545
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   546
    leaveAction := aBlock
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   547
!
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   548
122
claus
parents: 121
diff changeset
   549
leaveKeys:aCollectionOfKeySymbols 
claus
parents: 121
diff changeset
   550
    "define the set of keys which are interpreted as leaveKeys.
claus
parents: 121
diff changeset
   551
     I.e. those that make the field inactive and accept (if acceptOnLeave is true).
claus
parents: 121
diff changeset
   552
     The default is a set of #CursorUp, #CursorDown, #Next, #Prior and #Return."
claus
parents: 121
diff changeset
   553
claus
parents: 121
diff changeset
   554
    leaveKeys := aCollectionOfKeySymbols
claus
parents: 121
diff changeset
   555
!
claus
parents: 121
diff changeset
   556
121
claus
parents: 120
diff changeset
   557
crAction:aBlock
claus
parents: 120
diff changeset
   558
    "define an action to be evaluated when the return key is pressed."
claus
parents: 120
diff changeset
   559
claus
parents: 120
diff changeset
   560
    crAction := aBlock
claus
parents: 120
diff changeset
   561
!
claus
parents: 120
diff changeset
   562
claus
parents: 120
diff changeset
   563
acceptAction:aBlock
claus
parents: 120
diff changeset
   564
    "define an action to be evaluated when accepted."
claus
parents: 120
diff changeset
   565
claus
parents: 120
diff changeset
   566
    acceptAction := aBlock
claus
parents: 120
diff changeset
   567
!
claus
parents: 120
diff changeset
   568
claus
parents: 120
diff changeset
   569
tabAction:aBlock
claus
parents: 120
diff changeset
   570
    "define an action to be evaluated when the tabulator key is pressed."
claus
parents: 120
diff changeset
   571
claus
parents: 120
diff changeset
   572
    tabAction := aBlock
claus
parents: 120
diff changeset
   573
!
claus
parents: 120
diff changeset
   574
claus
parents: 120
diff changeset
   575
alwaysAccept:aBoolean
122
claus
parents: 121
diff changeset
   576
    "set/clear the alwaysAccept flag. The default is false."
121
claus
parents: 120
diff changeset
   577
claus
parents: 120
diff changeset
   578
     alwaysAccept := aBoolean
claus
parents: 120
diff changeset
   579
!
claus
parents: 120
diff changeset
   580
122
claus
parents: 121
diff changeset
   581
acceptOnReturn:aBoolean
claus
parents: 121
diff changeset
   582
    "set/clear the acceptOnReturn flag. The default is true."
claus
parents: 121
diff changeset
   583
claus
parents: 121
diff changeset
   584
     acceptOnReturn := aBoolean
claus
parents: 121
diff changeset
   585
!
claus
parents: 121
diff changeset
   586
claus
parents: 121
diff changeset
   587
acceptOnLeave:aBoolean
claus
parents: 121
diff changeset
   588
    "set/clear the acceptOnLeave flag. The default is false."
claus
parents: 121
diff changeset
   589
claus
parents: 121
diff changeset
   590
     acceptOnLeave := aBoolean
claus
parents: 121
diff changeset
   591
!
claus
parents: 121
diff changeset
   592
121
claus
parents: 120
diff changeset
   593
converter
claus
parents: 120
diff changeset
   594
    "return the converter (if any)."
claus
parents: 120
diff changeset
   595
claus
parents: 120
diff changeset
   596
    ^ converter
claus
parents: 120
diff changeset
   597
!
claus
parents: 120
diff changeset
   598
claus
parents: 120
diff changeset
   599
editValue
claus
parents: 120
diff changeset
   600
    "if the field edits a string, this is a name alias for #contents.
claus
parents: 120
diff changeset
   601
     Otherwise, if there is a converter, return the edited string
claus
parents: 120
diff changeset
   602
     converted to an appropriate object."
claus
parents: 120
diff changeset
   603
claus
parents: 120
diff changeset
   604
    |text|
claus
parents: 120
diff changeset
   605
claus
parents: 120
diff changeset
   606
    text := self contents.
claus
parents: 120
diff changeset
   607
    converter isNil ifTrue:[^ text].
claus
parents: 120
diff changeset
   608
    ^ converter readValueFrom:text withoutSpaces
claus
parents: 120
diff changeset
   609
!
claus
parents: 120
diff changeset
   610
claus
parents: 120
diff changeset
   611
editValue:aStringOrObject
claus
parents: 120
diff changeset
   612
    "set the contents. If there is a converter, use it to convert
claus
parents: 120
diff changeset
   613
     the object into a printed representation.
claus
parents: 120
diff changeset
   614
     Otherwise, the argument is supposed to be a string like object,
claus
parents: 120
diff changeset
   615
     and used directly (i.e. this is equivalent to sending #contents:)."
claus
parents: 120
diff changeset
   616
claus
parents: 120
diff changeset
   617
    self editValue:aStringOrObject selected:false
claus
parents: 120
diff changeset
   618
!
claus
parents: 120
diff changeset
   619
claus
parents: 120
diff changeset
   620
editValue:aStringOrObject selected:aBoolean
claus
parents: 120
diff changeset
   621
    "set the contents. If there is a converter, use it to convert
claus
parents: 120
diff changeset
   622
     the object into a printed representation.
claus
parents: 120
diff changeset
   623
     Otherwise, the argument is supposed to be a string like object,
claus
parents: 120
diff changeset
   624
     and used directly (i.e. this is equivalent to sending #contents:)."
claus
parents: 120
diff changeset
   625
claus
parents: 120
diff changeset
   626
    |text|
claus
parents: 120
diff changeset
   627
claus
parents: 120
diff changeset
   628
    converter notNil ifTrue:[
claus
parents: 120
diff changeset
   629
	text := converter printStringFor:aStringOrObject
claus
parents: 120
diff changeset
   630
    ] ifFalse:[
claus
parents: 120
diff changeset
   631
	text :=  aStringOrObject.
claus
parents: 120
diff changeset
   632
    ].
claus
parents: 120
diff changeset
   633
    self contents:text.
claus
parents: 120
diff changeset
   634
    aBoolean ifTrue:[
claus
parents: 120
diff changeset
   635
	self selectFromLine:1 col:1 toLine:1 col:text size
claus
parents: 120
diff changeset
   636
    ]
claus
parents: 120
diff changeset
   637
!
claus
parents: 120
diff changeset
   638
claus
parents: 120
diff changeset
   639
converter:aConverter
claus
parents: 120
diff changeset
   640
    "set the converter. If non-nil,
claus
parents: 120
diff changeset
   641
     the converter is applied to the text to convert from the string
claus
parents: 120
diff changeset
   642
     representation to the actual object value and vice versa.
claus
parents: 120
diff changeset
   643
     The default converter is nil, meaning no-conversion
claus
parents: 120
diff changeset
   644
     (i.e. the edited object is the string itself."
claus
parents: 120
diff changeset
   645
claus
parents: 120
diff changeset
   646
    converter := aConverter
claus
parents: 120
diff changeset
   647
!
claus
parents: 120
diff changeset
   648
claus
parents: 120
diff changeset
   649
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   650
disable
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   651
    "disable the field; hide cursor and ignore input"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   652
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   653
    enabled ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   654
	enabled := false.
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   655
	self hideCursor
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   656
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   657
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   658
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   659
enableAction:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   660
    "define an action to be evaluated when enabled by clicking upon"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   661
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   662
    enableAction := aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   663
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   664
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   665
initialText:aString selected:aBoolean
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   666
    "set the initialText and select it if aBoolean is true"
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   667
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   668
    |len s|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   669
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   670
    leftOffset := 0.
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   671
    self contents:(s := aString asString).
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   672
    aBoolean ifTrue:[
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   673
	(len := s size) ~~ 0 ifTrue:[
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   674
	    self selectFromLine:1 col:1 toLine:1 col:len
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   675
	]
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   676
    ]
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   677
!
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   678
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   679
initialText:aString
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   680
    "set the initialText and select it"
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   681
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   682
    self initialText:aString selected:true
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   683
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   684
105
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   685
!EditField methodsFor:'editing'!
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   686
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   687
paste:someText
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   688
    "redefined to force text to 1 line"
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   689
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   690
    super paste:someText.
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   691
    list size > 1 ifTrue:[
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   692
	self deleteFromLine:2 toLine:(list size)
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   693
    ]
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   694
! !
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   695
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   696
!EditField methodsFor:'cursor drawing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   697
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   698
showCursor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   699
    "make cursor visible if currently invisible - but only if this
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   700
     EditField is enabled"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   701
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   702
    enabled ifTrue:[super showCursor]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   703
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   704
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   705
!EditField methodsFor:'cursor movement'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   706
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   707
cursorLine:line col:col
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   708
    "catch cursor movement"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   709
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   710
    super cursorLine:1 col:col
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   711
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   712
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   713
cursorDown
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   714
    "catch cursor movement"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   715
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   716
    (cursorVisibleLine == nLinesShown) ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   717
	super cursorDown
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   718
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   719
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   720
70
14443a9ea4ec *** empty log message ***
claus
parents: 62
diff changeset
   721
!EditField methodsFor:'event handling'!
19
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   722
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   723
accept
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   724
    "accept the fields contents - perform the leave action as if
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   725
     return was pressed."
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   726
121
claus
parents: 120
diff changeset
   727
    |value|
claus
parents: 120
diff changeset
   728
claus
parents: 120
diff changeset
   729
    value := self editValue.
claus
parents: 120
diff changeset
   730
    acceptAction notNil ifTrue:[
claus
parents: 120
diff changeset
   731
	acceptAction value:value
19
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   732
    ].
121
claus
parents: 120
diff changeset
   733
claus
parents: 120
diff changeset
   734
    "model-view behavior"
claus
parents: 120
diff changeset
   735
    self sendChangeMessageWith:value.
19
a696fb528758 *** empty log message ***
claus
parents: 7
diff changeset
   736
!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   737
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   738
buttonPress:button x:x y:y
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   739
    "enable myself on mouse click"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   740
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   741
    enabled ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   742
	enabled := true.
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   743
	super buttonPress:button x:x y:y.
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   744
	enableAction notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   745
	    enableAction value
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   746
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   747
    ] ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   748
	super buttonPress:button x:x y:y
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   749
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   750
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   751
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   752
keyPress:key x:x y:y
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   753
    "if keyHandler is defined, pass input; otherwise check for leave
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   754
     keys"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   755
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   756
    |leave xCol newOffset oldWidth newWidth|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   757
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   758
    enabled ifFalse:[
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   759
	^ self
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   760
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   761
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   762
    (key == #DeleteLine) ifTrue:[
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   763
	Smalltalk at:#CopyBuffer put:(self contents).
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   764
	self contents:''. ^ self
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   765
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   766
121
claus
parents: 120
diff changeset
   767
    (key == #Tab) ifTrue:[
claus
parents: 120
diff changeset
   768
	tabAction notNil ifTrue:[tabAction value. ^ self].
claus
parents: 120
diff changeset
   769
    ].
claus
parents: 120
diff changeset
   770
    (key == #Return) ifTrue:[
claus
parents: 120
diff changeset
   771
	crAction notNil ifTrue:[crAction value. ^ self].
claus
parents: 120
diff changeset
   772
    ].
claus
parents: 120
diff changeset
   773
    leave := leaveKeys includes:key.
claus
parents: 120
diff changeset
   774
    leave ifTrue:[
claus
parents: 120
diff changeset
   775
	leaveAction notNil ifTrue:[
claus
parents: 120
diff changeset
   776
	    leaveAction value:key
claus
parents: 120
diff changeset
   777
	].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   778
122
claus
parents: 121
diff changeset
   779
	((key == #Return and:[acceptOnReturn])
claus
parents: 121
diff changeset
   780
	or:[key ~~ #Return and:[acceptOnLeave]]) ifTrue:[
claus
parents: 121
diff changeset
   781
	    self accept.
claus
parents: 121
diff changeset
   782
	].
claus
parents: 121
diff changeset
   783
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   784
	x >= 0 ifTrue:[
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   785
	    "
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   786
	     let superview know about the leave ...
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   787
	     This is a temporary kludge for the tableWidget -
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   788
	     it is no clean coding style. Should make the tableWidget
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   789
	     a proper model and handle it via the changed mechanism ....
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   790
	    "
121
claus
parents: 120
diff changeset
   791
	    (superView notNil and:[superView canHandle:key from:self]) ifTrue:[
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   792
		superView keyPress:key x:x y:y.
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   793
	    ].
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   794
	].
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   795
	^ self
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   796
    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   797
121
claus
parents: 120
diff changeset
   798
    "
claus
parents: 120
diff changeset
   799
     ignore some keys (if not a leaveKey) ...
claus
parents: 120
diff changeset
   800
    "
claus
parents: 120
diff changeset
   801
    (key == #Find) ifTrue:[^self].
claus
parents: 120
diff changeset
   802
    (key == #FindNext) ifTrue:[^self].
claus
parents: 120
diff changeset
   803
    (key == #FindPrev) ifTrue:[^self].
claus
parents: 120
diff changeset
   804
    (key == #GotoLine) ifTrue:[^self].
claus
parents: 120
diff changeset
   805
claus
parents: 120
diff changeset
   806
    "
claus
parents: 120
diff changeset
   807
     a normal key - let superclass's method insert it
claus
parents: 120
diff changeset
   808
    "
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   809
    oldWidth := self widthOfContents.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   810
    super keyPress:key x:x y:y.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   811
    newWidth := self widthOfContents.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   812
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   813
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   814
     should (& can) we resize ?
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   815
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   816
    xCol := (self xOfCol:cursorCol inVisibleLine:cursorLine) - leftOffset.
3
claus
parents: 0
diff changeset
   817
    (xCol > (width * (5/6))) ifTrue:[
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   818
	self changed:#preferedExtent
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   819
    ] ifFalse:[
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   820
	newWidth < (width * (1/6)) ifTrue:[
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   821
	    self changed:#preferedExtent
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   822
	]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   823
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   824
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   825
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   826
     did someone react ?
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   827
     (if not, we scroll horizontally)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   828
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 47
diff changeset
   829
    xCol := (self xOfCol:cursorCol inVisibleLine:cursorLine) - leftOffset.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   830
    (xCol > (width * (5/6))) ifTrue:[
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   831
	newOffset := leftOffset + (width // 2).
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   832
    ] ifFalse:[
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   833
	(xCol < (width * (1/6))) ifTrue:[
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   834
	    newOffset := 0 max: leftOffset - (width // 2).
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   835
	] ifFalse:[
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   836
	    newOffset := leftOffset
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   837
	]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   838
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 19
diff changeset
   839
    newOffset ~~ leftOffset ifTrue:[
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   840
	leftOffset := newOffset.
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   841
	self clear.
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   842
	self redraw
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   843
    ]
105
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   844
!
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   845
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   846
canHandle:aKey
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   847
    "return true, if the receiver would like to handle aKey
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   848
     (usually from another view, when the receiver is part of
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   849
      a more complex dialog box).
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   850
     We do return true here, since the editfield will handle
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   851
     all keys."
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   852
3d064ba4a0cc *** empty log message ***
claus
parents: 97
diff changeset
   853
    ^ true
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   854
! !