Anleitung zu Maus-Window V1.16 (Stand: 06.09.1993) -------------------------------------------------- 1. Was ist Maus-Window? ----------------------- Wer schon einmal unter X11 gearbeitet hat, wird festgestellt haben, daž immer das Fenster aktiv ist, das sich unter dem Mauszeiger befindet. Ein „hnliches Verhalten des ATARI-GEM w„re in mancher Hinsicht wnschenswert. Leider ist es nur m”glich, dies durch ein "Toppen" des betreffenden Fensters zu erreichen (sonst w„ren tiefgreifende Žnderungen im Betriebssystem notwendig). In diesem Zusammenhang fand ich einen Artikel in einer Fachzeitschrift fr den ST, der ein solches Programm zum automatischen Toppen eines Fensters beschrieb. Leider war das Ergebnis nicht recht berzeugend, da alle vorgestellten Methoden nicht zu vernachl„ssigende Nachteile auswiesen. Also begann ich, ein eigenes Programm fr diesen Zweck zu erstellen. Das Ergebnis ist das hier vorliegende Programm Maus-Window V1.16, daž als Accessory in das Wurzelverzeichnis des Bootlaufwerks kopiert werden muž. Der Betrieb als Programm ist zwar auch m”glich, hat aber nur in einer Multitasking- Umgebung Sinn, aužerdem muž dann das Fenster ge”ffnet bleiben, da das Programm sonst beendet wird. Maus-Window l„uft brigens ohne Probleme in beiden Modi unter MultiTOS. Ist Maus-Window aktiv und der Mauszeiger befindet sich ber einem nicht- aktiven Fenster, wird dieses automatisch in den Vordergrund bef”rdert. Dazu wird die AES-Funktion appl_tplay benutzt, was eine 100%ig GEM- konforme L”sung darstellt und mit allen "sauberen" Programmen problemlos funktioniert (zu Problemf„llen siehe Punkt 4). Haben die AES eine Versionsnummer gr”žer oder gleich 3.31, benutzt Maus- Window den erweiterten Funktionsumfang zum Bestimmen des "Eigentmers" des betreffenden Fensters und schickt diesem dann die Meldung, daž das Fenster getoppt werden soll. 2. Die Einstellm”glichkeiten von Maus-Window -------------------------------------------- Ruft man im Accessory-Betrieb den Eintrag von Maus-Window im Desk-Men auf, so erscheint ein Dialogfenster (was beim Betrieb als Programm sofort nach dem Start passiert). Der Button "Info" l„žt ein Dialogfenster mit Informationen ber Maus-Window erscheinen, welches man mit dem "OK"-Button wieder verl„žt. Der Button "Paramter einstellen" ”ffnet das Parameter-Fenster von Maus-Window. Hier k”nnen mehrere Einstellungen vorgenommen und auf Wunsch gespeichert werden (siehe n„chster Absatz). Der "OK"-Button des Maus-Window-Dialogfensters schliežt dieses wieder, im Programmodus wird Maus-Window daraufhin verlassen. Maus-Window bietet mehrere Optionen, die sich auf die Funktionsweise auswirken. Das Parameter-Dialogfenster bietet die M”glichkeit, dies einzustellen (man erreicht es durch den Button "Parameter einstellen" aus dem Hauptdialogfenster). Alle Žnderungen, die man in diesem Fenster vornimmt, treten sofort in Kraft, der Button "OK" ist nur zur entgltigen šbernahme der Einstellungen gedacht (der Dialog ist also wie das ATARI-Kontrollfeld nicht-modal). Man kann das Parameter- Dialogfenster auch gleich beim Aufruf erreichen, indem man beim Anw„hlen des Accessory-Eintrags eine der Sondertasten (Control, Shift oder Alternate) oder die rechte Maustaste gedrckt h„lt. Vorsicht ist bei Control geboten, da dies unter MultiTOS ein Entfernen des Accessorys zur Folge hat. Mit der Checkbox "Maus-Window aktiv" legt man fest, ob Maus-Window Fenster toppen soll oder nicht. Mit "nur im Arbeitsbereich" kann man festlegen, ob Fenster nur dann nach vorne geholt werden sollen, wenn sich der Mauszeiger ber dem Arbeitsbereich des Fensters befindet (unter WINX k”nnten sonst versehentlich die Rahmenelemente bedient werden, da Maus-Window bei AES-Versionen kleiner 3.31 ja einen Mausklick simuliert). Die Box "'Verschwinden' verhinden" legt fest, ob darauf geachtet werden soll, daž keine Fenster nach vorne geholt werden, die das momentan oberste komplett verdecken wrden (oder nur dessen Arbeitsbereich, je nach Einstellung von "nur im Arbeitsbereich"). M”chte man nicht, daž Maus-Window auch w„hrend der Bewegung des Mauszeigers Fenster "toppt", sollte man die Checkbox "Nicht w„hrend Bewegung" ankreuzen. Desweiteren l„žt sich festlegen, bei welchen Sondertasten (Shift links/rechts, Control und Alternate) keine Fenster aktiviert werden sollen, wenn mindestens eine davon gedrckt ist (gedrckte Maustasten bewirken dies grunds„tzlich auch). M”chte man die get„tigten Einstellungen als Standard bei Programm- bzw. Accessory-Start haben, so kann man mit "Sichern" den Parametersatz als MAUSWIND.INF im gleichen Verzeichnis, in dem sich Maus-Window befindet, abspeichern. Diese Datei wird von Maus-Window bei jedem Start ausgewertet, ist sie nicht vorhanden, werden alle Optionen aktiviert. Mit "OK" werden die Einstellungen bernommen und der Parameterdialog verlassen. "Abbruch" stellt zuvor noch den alten Parameterzustand wieder her. 3. Maus-Window "light" ---------------------- Da es zur Zeit ja beinahe notwendig ist, zu jedem Produkt auch eine "light"-Version anzubieten, habe ich das auch bei Maus-Window gemacht: Die "light"-Variante ist wesentlich krzer (nur ca. 25 Prozent der Normalversion), bietet keine Online-Einstellungsm”glichkeit und l„uft nur als Accessory. Maus-Window "light" bercksichtigt wie sein grožer Bruder die Datei MAUSWIND.INF, l„žt es aber nur zu, Maus-Window global ein- und auszuschalten. Dazu erscheint bei Anwahl des Desk-Men-Eintrags eine Alertbox mit den Auswahlm”glichkeiten "an" und "aus", mehr nicht. Maus-Window "light" ist also fr all diejenigen gedacht, die den ganzen Parameterschnickschnack nur einmal einstellen und danach lieber die wesentlich speicherfreundlichere Variante benutzen wollen. 4. Problematische Programme --------------------------- Wie bereits erw„hnt, ist Maus-Window 100%ig GEM-konform. Allerdings ist es darauf angewiesen, daž auch die laufenden Programme nach den Richtlinien programmiert sind. Maus-Window bleibt bei allen Programmen wirkungslos, die keine echten GEM-Fenster benutzen (z.B. „ltere Versionen von CyPress) oder die AES-Nachrichten nicht oder nicht richtig auswerten. Desweiteren gibt es Programme, die gewisse Annahmen ber das Verhalten von GEM machen, die nicht dokumentiert sind. Auch diese sind potentielle "Nicht-Funktionierer". Leider geh”rt zu ihnen auch Pure C 1.0 (mit dem Maus-Window erstellt wurde): Ruft man mit der Help-Taste das Hilfesystem von Pure C auf, ”ffnet sich ein Fenster. Ist dabei der Mauszeiger gerade ber einem Quelltextfenster, wird dieses von Maus-Window nach oben geholt, was Pure C jedoch ignoriert. Es geht weiterhin davon aus, daž sich das Hilfefenster oben befindet und gibt den Hilfstext in das aktive Fenster aus. Dabei ger„t auch noch die interne Fensterverwaltung von Pure C durcheinander, was dazu fhrt, daž der Quelltext verloren ist. Mit Pure C 1.1 drfte das Problem nicht mehr auftreten, da die Fensterverwaltung drastisch berarbeitet wurde. Wem weitere Programme auffallen, die sich mit Maus-Window nicht vertragen, sollte mir schreiben (meine Adresse steht unter Punkt 5). Ich fhre dann eine entsprechende Liste, die ich jedem zuschicke, der mir einen an sich selbst adressierten, frankierten Rckumschlag schickt oder sie per Email anfordert. Die Autoren solcher Programme sollten wissen, daž diese sich mit hoher Wahrscheinlichkeit auch mit MultiTOS und anderen Multitasking-System oder mit WINX nicht vertragen, was ein Umprogrammieren wohl sinnvoll macht. 5. Kontakt mit dem Autor ------------------------ Wer die Liste mit problematischen Programmen haben, seine Meinung loswerden oder Vorschl„ge machen will, sollte sich an diese Adresse wenden: Thomas Binder Hauptstraže 43b 61169 Friedberg/Deutschland InterNet: binder@rbg.informatik.th-darmstadt.de Wer meint, Maus-Window sei so toll, daž er mir unbedingt eine kleine Spende zukommen lassen muž, sollte diese Bankverbindung benutzen... Dresdner Bank AG Frankfurt/Main Konto-Nr. 9 024 050 00 BLZ 500 800 00 6. Zum Kopieren von Maus-Window ------------------------------- Maus-Window ist nach wie vor frei kopierbar, einzige Bedingung ist, daž alle Dateien (MAUSWIND.ACC, MWLIGHT.ACC, MAUSWIND.TXT) komplett und unver„ndert weitergegeben werden (Archivierung ist erlaubt). 7. Žnderungen gegenber „lteren Versionen ----------------------------------------- Žnderungen gegenber V1.15: - H„lt man beim Anw„hlen des Accessory-Eintrags eine der Sondertasten (Control, Shift oder Alternate) oder die rechte Maustaste gedrckt, erscheint sofort das Parameter-Dialogfenster. Control ist dabei nicht sehr empfehlenswert, da MultiTOS auf diese Weise Accessorys entfernt... - Ab AES-Version 3.31 benutzt Maus-Window zum Toppen eines Fenster nicht mehr das Simulieren eines Mausklicks per appl_tplay. Vielmehr wird ermittelt, welcher Applikation das betreffende Fenster geh”rt (WF_OWNER bei wind_get) und dieser dann per appl_write die Nachricht geschickt, daž das Fenster nach oben gebracht werden soll. Das bringt insbesondere unter MultiTOS den Vorteil, daž man nicht mehr "nur im Arbeitsbereich" aktivieren muž. - Einige Probleme mit TOS 1.02 beseitigt: es war ein wind_update- Befehl zuviel, was zum Stillstand fhrte; aužerdem wurde der Eintrag in die Menzeile zu sp„t vorgenommen, sodaž er erst nach einem Programmstart vorhanden war. - In der "light"-Version stimmte die Alertbox nicht (das war mir nicht gleich aufgefallen, weil der Fehler mit Let 'em Fly! nicht auftrat) Žnderungen gegenber V1.10: - Das Dialogfenster wurde in drei Einzelfenster aufgesplittet: Hauptfenster, Parameterfenster und Infofenster. - Es wurden weitere Parameter eingefhrt (Verdeckung von Fenstern verhindern, nur bei Stillstand des Mauszeigers toppen, Festlegung der Sondertasten, die Maus-Window am Toppen hindern sollen). - Einfhrung von Maus-Window "light", der Sparversion von Maus-Window ohne Einstellm”glichkeiten, aber mit sehr viel geringerem Speicherverbrauch. - Neugestaltung der Anleitung (die mich trotzdem noch nicht so recht berzeugt) Žnderungen gegenber V1.02: - Maus-Window wurde im Prinzip komplett neu geschrieben. Es hat jetzt anstelle der Einstelldialogbox ein nicht-modales Dialogfenster, dessen Buttons auch tastaturbedienbar sind. - Maus-Window l„uft auch als Programm, was aber nur mit einem Multitasking-Betriebssystem sinnvoll ist. - Es l„žt sich konfigurieren, ob, wie in Version 1.02 eingefhrt, ein Fenster nur dann nach vorne geholt wird, wenn sich der Mauszeiger in dessen Arbeitsbereich befindet. - Die Konfiguration von Maus-Window (an/aus sowie Bercksichtigung des Arbeitsbereiches ja/nein) l„žt sich als Parameterdatei speichern, die bei Programmstart gelesen wird. Žnderungen gegenber V1.01: - Maus-Window holt ein Fenster nur noch dann nach vorne, wenn sich der Mauszeiger innerhalb des Arbeitsbereichs des Fensters befin- det (sonst werden unter MultiTOS oder WINX u.U. die Fensterele- mente bedient, anstatt daž das Fenster getopped wird). Žnderungen gegenber V1.00: - Maus-Window wartet etwas l„nger zwischen zwei Tests, ob das Fenster unter der Maus getopped werden muž (somit hat man bessere Chancen, schnell mit dem Mauszeiger ber ein Fenster zu fahren, ohne es nach oben zu holen). - Es gab (und gibt leider immer noch) Probleme mit den AES, die sich ab und zu einen Spaž erlauben und Maus-Window keine Timer-Events mehr liefern. Dies fhrt dazu, daž Maus-Window nicht mehr arbeiten kann (Abhilfe: Den Accessory-Eintrag anw„hlen und den Dialog mit OK best„tigen, danach klappt wieder alles). Woran dies liegt, konnte ich bis heute nicht feststellen (sehr wahrscheinlich an einem Fehler in den AES, zumal es unter MultiTOS keine Schwierigkeiten gibt), auf jeden Fall treten diese Probleme jetzt nicht mehr ganz so h„ufig auf. Viel Spaž mit Maus-Window V1.16!