Terms-LogoTerms97801 Version 2.0 Online Handbuch

Inhalt Index Voriges Kapitel Vorige Seite Nächste Seite Nächstes Kapitel Kapitel: 1 2 3 4 5 6 7 8 9 10 Anhang


9.3 Maussteuerung

Terms97801 läuft unter einer grafischen Benutzeroberfläche, während die UNIX-Anwendungen unter Terms97801 mit einer Alpha-Benutzeroberfläche ohne Maus laufen. Beim Wechsel zwischen einer Windows- und einer UNIX-Anwendung ergibt sich ein Bruch in der Bedienerführung. Als Folge läßt sich immer wieder beobachten, daß Benutzer/innen mit der Maus in das Anzeigefenster von Terms97801 klicken, um, wie unter Windows gewohnt, eine Aktion auszulösen.
Mit der Maussteuerung läßt sich der Bruch in der Bedienerführung ein bißchen glätten.
Natürlich läßt sich so keine 100%ige Maussteuerung einer UNIX-Anwendung, die nie für Mauseingaben geschrieben wurde, erreichen, aber es geht erstaunlich viel.

9.3.1 Überblick über die Maussteuerung

Die Maussteuerung läßt sich am leichtesten in ihrer Entwicklungsgeschichte verstehen.
Vorangegangene Versionen hatten bereits vorbereitende Funktionalitäten: Ein Doppelklick in die Anzeige markierte ein Wort und ein Klick in die Anzeige bei gedrückter 'Strg'-Taste sandte Cursortastendrücke entsprechend der Entfernung zwischen Maus und Cursor.

Das Markieren eines Wortes ist der erste Schritt, um UNIX-Menüs zu steuern. Ein Menü teilt meist mit, welche Tasteneingabe zur Aktivierung eines Menüpunkts nötig ist. Wird ein Buchstabe erwartet, so wird dieser durch Invertierung, Unterstreichung oder Großschreibung gekennzeichnet.

Beispiel:

Die Aufgabe der Maussteuerung besteht darin, diesen Buchstaben in dem Wort zu finden und ihn dann so, als sei er über die Tastatur eingegeben worden, an den Host zu senden. Eventuell muß vorher noch eine sogennante Menü-Taste gesendet, oder die Auswahl durch die Eingabe bestätigt werden.

Andere UNIX-Menüs erfordern die Eingabe von Nummern- oder Buchstaben-Kombinationen. In diesem Fall wird einfach das ganze Wort an den Host gesandt.

Beispiel:

Als Spezialfall können auch Funktionstasten gefordert werden.

Beispiel:

Für ganz spezielle Fälle können auch Markierungstabellen erstellt werden, die einem Wort der Anzeige einen entsprechenden Tastendruck zuordnen.

Für die Fälle, bei denen ein Tastendruck mit einem Ort in der Anzeige verbunden werden kann, können Positionstabellen verwendet werden. Typische Fälle sind die FLMI-Anwendungen, wie z.B. die Eingabe der Funktionstasten für sysadm.

Die meisten UNIX-Anwendungen besitzen eine Cancel-Taste, um eine versehentliche Auswahl rückgängig zu machen. Damit liegt es nahe, diese Taste als Funktion auf die rechte Maustaste zu legen.

Die Cursorpositionierung wurde gegenüber früheren Versionen intelligenter gemacht. Nach einer gesendeten Cursortaste wird die neue Position überprüft. So funktioniert die Positionierung auch, wenn der Cursor sich sprunghaft, z.B. durch Zeilenenden oder Tabulatoren, bewegt.

Die Auswahl in UNIX-Dialogen ist der Cursorpositionierung sehr ähnlich. Auch hier müssen Cursortasten eingegeben werden, und zwar solange, bis sich das selektierte Feld unter der Maus befindet. Ein Dialog wird daran erkannt, daß er von einem Rahmen umschlossen wird. Die Auswahl wird durch die Maussteuerung mit der Eingabetaste bestätigt.
Viele UNIX-Anwendungen teilen den Bildschirm in verschiedene Bereiche auf. Typisch ist eine Kopf- und eine Statuszeile. Die Maussteuerung von Terms97801 kann darum für drei Bereiche unterschiedlich eingestellt werden.

Mit diesem Überblick über die Maussteuerung kann der Dialog, der nach Aufruf des Menüpunkts System..Mausklick erscheint, verstanden werden:


