EditField.st
author claus
Wed, 13 Oct 1993 02:04:14 +0100
changeset 3 9d7eefb5e69f
parent 0 e6a541c1c0eb
child 5 7b4fb1b170e5
permissions -rw-r--r--
(none)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     1
"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1990-93 by Claus Gittinger
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     3
              All Rights Reserved
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
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    13
EditTextView subclass:#EditField
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    14
       instanceVariableNames:'leaveAction enabled enableAction'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    15
       classVariableNames:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    16
       poolDictionaries:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    17
       category:'Views-Text'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    18
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    19
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    20
EditField comment:'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    21
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    22
COPYRIGHT (c) 1990-93 by Claus Gittinger
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    23
              All Rights Reserved
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    24
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    25
an editable text-field. Realized by using an EditTextView,
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    26
and forcing its size to 1 line - disabling cursor movement
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    27
in the vertical direction.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    28
3
claus
parents: 0
diff changeset
    29
$Header: /cvs/stx/stx/libwidg/EditField.st,v 1.2 1993-10-13 01:01:54 claus Exp $
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    30
written jan-90 by claus
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    31
'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    32
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    33
!EditField class methodsFor:'defaults'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    34
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    35
defaultNumberOfLines
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    36
    "the number of lines in the field"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    37
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    38
    ^ 1
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    39
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    40
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    41
!EditField methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    42
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    43
initialize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    44
    super initialize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    45
    self height:(font height + font descent + (topMargin * 2)).
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    46
    enabled := true.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    47
    fixedSize := true.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    48
    nFullLinesShown := 1.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    49
    nLinesShown := 1.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    50
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    51
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    52
initStyle
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    53
    |myBgColor myFont|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    54
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    55
    super initStyle.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    56
