~ubuntu-branches/ubuntu/lucid/kdebase/lucid

« back to all changes in this revision

Viewing changes to apps/konsole/developer-doc/old-documents/VT100/MoreText

  • Committer: Bazaar Package Importer
  • Author(s): Ana Beatriz Guerrero Lopez
  • Date: 2009-04-05 05:22:13 UTC
  • mfrom: (0.4.2 experimental) (0.2.2 upstream)
  • mto: This revision was merged to the branch mainline in revision 235.
  • Revision ID: james.westby@ubuntu.com-20090405052213-39thr4l6p2ss07uj
Tags: 4:4.2.2-1
* New upstream release:
  - khtml fixes. (Closes: #290285, #359680)
  - Default konsole sessions can be deleted. (Closes: #286342)
  - Tag widget uses standard application palette. (Closes: #444800)
  - ... and surely many more but we have lost track...

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
The refinement discussed here so far, is implemented in the
 
2
overall structure of the program:
 
3
 
 
4
 
 
5
                 Operations   -------------X
 
6
                                        Screen(s)
 
7
                 Protocol              /  |
 
8
        Shell X------------X Emulation    |
 
9
                                       \  V
 
10
                                        Widget
 
11
                 Events X------------------
 
12
                                         
 
13
 
 
14
Part    Application  Protocol      Data model   Visualization
 
15
                                                User Events
 
16
 
 
17
Files   TEShell.C    TEmulation.C  Screen.C     TEWidget.C
 
18
                     TEVt102.C
 
19
 
 
20
Types   TEShell      Emulation     TEScreen     TEWidget
 
21
 
 
22
 
 
23
 
 
24
The abstract data type, in which the text is represented and
 
25
manipulated by a set of operations is 
 
26
 
 
27
 
 
28
------------------------------------------------------------------
 
29
 
 
30
On the first glance, the terminal consists of the following
 
31
parts:
 
32
 
 
33
- A screen to display characters to the user on a rectangular area.
 
34
- A keyboard to accept the user keypresses.
 
35
- A bidirectional serial connection, on which the application
 
36
  sends the text to be displayed to the terminal and on which
 
37
  the user's key pressed are forwarded to the application.
 
38
- The application that actually run on the terminal.
 
39
 
 
40
More formally our terminal model consists of
 
41
- a character screen : a matrix [Lines,Columns] -> Character
 
42
- a current visual pointer position (cursor).
 
43
- a set of operations by which the screen can be manipulated
 
44
- a set of events (mainly keystrokes)
 
45
- two streams on which bytes are exchanged between the
 
46
  application and the terminal which are used to communicate
 
47
  the operations and events between the two end points.
 
48
- an initial state.
 
49
 
 
50
           0       (columns)     V--- Columns-1
 
51
          +-----------------------+
 
52
          |                       | 0
 
53
          |  text on              |
 
54
          |  the screen           |
 
55
          |                       | (lines)
 
56
          |                       |
 
57
          |                       |
 
58
          |                       | Lines-1
 
59
          +-----------------------+
 
60
 
 
61
 
 
62
For adressing purpose, we call the (columnNo,lineNo) pair a "position"
 
63
 
 
64
- protocol == collection of operations and their encoding.
 
65
 
 
66
Beschreibung
 
67
 
 
68
- Strom von Kommandos und Anfragen
 
69
- Strom von Ereignissen und Antworten
 
70
 
 
71
- HostToTerminalStream
 
72
  : Sequence(Command U Request)
 
73
 
 
74
- Type Command-Tokens
 
75
  : Prn(Char)                            - literal(Character) - 1 char subset
 
76
  : Ctl(Char)                            - 0-parm command
 
77
  : Esc(Char)                            - 0-parm command
 
78
  : Csi(Char,Args)                       - fix & flex num parm command
 
79
                                           - some are sub-commands
 
80
  : Pri(Char,Args) <: Csi("?",Char,Args) - fix & flex num parm command
 
81
                                           - some are sub-commands
 
82
  : Hsh(Char)                            - 0-parm command
 
83
  : Scs(A,B)                             - 2-parm num command
 
84
  : Vt5(A,B)                             - 2-parm num command
 
85
 
 
86
- command definition
 
87
 
 
88
  : name(parm:Type<:Integer)
 
89
 
 
90
  : setFgColor(color)
 
91
  : setBgColor(color)
 
92
  : setReverse(bool)
 
93
  : setBold(bool)
 
94
  : setBlink(bool)
 
95
 
 
96
------------------------------------------------------------------
 
97
 
 
98