Abb. 45: Der Mausklick-Dialog mit zusätzlichem Knopf für sysadm

9.3.2 Die linke Maustaste

Mit der linken Maustaste können Aktionen ausgelöst werden, die für die UNIX-Anwendung sonst nur über die Tastatur möglich sind. Die Aktionen lassen sich in zwei Gruppen aufteilen. Die eine Gruppe versucht, aus dem Bildschirminhalt an der Stelle, an die mit der Maus geklickt wurde, Informationen für eine Aktion zu finden.
Im Normalfall sind dies die Zeichen, die zum Aktivieren einer UNIX-Menüfunktion eingetippt werden müßten, jetzt aber durch die Maussteuerung an den Host gesendet werden.

Die andere Gruppe versucht, den Cursor zu positionieren. Außer der Positionierung des Cursors in Texten, gehört hierzu auch die Selektion in UNIX-Dialogen, die bei Eingabe über die Tastatur mit Cursortasten vorgenommen wird.

Die Möglichkeit, Block- oder Zeilenweise zur Übernahme in die Zwischenablage zu markieren, bleibt trotz Maussteuerung immer erhalten.

Mit der Character-Maussteuerung können einzelne Zeichen durch Anklicken einen Tastendruck an den Host senden. Typischerweise wird die Charactersteuerung mit Semigrafikzeichen verwendet, z.B. für Scrollen durch Anklicken von Pfeilen.
Hierzu muß in der Ini-Datei eine Tabelle angegeben werden, die einzelnen Zeichen einen Tastendruck zuordnet.

[MouseControl]
CharTable=<Tabelle>
CharControl=Y oder N

Die Tabelle hat folgende Syntax:

<Tastencode>:<Superfontcode des Zeichens>

Alle Angaben sind hexadezimal. Zeilen die mit ; oder # beginnen, werden als Kommentare überlesen.

Der Superfontcode kann im Anhang nachgeschlagen werden, oder nach dem Kommando echo "\033[9v" abgezählt werden.

Beispiel:

# für HIT5.1
# Bild auf / Bild ab
13:1bd
14:1be

Das Verhalten bei linkem Mausklick kann für drei Bildschirmbereiche getrennt eingestellt werden. Die drei Bereiche ergeben sich durch Angabe der ersten und der letzten Zeile des Hauptbereichs. Der Bereich davor wird als Menübereich, der danach als Statuszeilenbereich bezeichnet.

Das Verhalten bei Betätigung der linken Maustaste wird durch einen Satz von Parametern bestimmt.

9.3.3 UNIX-Dialoge

Mit dem Kästchen 'Dialog vorher' bzw. 'Dialog nachher' kann die Dialogerkennung eingeschaltet werden. Ist 'Dialog vorher' angekreuzt, so wird zuerst die Dialogerkennung gestartet und im Fall eines Mißerfolgs wird anschließend die normale Maussteuerung für die linke Maustaste durchgeführt.

Ist 'Dialog nachher' angekreuzt, so wird zuerst die normale Maussteuerung für die linke Maustaste durchgeführt und im Fall eines Mißerfolgs wird anschließend die Dialogerkennung gestartet. Die entsprechenden Ini-Einträge lauten:

[MouseControl]
DialogBefore=N | Y
DialogAfter=N | Y

Die Dialogerkennung beruht im wesentlichen auf der Erkennung eines geschlossenen Rahmens um die Stelle an der mit der Maus geklickt wurde.
Da bei manchen UNIX-Anwendungen die Umrahmung der Dialoge durch Überschriften oder Scrollbalken unterbrochen sind, gibt es auch die Möglichkeit, die Dialogerkennung auf die vier Ecken zu beschränken. Hierfür muß dann folgender Eintrag in der Ini-Datei vorgenommen werden:

[MouseControl]
StrictFrame=N

Es gibt auch UNIX-Anwendungen, bei denen ein Dialog die ganze Bildschirmbreite ausfüllt und als Begrenzung nur eine horizontale Line bleibt.
Mit dem Eintrag
HorzFrame=N | U | L | B
kann die Erkennung von Dialogen durch horizontale Linien eingestellt werden. Mit N (default) werden horizontale Linien nicht zur Dialogerkennung verwendet. U sucht eine obere Linie, L eine untere Linie und mit B wird nach je einer Linie nach oben und nach unten gesucht.

