[Oberon] Documentation request
frey at inf.ethz.ch
frey at inf.ethz.ch
Fri Mar 12 19:14:22 CET 2004
The following small piece of documentation is new in this release. It is on the user level.
If you want to do Programming on the GUI, there is WMScribble.Mod as an introduction to basic window handling
(independant of the component system).
For the new component system you might check ComponentViewer.Mod together with FractalDemo.Mod and
Notepad.Mod as simple examples. For more complex examples, search for "WMComponents" in *.Mod.
The Graphical User Interface (GUI) of the Bluebottle System is at the same time similar and different from other windowing systems. Nowadays most computer users are well trained to use a mouse for clicking buttons, selecting text and performing drag and drop operations to move items such as windows and texts around the virtual desktop. Since the Bluebottle GUI is similar in this respect, not much needs to be introduced to basic manipulations and working with the system.
There are mainly two main reasons why the Bluebottle GUI implements many features common to most other recent GUI systems. First, these features are well known to most of todays computer users and hence ease the problems inherent to learning a new system. Second, many of these features have been selected and evolved for up to twenty years and proved their usefulness.
While sticking to known metaphors and interfaces can reduce user's fear of learning a new system, it can also lead to a drop in innovation and hence prevent the emergence of novel interface methods. Therefore, the Bluebottle GUI combines a selection of features from many "worlds" and adds some new ones, too. It is for instance. possible to start commands from any place in a text. Also any text is compatible to any other text in the system. The classic Oberon GUI has earned some fame for its unique features in the Human Computer Interaction (HCI) community (see Raskin, The Human Computer Interface).
Some elements of the classical Oberon GUI have been discarded or adapted to increase the acceptance with the users e.g. no "Interclicks" are needed in the new GUI elements. The tiled display was abandoned in favor of a windowing system. The introduced windows support free shapes and translucency (semi-transparency). In this respect, the Bluebottle GUI surpasses many existing windowing implementations. Windows can moved, rescaled etc. while the programs "behind" the windows keep running.
Desktop Navigation using the keyboard and the mouse
Meta-Mouse-Wheel : zoom in/out
Meta-Mouse-Move : pan the viewport if the mouse hits the border of the screen
Meta-PgUp : zoom in 2x
Meta-PgDn : zoom out 2x
Meta-Home : All desktop elements visible
Meta-End : zoom to 1:1
Meta-Left : Move viewport left by one screen in the current zoom factor
Meta-Right : Move viewport right by one screen in the current zoom factor
Meta-Up : Move viewport up by one screen in the current zoom factor
Meta-Down : Move viewport down by one screen in the current zoom factor
Alt-Shift is a substitute for the Meta key. (The meta key is often marked with symbol that is associated with big software vendor)
The Main Menu
Ctrl-Esc : Move the main menu to the current screen
The menu is created using a number of MenuPage??.XML files, where ?? is a two digit decimal number corresponding to the page position in the menu.
00, 10, 20, ... 90 are reserved for the release
Use any other number for a custom design page.
It is easiest to open an existing menu page and to edit it according to one's need.
Example: Notepad.OpenUTF8 MenuPage10.XML ~ <-- the blue marked text is a command. You can click it with the middle mouse button to execute !
Positioning the text cursor : Place the mouse cursor in the text and click the left mouse button
Mouse-Wheel : Scroll up/down
Alternatively, the scrollbar can be used for scrolling.
Place the mouse cursor at the beginning of the intended selection, press (and keep pressed) the left mouse button, move the mouse cursor
to the end of the intended selection, release the left mouse button
Drag and Drop
Select some text (see above), klick into the selected text with the left mouse button. Keep the button pressed and move the mouse to
the position where to drag the text. If you want a copy to be dragged, keep the keyboard CTRL key pressed.
Position the mouse cursor to a command, then click with the middle mouse button. Make sure command's parameters are delimited with the ~ character.
OK : WMTT.Open ~ WMTT.Open alone is not encouraged.
Since many commands can run in parallel, the parameters need to be copied before execution.
Although a command works even without delimiter, it is a waste of memory.
Copying a text style
Select the text you want to apply the new style to. Hold down the Alt-key and click into a piece of text that contains the desired style.
The text where the format is copied from needs to have the keyboard focus, so that it can detect the Alt-key being pressed.
Key Commands :
Left, Right : move the text cursor left and right by one char.
Press the CTRL modifier key to move word by word
Up, Down : Move the cursor one line up or down
PgUp, PgDn : Move cursor one visible page up/down
Home, End : Begin or end of line.
Press the CTRL-key to jump to the begin or end of the text
SHIFT : The SHIFT modifier key can be combined with all the navigation keys above to navigate and select at the same time
CTRL-C (or CTRL-INS) : Copy selection to clipboard
CTRL-V (or SHIFT-INS) : Paste clipboard
CTRL-X (or SHIFT-DELETE) : Cut (= copy to clipboard and delete text)
Position the text cursor on a command. Press CTRL-Enter. See Starting Commands in the mouse commands for details.
Select the text to indent and then press Alt-Left or Alt-Right to indent the selection
Macros are invoked by pressing the Ins key while the cursor is placed behind a macro name.
Macro parameters are separated by ":"
Some helpful macros :
name:M MODULE ...
name:P PROCEDURE ...
classname:O TYPE classname = OBJECT ...
classname:superclassname:o TYPE classname = OBJECT(superclassname) ...
output macros: oi, os, oc take one identifier parameter
e.g. identifier:oi AosOut.Int(identifier);
ol output line takes no parameters
debug macros: di, ds, dc, dr take one identifier parameter
e.g. identifier:ds AosOut.String("identifier = "); AosOut.String(identifier);
The macros are defined in:
Notepad.OpenUTF8 Macros.XML ~
Input Method Editors
Currently there is only a rudimentary Pinyin Input Method Editor available. It can be installed in with WMPinyinIME.Test ~
After it is installed, press CTRL-Space in any editor to enable/disable the input method editor.
To automatically load the WMPinyinIME, edit the AosConfig.XML ( Notepad.OpenUTF8 AosConfig.XML ~ )
Storing the desktop
In the System menu, press the Mark (mark a waypoint) button to store the state of the programs on the desktop (not all programs support
saving their state)
Reboot the system
Ctrl-Alt-Del (terminates the system and reboots without warning !!!)
Backdrop images can be added at any place and in any size on the virtual desktop. Clicking on a backdrop will zoom the backdrop to fullscreen.
Backdrops can be removed by clicking them with the right mouse button and selecting Remove.
Hint: Try not to put too many backdrops at the same position on the virtual desktop
To make the backdrop permanent, you can just save store the desktop by pressing the Mark button in the System menu
The window style can be changed in the Style menu. To make a style permanent, enter the corresponding command in the AosConfig.XML Autostart section.
The programming environment is called PET the "Programmer's Editing Tool"
PET.OpenUTF8 HelloWorld.Mod ~
Press the Compile button to compile the current module file.
Errors appear at the bottom of the window. Click on an error to position the cursor at the corresponding position in the source text..
To find a position of a Trap, select the the number ???? behind PC=???? in the kernel log. Then press the find PC.
If no PC position is selected, PET will ask
The left part of the window gives a structural overview over your program.
Click into the tree to position the cursor at the position of the clicked structure in the program text.
To free a module, call S.Free HelloWorld ~
To install the system, start Oberon and open AosInst.Tool. Follow the instructions.
Bluebottle contains lots of tools, some did not find into the system menu.
AosTV : A TV Application for BT848 compatible TV cards. ( Notepad.OpenOberon AosTV.Tool ~ )
(an improved release will follow about end of April 2004, check the crazy release)
Sound : Currently supported sound cards:
Aosi810Sound.Install ~ (Intel/Realtek compatibles)
AosYMF754.Install ~ (Yamaha)
MP3Player : See PET.OpenOberon MP3Player.Mod ~
OGGPlayer : Check the crazy release end of April 2004
Network : Currently supported network cards:
Check: AosNet.Mod, AosIP.Mod, AosUDP.Mod, AosDNS.Mod, AosTCP.Mod
Webserver: HTTP/1.1 plugin enabled multi host webserver. See PET.OpenOberon WebHTTPServer.Mod ~
FTP-Server: See PET.OpenOberon WebFTPServer.Mod ~
USB : Support for Mouse and many storage devices.
The system is bootable from some usb sticks.
See AosUsb.Mod, AosUsbUhci.Mod, AosUsbStorage.Mod, AosUsbMouse.Mod
Firewire : Check the crazy release end of April 2004
ARM/XSCALE : If you are interested in the ARM/XSCALE ports write an email to ask at bluebottle.ethz.ch (check the website before ! ;-) )
and many more... you have the source... have fun!
More information about the Oberon