3
claus
parents: 0
diff changeset
    57
    myBgColor := resources name:'BACKGROUND' default:nil.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    58
    myBgColor notNil ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    59
        bgColor := myBgColor on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    60
        self viewBackground:bgColor.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    61
        selectionFgColor := fgColor on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    62
        selectionBgColor := White on:device
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    63
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    64
3
claus
parents: 0
diff changeset
    65
    myFont := resources name:'FONT' default:nil.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    66
    myFont notNil ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    67
        font := myFont
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    68
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    69
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    70
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    71
initializeMiddleButtonMenu
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    72
    |labels|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    73
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    74
    labels := resources array:#(
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    75
                               'copy'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    76
                               'cut'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    77
                               'paste'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    78
                               'replace').
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    79
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    80
    self middleButtonMenu:(PopUpMenu 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    81
                                labels:labels
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    82
                             selectors:#(
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    83
                                         copySelection
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    84
                                         cut
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    85
                                         paste
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    86
                                         replace)
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    87
                                receiver:self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    88
                                     for:self)
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    89
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    90
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    91
!EditField methodsFor:'realization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    92
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    93
realize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    94
    "scroll back to beginning when realized"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    95
    leftOffset := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    96
    super realize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    97
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    98
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    99
!EditField methodsFor:'private'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   100
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   101
startScrollUp:y
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   102
    "no scrolling in editfields"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   103
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   104
    ^ self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   105
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   106
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   107
startScrollDown:y
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   108
    "no scrolling in editfields"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   109
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   110
    ^ self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   111
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   112
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   113
!EditField methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   114
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   115
contents
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   116
    "return contents as a string
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   117
     - redefined since EditFields hold only one line of text"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   118
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   119
    list isNil ifTrue:[^ ''].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   120
    (list size == 0) ifTrue:[^ ''].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   121
    ^ list at:1
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   122
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   123
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   124
enable
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   125
    "enable the field; show cursor and allow input"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   126
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   127
    enabled ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   128
        enableAction notNil ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   129
            enableAction value
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   130
        ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   131
        enabled := true.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   132
        super showCursor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   133
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   134
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   135
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   136
disable
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   137
    "disable the field; hide cursor and ignore input"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   138
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   139
    enabled ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   140
        enabled := false.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   141
        self hideCursor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   142
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   143
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   144
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   145
enableAction:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   146
    "define an action to be evaluated when enabled by clicking upon"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   147
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   148
    enableAction := aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   149
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   150
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   151
leaveAction:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   152
    "define an action to be evaluated when field is left by return key"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   153
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   154
    leaveAction := aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   155
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   156
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   157
initialText:aString
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   158
    "set the initialText"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   159
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   160
    leftOffset := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   161
    self contents:aString.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   162
    self selectFromLine:1 col:1 toLine:1 col:(aString size)
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   163
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   164
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   165
!EditField methodsFor:'cursor drawing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   166
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   167
showCursor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   168
    "make cursor visible if currently invisible - but only if this
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   169
     EditField is enabled"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   170
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   171
    enabled ifTrue:[super showCursor]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   172
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   173
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   174
!EditField methodsFor:'cursor movement'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   175
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   176
cursorLine:line col:col
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   177
    ((line >= 1) and:[line <= nLinesShown]) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   178
        super cursorLine:line col:col
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   179
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   180
    "ignore"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   181
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   182
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   183
cursorDown
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   184
    "catch cursor movement"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   185
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   186
    (cursorVisibleLine == nLinesShown) ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   187
        super cursorDown
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   188
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   189
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   190
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   191
!EditField methodsFor:'event processing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   192
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   193
buttonPress:button x:x y:y
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   194
    "enable myself on mouse click"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   195
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   196
    enabled ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   197
        enabled := true.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   198
        super buttonPress:button x:x y:y.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   199
        enableAction notNil ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   200
            enableAction value
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   201
        ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   202
    ] ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   203
        super buttonPress:button x:x y:y
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   204
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   205
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   206
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   207
canHandle:aKey
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   208
    "return true, if the receiver would like to handle aKey
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   209
     (usually from another view, when the receiver is part of
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   210
      a more complex dialog box).
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   211
     We do return true here, since the editfield will handle
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   212
     all keys."
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   213
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   214
    ^ true
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   215
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   216
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   217
keyPress:key x:x y:y
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   218
    "if keyHandler is defined, pass input; otherwise check for leave
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   219
     keys"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   220
3
claus
parents: 0
diff changeset
   221
    |leave xCol|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   222
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   223
    enabled ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   224
        (keyboardHandler notNil
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   225
        and:[keyboardHandler canHandle:key]) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   226
            (keyboardHandler == self) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   227
                self error:'invalid keyhandler'.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   228
                ^ self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   229
            ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   230
            keyboardHandler keyPress:key x:x y:y
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   231
        ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   232
        ^ self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   233
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   234
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   235
    (key == #DeleteLine) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   236
        Smalltalk at:#CopyBuffer put:(self contents).
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   237
        self contents:''. ^ self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   238
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   239
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   240
    leave := false.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   241
    (key == #Return) ifTrue:[leave := true].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   242
    ((key == #CursorDown) or:[key == #Next]) ifTrue:[leave := true].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   243
    ((key == #CursorUp) or:[key == #Prior]) ifTrue:[leave := true].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   244
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   245
    leave ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   246
        leaveAction notNil ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   247
            leaveAction value:key
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   248
        ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   249
        ^ self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   250
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   251
    super keyPress:key x:x y:y.
3
claus
parents: 0
diff changeset
   252
    xCol := (self xOfCol:cursorCol inLine:cursorLine) - leftOffset.
claus
parents: 0
diff changeset
   253
    (xCol > (width * (5/6))) ifTrue:[
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   254
        leftOffset := leftOffset + (width // 2).
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   255
        self clear.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   256
        self redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   257
    ] ifFalse:[
3
claus
parents: 0
diff changeset
   258
        (xCol < (width * (1/6))) ifTrue:[
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   259
            leftOffset := 0 max: leftOffset - (width // 2).
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   260
            self clear.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   261
            self redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   262
        ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   263
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   264
! !