Für Anwendungen, die ständig einen Rahmen anzeigen, wurden Ini-Einträge vorgesehen, mit denen der Bildschirmbereich, in dem Dialoge erkannt werden, eingeschränkt werden kann. Die entsprechenden Ini-Einträge lauten:

DialogTop=0
DialogBottom=25
DialogLeft=0
DialogRight=80

Terms97801 geht davon aus, daß UNIX-Dialoge eine Auswahl bieten. Die aktuelle Auswahl wird invertiert dargestellt, kann mit Cursortasten verändert werden, und mit der Return-Taste bestätigt werden. Wurde ein UNIX-Dialog erkannt, so wird versucht, die Invertierung durch Senden von Cursortasten an die Stelle zu bekommen, an die mit der Maus geklickt wurde. Wurde dieses Ziel erreicht, wird die Return-Taste gesendet.

Soll zur Bestätigung eine andere Taste als die Return-Taste and den UNIX-Host gesandt werden, so kann in der Ini-Datei ein anderer Tastencode eingetragen werden.

DialogConfirmKey=13

Wurde nach einer Maximalzahl von Cursorbewegungen das Ziel nicht erreicht, so bricht die Maussteuerung ab. Mit den Standardwerten werden maximal soviele Cursorbewegung in horizontaler Richtung vorgenommen, wie der Bildschirm Spalten hat. Entsprechendes gilt für die vertikalen Bewegungen. Um im Fall einer Fehlbedienung das "Umherspringen" gering zu halten, können die maximalen Bewegungen für beide Richtungen in der Ini-Datei angegeben werden.

DialogMaxXMove=5
DialogMaxYMove=10

Wird ein negativer Wert angegeben, so wird keine Cursortaste für die entsprechende Bewegungsrichtung gesandt.

Nicht alle Begriffe in einem Dialog sind zur Auswahl gedacht. Eventuell existiert eine Überschrift oder ein Hinweis zum Abbruch des Dialogs. Solche Begriffe lassen sich ebenfalls für die Maussteuerung verwenden. Hierzu muß eine entsprechende Dialogtabelle erstellt werden. Die Tabelle hat den Aufbau: <Tastencode>:<Zeichenkette>

Ist eine solche Tabelle in der Ini-Datei angegeben
DialogTable=<Pfad und Name der Dialog-Tabelle>
so wird nach einem Mausklick in den Dialog als erstes die Tabelle nach dem Wort, auf das mit der Maus geklickt wurde, durchsucht. Wird das Wort gefunden, so wird der entsprechende Tastencode gesandt. Andernfalls wird die normale Auswahlpositionierung versucht.
Mit der Dialogtabelle läßt sich z.B. das Verb in der Dialogüberschrift zum OK-Knopf machen.

Bei einigen UNIX-Dialogen wird zwar eine Auswahl mit den Cursortasten angewählt, aber diese Auswahl nicht bestätigt. Stattdessen kann mit einer Taste (meist Leertaste) zwischen verschiedenen Möglichkeiten gewählt werden, z.B an/aus. Für solche Fälle gibt es die Dialog-Positionstabelle. Wurde eine solche Tabelle in der Ini-Datei angegeben

DialogPosTable=<Pfad und Name der Dialog-Positionstabelle>

so wird nach dem Erreichen der Auswahl in dieser Tabelle nach dem Auswahltext gesucht. Wird dieser Text gefunden, so wird der dazu eingetragene Tastencode gesendet. Andernfalls wird die Bestätigungstaste abgesetzt.

9.3.4 Die rechte und mittlere Maustaste

Die rechte Maustaste kann mit einer von fünf Funktionen belegt werden.

Mit der Funktion 'keine' ist die rechte Maustaste abgeschaltet.

'Letzte Markierung' stellt die letzte Markierung wieder her. Dies kann nützlich sein, wenn eine UNIX-Anwendung ihre Daten in einer Maske darstellt, und so die Adresse immer an der gleichen Stelle steht.

'Markierung senden' gibt die aktuelle Markierung als Zeichenfolge auf die Leitung an den Host. Bei der Arbeit mit einem Kommandozeilen-Prompt lassen sich so Dateinamen aus einer ls-Anzeige auf die Kommandozeile schreiben. Für die Umsetzung der Markierung in Zeichen gelten die Einstellungen für die Zwischenablage. Für das Kopieren langer Kommandozeilen mit Zeilenumbruch sollte unter Einstellungen..Zwischenablage die Optionen 'kein LF' und 'kein CR' angegeben werden.

