@database ScreenTab.guide @width 77 @Node Main "ScreenTab Anleitung" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ S C R E E N T A B Version 1.13 © 1994 Michael Link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ INHALT ------ @{"0. SCHNELLSTART " Link FastStart} 1. Allgemeines @{" 1.1. Motivation " Link Motivation} @{" 1.2. Systemvoraussetzungen " Link Requirements} 2. Installation @{" 2.1. Von der Workbench " Link StartVonWorkbench} @{" 2.2. Vom CLI " Link StartVomCLI} 3. Konfiguration @{" 3.1. Aufruf " Link CallPreferences} @{" 3.2. Voreinstellungsfenster " Link Preferences} @{" 3.2.1. Neu " Link Preferences} @{" 3.2.2. Ändern " Link Preferences} @{" 3.2.3. Entfernen " Link Preferences} @{" 3.2.4. Speichern " Link Preferences} @{" 3.2.5. Verstecken " Link Preferences} @{" 3.2.6. Beenden " Link Preferences} @{" 3.3. Anwendungsdefinition " Link ApplPreferences} @{" 3.3.1. Anwendungsname " Link ApplPreferences} @{" 3.3.2. Muster " Link ApplPreferences} @{" 3.3.3. Benutze ... " Link ApplPreferences} @{" 3.3.3.1. Muster " Link PatternDefinition} @{" 3.4. Tool-Types " Link Tooltypes} 4. @{"Credits" Link Credits} und @{"Nutzungsbedingungen" Link Disclaimer} 5. @{"Entwicklung" Link History} @EndNode @Node FastStart "SCHNELLSTART" 0. SCHNELLSTART --------------- Für alle, die ausprobieren wollen, ohne die Anleitung zu wälzen, hier auf die Schnelle alles Notwendige. 1. Doppelklick auf "ScreenTab" -> Requester "Fehler beim Öffnen der Voreinstellungsdatei" ignorieren 2. Ein anderes Programm starten, das einen Screen öffnet 3. Die Tasten 'Linke-Amiga' und 'Tabulator' (über Ctrl) drücken und festhalten. -> ScreenTab-Fenster erscheint mit Namen des anderen Screens 4. Solange die 'Tab'-Taste drücken (mit gehaltener 'LAmiga'), bis gewünschter Screen erscheint. 5. 'LAmiga' loslassen. -> Screen kommt nach vorne 6. :-) @EndNode @Node Motivation "Motivation" 1.1. Motivation --------------- Da man auch als Amiga-Anhänger oft nicht darum herumkommt, sich mit Windoofs abzugeben, sei es in der Schule oder im Beruf, gewöhnt man sich nach einiger Zeit an dessen spezielle Eigenarten. Eine dieser Eigenarten ist die Möglichkeit, mit der Tastenkombination 'Alt + Tab' zwischen den einzelnen Tasks umherzuschalten. Ich schätze dieses Feature, besonders wenn sich viele Fenster auf dem Bildschirm befinden. Auf dem Amiga stellt sich das gleiche Problem, allerdings nicht, wenn viele Fenster, sondern wenn viele Screens offen sind. Bis jetzt gab es nur die Möglichkeit, mit der Maus auf die rechte obere Ecke zu klicken oder mit den Tasten 'LAmiga + N/M' den Screen zu wechseln. Außerdem erschienen im PD-Pool verschiedene Tools, mit denen man z. B. aus einer Liste den Screen auswählen konnte. Mir war das alles zu umständlich, ich wollte eine Möglichkeit schaffen, den Screen ohne Maus und mit einer Hand umzuschalten. Deshalb bediente ich mich des Windows-Vorbildes und schrieb SCREENTAB. Ich habe das Konzept von Windows noch erweitert. So ist es möglich, die Tastenkombination zum Umschalten selber zu definieren und Anwendungsnamen selber zu erstellen (hierzu später mehr). @EndNode @Node Requirements "Systemvoraussetzungen" 1.2. Systemvoraussetzungen -------------------------- ScreenTab läuft auf allen Amigas ab Kickstart / Workbench 2.04. Ab Workbench 2.1 wird auch die Lokalisation unterstützt, bis jetzt in Englisch und Deutsch. @EndNode @Node StartVonWorkbench "Start von der Workbench aus" 2.1. Start von der Workbench ---------------------------- Um ScreenTab einfach zu starten, einfach auf das Icon doppelklicken. Wenn Sie ScreenTab dauerhaft installieren wollen, starten Sie das deutsche Installationsskript. Sie werden dann vom Installer durch die Installation geführt. @EndNode @Node StartVomCLI "Start vom CLI" 2.2. Start vom CLI ------------------ Im CLI den Befehl "ScreenTab" eingeben. Bis jetzt werden noch keine Parameter unterstützt, da alle Informationen aus den @{"Tool-Types" Link Tooltypes} ausgelesen werden. @EndNode @Node CallPreferences "Aufruf der Voreinstellungen" 3.1. Aufruf der Voreinstellungen -------------------------------- Die ScreenTab-Voreinstellungen werden entweder mit einer speziellen Tastenkombination oder über das Exchange-Programm der Workbench ("ScreenTab" + "Anzeige sichtbar" klicken) aktiviert. Die Default-Tastenkombination ist 'Ctrl + Alt + S'. Diese können Sie mit Hilfe der @{"Tool-Types" Link Tooltypes} an ihre Bedürfnisse anpassen. Sollten Sie eine der beiden Möglichkeiten benutzt haben, öffnet sich das @{"Voreinstellungsfenster" Link Preferences}. @EndNode @Node Preferences "Voreinstellungsfenster" 3.2. Voreinstellungsfenster --------------------------- Im Voreinstellungsfenster können Sie angeben, welche Anwendungen nicht mit ihren Screen-Titeln im ScreenTab-Fenster angezeigt werden sollen, sondern durch selbstdefinierte Anwendungsnamen. Sie werden sich vielleicht fragen, wozu das gut sein soll. Dieses Feature habe ich aus mehreren Gründen aufgenommen: 1. Viele Screen-Titel sind ziemlich lang (z. B. "SuperDuperED © 1994 by H. Schneider (nicht registrierte Shareware-Version, 23-09-94) ...". Manchmal sind sie noch länger. Auch wenn solch lange Titel für ScreenTab kein Problem sind, sind sie der Übersicht nicht gerade dienlich. Deshalb kann man statt diesen Screen-Titeln Anwendungsnamen definieren, die statt dessen erscheinen sollen. Im obigen Beispiel wäre z. B. "SuperDuperED" geeignet. 2. Manche Programme pflegen ihren Screens keine Titel zu geben. Dazu zählen insbesondere Mal- und Zeichenprogramme wie PPaint, DPaint usw. Für ihre Zwecke mag das notwendig sein, bei ScreenTab erscheint aber für diese Screens ein leeres Fenster. Um diesen unhaltbaren Zustand zu umgehen, kann man statt dem Screen- Titel den Namen des Tasks auswerten, zu dem der Screen gehört. 3. :-) Die Bedienelemente des Voreinstellungsfensters bestehen aus folgenden Komponenten: o Anwendungsliste : hier sind alle bekannten Applikationen aufgelistet, deren Screen-Titel durch die angezeigten Anwendungsnamen ersetzt werden Bei den nächsten zwei Knöpfen erscheint ein zweites Fenster, das sog. @{"Anwendungsdefinitionsfenster" Link ApplPreferences} : o Neu: mit diesem Button können Sie eine neue Anwendungsdefinition eingeben o Ändern: mit diesem Button können Sie eine bereits existierende Anwendungs- definition abändern o Entfernen: schließlich können Sie natürlich auch Anwendungen aus der Liste entfernen. o Speichern: Hiermit können Sie Änderungen an der Anwendungsliste dauerhaft sichern. Das Voreinstellungsfenster verschwindet anschließend. o Verstecken: Bei diesem Knopf werden die neuen Einstellungen zwar wirksam, aber nicht dauerhaft gesichert. Diese Methode eignet sich gut zum Ausprobieren von neuen Namen o Beenden: Hiermit wird ScreenTab beendet. Änderungen an der Anwendungsliste werden NICHT gespeichert. Alle Knöpfe können Sie auch über die Tastatur bedienen. Hierzu müssen Sie die entsprechenden unterstrichenen Buchstaben drücken. @EndNode @Node ApplPreferences "Anwendungsdefinition" 3.3. Anwendungsdefinition ------------------------- In diesem Fenster können Sie angeben, welche Screen- bzw. Task-Namen durch einen speziellen Applikationsnamen ersetzt werden sollen. Dazu gibt es mehrere Schaltelemente: - Anwendungssname: Dieser Text erscheint später statt dem entsprechenden Namen im ScreenTab-Fenster. - @{"Muster:" Link PatternDefinition} Wenn ein Screen geöffnet wird, vergleicht ScreenTab unter Be- rücksichtigung der AmigaDOS-Konventionen den Screen-Titel mit allen Mustern, die zur Verfügung stehen. Sollte ein Muster passen, wird statt dem Screen-Titel der Anwendungsname verwendet. - Benutze ... Bei den meisten Programmen, die einen Screen öffnen, kann der Screen-Titel zur Mustererkennung herangezogen werden. Manche Anwendungen (z. B. PPaint) vergeben an ihre Screens aber keine Namen, sodaß eine Erkennung nicht möglich ist. Zur Lösung des Problems kann statt dem Screen-Namen der Name des zugehörigen Tasks verwendet werden. Falls das notwendig sein sollte, wenn also beim Blättern mit ScreenTab u. a. ein leeres Fenster erscheint, muß hier die Option 'Benutze Task-Name' eingestellt werden. Natürlich muß auch hier ein Muster angegeben werden, was sich allerdings ein wenig schwieriger gestaltet als beim Screen-Titel, der meist oben angezeigt wird. Wenn Sie den Namen des Tasks erfahren wollen, der den letzten Screen geöffnet hat, müssen Sie nur den Info-Requester von ScreenTab aufrufen. Der Name steht dann in der letzten Zeile. Beachten Sie hierbei, daß sich die Tasknamen eines Programmes unterscheiden können, je nachdem, ob es von der Workbench oder vom CLI gestartet wurde. Sobald alle Einstellungen durchgeführt wurden, klicken Sie auf OK, um die neue Anwendungsdefinition wirksam werden zu lassen, oder Abbruch, um bei den alten Einstellungen zu bleiben. @EndNode @Node PatternDefinition "Muster" 3.3.3.1. Muster --------------- Bei den meisten Programmen reicht es, einfach den Screen-Titel in das 'Muster'-Feld einzutragen. Einige wenige verändern jedoch ihren Screen- Titel während der Anwendung und könnten somit auch nicht mehr erkannt werden. Bestes Beispiel ist die Workbench selber. Deshalb kann man sehr flexible Muster eingeben, die verschiedene Möglichkeiten zulassen. Folgende Regeln sind bei der Erstellung eines Muster zu beachten: ? - steht für ein einzelnes beliebiges Zeichen % - steht für eine leere Zeichenkette #m - steht für das null- oder mehrfache Auftauchen des Musters 'm' m1|m2 - entweder Muster 'm1' oder 'm2' [a-z] - an dieser Stelle darf ein Zeichen zwischen 'a' und 'z' vorkommen ' - der Apostroph wird benutzt, um spezielle Musterzeichen wie '?' oder '#' anzusprechen () - mit den runden Klammern können einzelne Bestandteile des Musters zusammengefaßt werden Beispiele: "A#BC" -> "AC", "AbC", "ABbBBC" etc. "A??C" -> "AxxC", "A12C" etc. "A#?C" -> "Axyz123C", "AabcdefC" etc. "A(B|C)D -> "ABD" und "ACD" "A[B-D]E -> "ABE", "AcE", ... "#(AB|CD)E -> "ABE", "CDE", "ABABE", "ABCDE", etc. Es besteht KEIN Unterschied zwischen Groß- und Kleinschreibung ! Zum besseren Verständnis möchte ich hier zwei Beispiele für Titelmuster, aus der Praxis sozusagen, angeben: 1. Für den Workbench-Screen: Dieser nimmt nach meiner Erfahrung drei verschiedene Titel an: - "Workbench Screen" - "Amiga Workbench x.xxx.xxx Chip-RAM ..." - "Copyright ..." Mit dem folgenden Muster können Sie alle Fälle abdecken: (Copyright#?|(#?|%)Workbench#?) 2. Für Directory-Opus: DirOpus vergibt an seine Screens stets den Titel "DOPUS.X", wobei das X für das jeweils geöffnete DirOpus steht, wenn mehrere gleichzeitig laufen. Deshalb folgendes Muster: DOPUS.#? Probieren Sie ruhig mehrere Muster aus, falls ScreenTab kein passendes Muster findet, wird der normale Screen-Titel angezeigt. AUFRUF ------ Da ich natürlich nicht alle Programme kennen kann, habe ich geplant, eine Art "Muster-Datenbank" aufzubauen, die dann mit zukünftigen Versionen von ScreenTab ausgeliefert wird. Sollten Sie also für ihre spezielle Anwendung(en) die entsprechenden Muster geschrieben haben, wäre es toll, wenn Sie mir diese zusenden könnten. Dann profitieren auch andere davon. Bitte kontaktieren Sie mich mit Hilfe der Adressen, die ich in den @{"Credits" Link Credits} angegeben habe. @EndNode @Node Tooltypes "Tool-Types" 3.4. Tool-Types --------------- ScreenTab kann über die sogenannten Tool-Types konfiguriert werden. Diese werden zusammen mit dem Workbench-Icon abgespeichert. Zugreifen können Sie auf diese Tool-Types, indem Sie das ScreenTab-Icon einmal anklicken und anschließend den Menüpunkt "Piktogramm / Informationen" anwählen. Daraufhin öffnet sich das Einstellungsfenster. Folgende Tool-Types können Sie eingeben: CX_POPKEY: Mit dieser Tastenkombination öffnen Sie das @{"Voreinstellungsfenster" Link Preferences}. STARTPRI: ScreenTab sollte als letztes der Programme, die in der WBStartup-Schublade liegen, gestartet werden, da in dieser Phase der Workbench-Titel sehr oft gewechselt wird und ScreenTab durch- einander kommen könnte. Benutzen Sie deshalb eine niedrige Startpriorität (z. B. -120). SWITCHKEY: Mit dieser Tastenkombination (Default: LAmiga + Tab) können Sie zwischen den Screens umherschalten. TOOLPRI: Hier können Sie eingeben, mit welcher Priorität der ScreenTab-Task laufen soll (Default : 5). Da manche Programme höhere Prioritäten haben, kann es sein, daß ScreenTab auf Eingaben nicht sofort reagiert. In einem solchen Fall sollten Sie die Priorität erhöhen. @EndNode @Node Credits "Credits" C R E D I T S ~~~~~~~~~~~~~ Bug-Reports ... --------------- Das wichtigste für den Programmierer ist die Resonanz, die er auf seine Programme bekommt. Falls Sie mir - Muster für die Anwendungsdefinition (WICHTIG: Option Screen- od. Task-Name angeben !) - Bug-Reports (genaue Fehlerbeschreibung !!!) - Kritik, Verbesserungsvorschläge oder Fragen - Kataloge für andere Sprachen (mit CT-Dateien !!!) - Postkarten, Grüße, Geld, ... - ... - ;-) schicken wollen, wenden Sie sich an folgende Adressen: o Internet : < u193113@uebung2.rz.fh-reutlingen.de > o Schriftlich über folgende Adresse: Michael Link Krummenackerstraße 171 73733 Esslingen Deutschland EMAIL bevorzugt !!! Danksagungen ------------ Ich möchte folgenden Personen und Institutionen meinen Dank aussprechen: o Manfred Oberbach für die hilfreichen Vorschläge o Roland Barthel fürs Beta-Testen o Andy Futschik o Martin Korndörfer für MagicMenu, Diavolo Backup und seinen Tip o Ralph Babel für sein 'Amiga Guru Book' o SAS-Institute für ihren genialen C-Compiler (macht bitte weiter !!!) @EndNode @Node Disclaimer "Nutzungsbedingungen" KEINE GARANTIE -------------- Der Autor übernimmt keine Verantwortung für Schäden oder Datenverluste, die direkt oder indirekt durch die Benutzung von ScreenTab zustande gekommen sind. Der Anwender übernimmt das alleinige Risiko. COPYRIGHT --------- ScreenTab © 1994 Michael Link ScreenTab ist FREEWARE, d.h. Sie dürfen ScreenTab unter folgenden Bedingungen beliebig oft kopieren und weitergeben: - ScreenTab und die zugehörigen Dateien (s.u.) dürfen ohne meine Zustimmung nicht verändert und dürfen nur zusammen weitergegeben werden - die kommerzielle Nutzung von ScreenTab wird strengstens untersagt Das Copyright auf ScreenTab verbleibt in jedem Fall beim Autor! DATEIEN ------- ScreenTab ScreenTab.info ScreenTab.prefs catalogs/deutsch/ScreenTab.catalog catalogs/ScreenTab.cd catalogs/ScreenTab_deutsch.ct catalogs/ScreenTab_empty.ct ScreenTab_D.guide ScreenTab_D.guide.info ScreenTab_E.guide ScreenTab_E.guide.info Install_Deutsch Install_Deutsch.info Install_English Install_English.info @endnode @Node History "Entwicklung" ScreenTab-Entwicklung ===================== Version 1.00, Datum : 20.09.1994 -------------------------------------------------------------------------- - die erste voll funktionsfähige Version - Fehler beim Einlesen der Catalog-Strings behoben Version 1.01, Datum : 21-Sep-94, Zeit: 13:14:55 -------------------------------------------------------------------------- - zur Absicherung wurde eine Semaphore eingeführt, die die gepatchten Screen-Funktionen stoppt, solange das ScreenTab-Fenster auf dem Schirm ist (gab Probleme mit diversen Screenblankern) - jetzt können beliebige Tastenkombinationen zur Aktivierung des ScreenTab-Fensters verwendet werden (werden später in die Tool- Types eingetragen) Version 1.02, Datum : 22-Sep-94, Zeit: 14:32:06 -------------------------------------------------------------------------- - Keyboard-Shortcuts eingebaut Version 1.04, Datum : 03-Okt-94, Zeit: Zeit: 19:13:43 -------------------------------------------------------------------------- - Umstellung auf SAS/C 6.51 - Einstellungen ab jetzt über Tool-Types möglich - Code wieder ein wenig bereinigt Version 1.05, Datum : 08-Okt-94, Zeit: 17:56:04 -------------------------------------------------------------------------- - Oberfläche nun fontsensitiv Version 1.06, Datum : 09-Okt-94, Zeit: 15:23:33 -------------------------------------------------------------------------- - im List-Fenster jetzt Cursorsteuerung möglich - habe ChangeApplication ganz rausgenommen und durch Del + Add ersetzt - Fehler beim Löschen einer Applikation behoben - vor dem Rücksetzen der gepatchten Funktionen werden diese zuerst gecheckt Version 1.07, Datum : 18-Okt-94, Zeit: 21:00:53 -------------------------------------------------------------------------- - Voreinstellungen werden jetzt vom ENV:-Verzeichnis gelesen Version 1.08, Datum : 25-Okt-94, Zeit: 14:54:29 -------------------------------------------------------------------------- - ScreenTab benutzt jetzt das Timer-Device, um auf Tastendrücke zu warten. Deshalb werden andere Tasks nicht mehr belastet. - Abfrage des Tasknamens wesentlich verbessert, jetzt wird sofort beim Öffnen des Screens der Taskname ausgewertet - Anzeige des Tasknamens des letzten geöffneten Screens im Info- Requester Version 1.09, Datum : 27-Okt-94, Zeit: 21:55:01 -------------------------------------------------------------------------- - Fehler behoben: - LockLayerInfo() durch LockLayers() ersetzt - eigenen Port fürs timer.device eingeführt, andere Lösung führte zu Fehlern (Final Writer) - falls bei der Änderung eines Musters ein Fehler auftrat, wurde die gesamte Definition gelöscht - im Falle des CLI-Starts wird nur noch der Programmname aus- gewertet, ohne den Pfad Version 1.10, Datum : 28-Okt-94, Zeit: 16:58:23 -------------------------------------------------------------------------- - ActivateWindow() wird nun auch gepatcht, da beim Aufruf dieser Funktion durch andere Programme Fehler auftraten Version 1.11, Datum : 30-Okt-94, Zeit: 16:40:43 -------------------------------------------------------------------------- - Cursorsteuerung wieder entfernt (macht meiner Meinung nach nur wenig Sinn, da für volle Ausnutzung spezielle OS3.0- Features notwendig sind (GetGadgetAttrs !!!)) - "Anzeige beenden" in Exchange nun möglich Version 1.12, Datum : 13-Nov-94, Zeit: 14:14:59 -------------------------------------------------------------------------- - OpenWindowTags(), OpenWindow() und CloseWindow() werden jetzt ebenfalls gepatcht (beim Öffnen und Schließen eines Fenster darf ScreenTab nicht aktiviert werden !) - Fehler behoben: - ChangeApplication() wieder reingenommen (s. V1.06) - Code erneut optimiert Version 1.13, Datum : 14-Nov-94, Zeit: 16:43:56 -------------------------------------------------------------------------- - Fehler behoben: - beim Anwenden des Screen-Namens wurde nur ein Zeiger statt einem Zeiger auf einen Zeiger verwendet 8^) - Voreinstellungsfenster gab den Speicher nicht vollständig frei (FreeVisualInfo()) @EndNode