Last Changed: July 12th, 1997
This is a conversion from Oberon text to HTML, and from German to English. The converter software is still under development,
and some features or information may be missing in this converted version.
HTML hypertext facilities are not yet active in this document.
To exploit the interactive facilities, use Oberon System 3 and the source of this text,
available for download using binary ftp as Oberon System 3 archive.
The converter from German to English is still under development as well.
A previous version is also available for Oberon V4.
To access this and other additional material use
For the convenience of our students, most of this information and the related material is available
in German as well.
Introduction to Oberon
The Oberon Programming Language
02: Frames and Tracks
This chapter introduces the Oberon user interface elements. We already have
met the "activate" action. Besides this, there are two more basic actions,
position and select. Again the implementation details depend on the system
you are using. These are the keys to keep in mind:
(X Windows etc.) Note:
left mouse button
=> middle mouse button
=> right mouse button
For other systems and various mouse configurations you find corresponding
information in the introduction which comes with your Oberon system.
If you use "position" in the text contents, an insertion mark is shown
at the selected position. If you enter additional text, using the keyboard
for example, it will be inserted at this position.
"Select" is used in texts to mark a text sequence for further processing.
Select comes in two variants: you move the cursor to a certain position before
pressing "select" (this variant is often used to select graphical elements).
Or you drag the cursor from one position to a different one: move the mouse
pointer to a position, press "select" and move the cursor to a different
position while select is kept pressed.
Oberon has a special window system. Each window (viewer)
can have several frames. The scroll bar which we already have met is but
a special frame. Another frame may show the proper contents of the window,
a text for example. Usually a window has an additional frame, called the
menu frame (for example a narrow frame at the upper end of the window, shown
in inverted colors or with grey or colored background).
Oberon divides the screen into tracks. On the right
side, you see the system track. This is where system messages, warnings etc.
will appear. At this point of the course, this track will contain two or
more text viewers. On the left side you see the user track in which the viewer
with this text should be open now.
You can change the arrangement by dragging a menu viewer to a new location:
position the mouse pointer inside the menu frame and drag the viewer to the
new position (keeping "position" pressed). If you release "position", the
frame gets a new position and size. Try this yourself.
The placement in tracks is guarded in this action. To move
a window from one track to a different track, interclick "activate" before
releasing "position". Interclicking, i.e. pressing one or more keys
while another key is kept pressed, is used frequently in Oberon.
Instead of moving a window manually to change position and size, you
can activate the commands shown in the menu frame. If you activate System.Grow,
the corresponding frame is grown to a larger size. If you activate System.Close,
the frame is closed, or the size is reduced one size step if the frame has
been grown. Please close the frame from the first chapter,
and grow this frame for chapter 02. You are not warned if you are
closing a frame (maybe you just wanted to reduce the size). But if you regret
your action immediately, there is one "undo" possibility. The command
recovers the most recently closed viewer and makes it accessible again.
Like all of the Oberon system, windows and frames are extensible. The user
can modify or extend the functionality. So instead of System.Grow
you may find only Grow in the menu frame, depending
on your local configuration. Internally, this entry may be redireceted again
to System.Grow. The appearance is in the hand of
whoever has configured your Oberon system. Oberon has proposals for consistency,
but it does not impose these as obligatory. Consistency is in the responsibility
of the user and/or the programmer.
All components of Oberon are valid sources for commands. It does not matter
where the command is entered. If you see a command text somewhere on the
screen, you can activate it wherever you find it. Or you can enter the command
text anywhere, in a the system frame for example, and then activate it wherever
you have entered it For example, if you activate
in this current text, you get a new viewer showing the start of this course
(which you may close immediately again. We do not need it anymore.).
Besides the proper command, Desktops.OpenDoc, the command Desktops.OpenDoc
ItO/Ch01.Start has additional information, specifying what should
be opened (the chapter Ch01.Start). This additional information is a parameter
for the command Desktops.OpenDoc.
Commands with parameters:
Commands and parameters need not follow on the screen one after the other.
Some commands allow for a list of several parameters. For commands using
a list of variable length, Oberon needs a hint marking the end of this list.
By convention the character ~ is used to mark the end
of a list. (Macintosh key combination: option n, then space)
End of parameter list:
xxxx.yyyy par1 par2 par3 ~
An up arrow ^
in the parameter list indicates that the parameter list is to
be continued with the current selection (the most recent text selection).
Current selection used as parameter continuation:
Move the cursor to the start of a text section, "select" and move
the cursor to the end of a text section to select it.
Commands can use the current selection as input area using only the selected
section. Commands can also redirect the input to begin at the selection,
starting there but continuing possibly beyond the selected range. There is
no unified convention for this. To safeguard against unwanted risks, in particular
for critical commands like file deletion, the end of the parameter list should
always be marked as discussed above, in particular if redirection to current
selections is used.
An "at sign" @ in
the parameter list indicates that the current selection (the most recent
text selection) is to be inserted in the parameter list. Current
selection used as parameter insertion:
xxx.yyy @ par2 par3
This convention is only implemented in a few commands.
A * in the
parameter list represents the currently marked viewer. This is commonly used
as an alternative to using the name of the viewer. The command is to operate
on the contents of the currently marked viewer.
Current viewer as a parameter:
To mark a viewer, move the mouse cursor to the viewer and press "mark".
A star mark will show up temporarily in the marked viewer. To remove marks
and selections, press "escape".
"Enter" key (in the numerical key pad)
(X Windows etc.) Note:
(Oberon for Windows) Note:
In the Desktops.Tool viewer you find an entry Desktops.OpenDoc
^. Use this entry to access subsequent parts of the course material.
to get a table of contents. Select the chapter you are interested
in. Activate Desktops.OpenDoc ^ in the Desktops.Tool
viewer to see that chapter.
Introduction to the Oberon programming language. ItO/Ch02.Text
gs (c) G. Sawitzki, StatLab Heidelberg