VT52TerminalView.st
author Claus Gittinger <cg@exept.de>
Sat, 20 Jun 1998 17:37:02 +0200
changeset 976 40af522dda86
parent 956 606dee2ae341
child 980 8921b6e07c9e
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
TerminalView subclass:#VT52TerminalView
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
     2
	instanceVariableNames:'state param1 param2'
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	classVariableNames:''
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	poolDictionaries:''
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	category:'Views-TerminalViews'
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
!
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!VT52TerminalView class methodsFor:'documentation'!
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
documentation
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
    VT52 terminal
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
    [start with:]
916
d9626e722c21 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 914
diff changeset
    15
        VT52TerminalView openShell
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
"
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
! !
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!VT52TerminalView methodsFor:'defaults'!
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
vt52KeyCodes
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    ^ IdentityDictionary withKeysAndValues:
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
        #(
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
             #CursorUp    '\eA'
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
             #CursorDown  '\eB'
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 919
diff changeset
    27
             #CursorRight '\eC'
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 919
diff changeset
    28
             #CursorLeft  '\eD'
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
             #Home        '\eH'
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
             #Escape      '\e'
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 919
diff changeset
    31
             #BackSpace   '\b'
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
             #Return      '\r'
976
40af522dda86 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
    33
             #Delete      '\0177'
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
         )
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 919
diff changeset
    35
976
40af522dda86 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
    36
    "Modified: / 20.6.1998 / 17:36:39 / cg"
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
! !
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    39
!VT52TerminalView methodsFor:'events'!
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    40
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    41
defineWindowSize
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    42
    super defineWindowSize.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    43
    rangeEndLine := numberOfLines - 1
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    44
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    45
    "Created: / 13.6.1998 / 18:15:43 / cg"
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    46
! !
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    47
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!VT52TerminalView methodsFor:'initialization'!
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
initialize
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    super initialize.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    52
    self endOfSequence.
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    54
    rangeStartLine := 1.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    55
    rangeEndLine := numberOfLines-1.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    56
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
    57
    "Modified: / 13.6.1998 / 18:14:41 / cg"
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
initializeKeyboardSequences
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    kbdSequences := (self vt52KeyCodes)
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
! !
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
    66
!VT52TerminalView methodsFor:'processing - input'!
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
    67
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    68
doNothing
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    69
    self endOfSequence
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    70
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    71
    "Created: / 12.6.1998 / 20:40:43 / cg"
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    72
!
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
    73
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    74
endOfSequence
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    75
    state := 0.
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
    76
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    77
    "Created: / 12.6.1998 / 20:39:52 / cg"
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    78
!
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
    79
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    80
nextPut:char
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    81
    "process a character (i.e. the shells output)"
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    82
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    83
"/ Transcript show:state; show:' '; showCR:char storeString.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    84
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    85
    state == #gotReturn ifTrue:[
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    86
        state := 0.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    87
        char == Character nl ifTrue:[
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    88
            "/ cr-nl
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    89
            "/ stay in buffering mode.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    90
            super nextPut:Character cr.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    91
            ^ self.
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
    92
        ].
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    93
        self endEntry.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    94
        self cursorToBeginOfLine.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    95
        "/ continue in initial state
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
    96
    ].
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
    97
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    98
    state == 0 ifTrue:[
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
    99
        "/ Currently, we are in initial state.  
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   100
        "/ Decide what to do on the basis of the parameter char.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   101
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   102
        (char == Character esc) ifTrue:[ 
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   103
            self endEntry.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   104
            state := #gotESC. 
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   105
            ^ self 
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   106
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   107
        (char == Character nl) ifTrue:[ 
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   108
            self doCursorDown:1.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   109
            ^ self endEntry.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   110
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   111
        (char == Character return) ifTrue:[ 
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   112
            rangeEndLine ~~ numberOfLines ifTrue:[
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   113
                self endEntry.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   114
                self cursorToBeginOfLine.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   115
            ] ifFalse:[
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   116
                state := #gotReturn.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   117
            ].
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   118
            ^ self.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   119
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   120
        (char == Character backspace) ifTrue:[ 
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   121
            self doCursorLeft. "/ doBackspace
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   122
            ^ self endEntry.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   123
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   124
        (char == Character bell) ifTrue:[
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   125
            self beep.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   126
            ^ self 
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   127
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   128
        char asciiValue < 32 ifTrue:[
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   129
            char ~~ Character tab ifTrue:[
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   130
                Transcript show:'unhandled control key: '; showCR:char storeString.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   131
            ]
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   132
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   133
        ^ super nextPut:char
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   134
    ].
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   135
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   136
    state == #gotESC ifTrue:[
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   137
        "/ Currently, we are in ESC state.  
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   138
        "/ Decide what to do on the basis of the parameter char.
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   139
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   140
        char == $A ifTrue:[
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   141
            "/ ESC-A
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   142
            self doCursorUp:1.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   143
            ^ self endOfSequence
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   144
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   145
        char == $B ifTrue:[
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   146
            "/ ESC-B
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   147
            self doCursorDown:1.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   148
            ^ self endOfSequence
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   149
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   150
        char == $C ifTrue:[
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   151
            "/ ESC-C
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   152
            self doCursorRight:1.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   153
            ^ self endOfSequence
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   154
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   155
        char == $D ifTrue:[
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   156
            "/ ESC-D
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   157
            self doCursorLeft:1.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   158
            ^ self endOfSequence
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   159
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   160
        char == $H ifTrue: [
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   161
            "/ ESC-H
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   162
            self doCursorHome.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   163
            ^ self endOfSequence
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   164
        ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   165
        char == $J ifTrue: [
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   166
            "/ ESC-J
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   167
            self doClearToEnd.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   168
            ^ self endOfSequence
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   169
        ].
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   170
        char == $K ifTrue: [
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   171
            "/ ESC-J
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   172
            self doClearToEndOfLine.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   173
            ^ self endOfSequence
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   174
        ].
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   175
        char == $Y ifTrue: [
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   176
            "/ ESC-Y - cursor positioning
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   177
            state := #motion1.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   178
            ^ self 
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   179
        ].
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   180
        Transcript show:'unhandled esc-key: '; showCR:char storeString.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   181
    ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   182
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   183
    state == #motion1 ifTrue:[
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   184
        "/ char-value - 32 is line
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   185
        param1 := (char asciiValue - 32).
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   186
        state := #motion2.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   187
        ^ self.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   188
    ].
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   189
    state == #motion2 ifTrue:[
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   190
        "/ char-value - 32 is col
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   191
        param2 := (char asciiValue - 32).
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   192
"/        Transcript show:'motion '; show:param1+1; show:' '; showCR:param2+1.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   193
        self cursorVisibleLine:param1+1 col:param2+1.
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   194
        ^ self endOfSequence
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   195
    ].
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   196
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   197
    self doNothing
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   198
956
606dee2ae341 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   199
    "Modified: / 13.6.1998 / 18:18:29 / cg"
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   200
! !
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   201
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   202
!VT52TerminalView methodsFor:'queries'!
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   203
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   204
terminalType
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   205
    ^ #vt52
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   206
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   207
    "Created: / 10.6.1998 / 16:22:46 / cg"
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   208
! !
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   209
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
!VT52TerminalView class methodsFor:'documentation'!
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
version
976
40af522dda86 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
   213
    ^ '$Header: /cvs/stx/stx/libwidg2/VT52TerminalView.st,v 1.8 1998-06-20 15:37:02 cg Exp $'
914
7ac6d1a53bab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
! !