Die Option 'In Zwischenablage' kopiert die aktuelle Markierung in die Zwischenablage. Das macht weniger Mühe als der Aufruf des Menüpunkts Bearbeiten.. Kopieren.

Anmerkung:
Der Menüpunkt Bearbeiten..Kopieren wiederholen mit dem Tastenkürzel <Hoch><Entf> ist in manchen Fällen günstiger als die Verwendung einer der drei vorangegangenen Funktionen.

Mit 'Taste senden' kann eine beliebige Taste des 97801-Terminals auf die rechte Taste gelegt werden. Im Rahmen einer UNIX-Menüsteuerung bieten sich hier die Abbruch- oder Zurück-Taste oder ein sogenannter Hot-Key an.
Die Taste wird über ihren Scancode angegeben. Der Scancode kann im Experten-Modus mit der rechten Maustaste abgefragt oder im Anhang nachgeschlagen werden.
Soll eine Tastenkombination gesendet werden, so wird für hoch 0x100, für strg 0x200 und für alt der Wert 0x400 zum Tastencode addiert.

Die mittlere Maustaste läßt sich nur verwenden, wenn sie zum einen an der Maus vorhanden und zum anderen ein Maustreiber installiert ist, der die mittlere Maustaste unterstützt.

Der Standard-Maustreiber unterstützt nur zwei Tasten. Für eine dreitastige No-Name-Maus sollte darum im System-Setup ein anderer Maustreiber, z.B. Genius-Maus, eingestellt werden.

9.3.5 Die Einstellungen 'Keine', 'Standard' und 'HIT'

Mit dem Knopf 'Keine' im Dialog System..Mausklick wird die Maussteuerung abgeschaltet.
Mit dem Knopf 'Standard' werden die Werte, die in der Terms97801-Ini-Datei stehen, erneut eingelesen.

Mit dem Knopf 'HIT' wird die Maussteuerung für die UNIX-Textverarbeitung HIT von Interface-Connection eingestellt. Die Einstellungen beziehen sich auf die Version 5.0 bzw. 5.1, lassen sich aber auch für vorangegangene Versionen verwenden.
Die Einstellungen für HIT sind nicht mit speziellen internen Routinen von Terms97801 verbunden und können ebenso durch direkte Konfiguration erreicht werden. Ein Betätigen des Knopfs 'HIT' erspart die Mühe, alle Einstellungen einzeln vorzunehmen und aktiviert die interne Mausklick-Tabelle, die sonst erst erzeugt und extern gespeichert werden müßte. Weitere Erläuterungen zur Maussteuerung von HIT finden sich in den Beispielen (Kapitel 9.4.2).

9.3.6 Voreinstellungen für eigene Anwendungen

Als feste Voreinstellungen sind 'Keine', 'Standard' und 'HIT' vorhanden. Falls erwünscht, können drei weitere Voreinstellungen in den Dialog aufgenommen werden. Wird in der Sektion [MouseControl] die Eintragung

Application1=abc
Application2=myapp
Application3=xyz

vorgenommen, so werden die Knöpfe 'abc', 'myapp' und 'xyz' in den Dialog aufgenommen. Ein Klick auf einen dieser Knöpfe aktiviert eine Maussteuerung gemäß den Einstellungen einer Sektion [abc] bzw. [myapp] bzw. [xyz].
Diese Sektion wird am einfachsten durch Kopieren einer passend eingestellten Sektion [MouseControl] und anschließender Umbenennung erzeugt.

9.3.7 Aktivierung einer Maussteuerung durch Tastaturschablonen

Wird eine Tastaturschablone geladen, so wird in der Ini-Datei nach einer Sektion mit dem selben Namen (ohne Pfad und Suffix) gesucht.
Die Sektion wird wie die Sektionen [MouseControl], [Clipboard]und [Attributes] als aktuelle Maussteuerung, Kopieren/Einfügen und Farbgebung eingelesen.
Diese Sektion wird am einfachsten durch Kopieren von passend eingestellten Sektionen erzeugt.

Anmerkung:
Tastaturschablonen können auch durch Escape-Sequenzen vom Host geladen werden.


Terms-LogoTerms97801 Version 2.0 Online Handbuch

Inhalt Index Voriges Kapitel Vorige Seite Nächste Seite Nächstes Kapitel Kapitel: 1 2 3 4 5 6 7 8 9 10 Anhang