home *** CD-ROM | disk | FTP | other *** search
- ****************************************************************
- * *
- * EYES V 1.00 *
- * *
- * Public domain accessory fuer Atari ST (monochrom und Farbe) *
- * *
- * von *
- * *
- * Peter Kirchgessner *
- * Laubenheimer Str. 78 *
- * W6500 Mainz-Weisenau *
- * *
- * Kurzbeschreibung: Zwei Augen beobachten den Mauszeiger *
- * Entwicklungsumgebung: Atari Mega ST 1, Blitter TOS, *
- * Laser C V2.0 und Turbo C V2.0 *
- * Ablaufumgebung: alle Atari ST, (STE, TT ?) *
- ****************************************************************
-
- Das Accessory umfasst folgende Dateien:
-
- EYES.ACC Das uebersetzte Accessory
- EYES.C C-Quelltext (V 1.00)
- EYES.DOK Diese Dokumentation
- EYES.MKE Make-Datei fuer Laser C V2.0
- EYES.PRJ Projekt-Datei fuer Turbo C V2.0
-
- Alle Dateien sind Public Domain, duerfen aber nur zusammen
- und unveraendert weitergegeben werden. Fuer den eigenen Gebrauch
- duerfen die Dateien beliebig modifiziert werden.
-
- Herkunft:
- =========
- Das Vorbild von EYES ist ein Programm, das waehrend der
- CeBIT 90 auf Workstations von Silicon Graphics ablief.
- Nachdem auf der CeBIT 91 auch solche Programme bei Commodore
- auftauchten, war es hoechste Zeit, zur Tat zu schreiten.
-
-
- Arbeitsweise:
- =============
- In einem Fenster werden zwei Ellipsen gezeichnet. In jeder
- Ellipse bewegt sich ein Rechteck derart, dass es immer auf
- der Strecke Ellipsenzentrum - Mauszeiger liegt. Da das ganze
- aber aussieht wie zwei Augen mit Pupillen, sei im folgenden
- auch von Augen die Rede.
- Damit die Augen dem Mauszeiger folgen koennen, wird das Accessory
- alle 0.15 Sekunden aktiviert (Timer-event von event_multi).
- Hat sich die Position des Mauszeigers nicht veraendert, wird
- gleich wieder 0.15 Sekunden gewartet. Ansonsten berechnet
- das Accessory die neue Position der Augen und aendert sie falls
- noetig. Damit die Augen ohne eigenes zutun staendig sichtbar sind,
- muss das Accessory das Fenster automatisch oeffnen koennen.
- In diesem Fall wird auch bei geschlossenem Fenster mittels des
- Timer-events von event_multi eine zeitlang gewartet, und dann
- das Fenster automatisch geoeffnet. Um die Arbeitsumgebung nicht
- zu veraendern, wird das Fenster, das vor dem automatischen Oeffnen
- das "Top-Window" war, wieder restauriert. Sollten die Augen, oder
- genauer gesagt das gesamte Fenster, verdeckt sein, sucht das
- Accessory einen freien Platz. Das Fenster wird dann an diese Stelle
- positioniert. Diese Positionierung findet nur bei einer (verdeckten)
- Aenderung der Augenpositionen und einem dadurch verursachten
- "Neuzeichnen" statt. Wer das beobachten moechte, muss also die
- Maus verschieben.
- Zum eigenhaendigen Bewegen muss erst innerhalb des Fensters geclickt
- werden, um es zum Top-window zu machen. Danach kann es mit
- gedrueckter linker Maustaste bewegt werden. Bei einem Doppelclick
- wird das Fenster geschlossen und auch nicht mehr automatisch
- geoeffnet. Das Accesssory wartet jetzt nur noch auf die Aktivierung
- seines Menueeintrages. Mit einer Aktivierung wird auch das auto-
- matische Oeffnen wieder zugelassen.
-
-
- Verschiedenes
- =============
- Das Accessory kann nach Umbenennung in EYES.PRG als normales
- Programm gestartet werden.
- Da das Fenster keine Titelzeile benutzt, sieht man ihm nicht an,
- ob es das Top-window ist. Dies kann zu Problemen fuehren, wenn man
- das aktuelle Fenster anhand seiner grauen Titelzeile sucht. Bei
- Unklarkeiten das gewuenschte Fenster anclicken.
- Das Programm wurde auf einem Mega 1 unter Blitter TOS entwickelt
- und in den dort verfuegbaren 3 Aufloesungen erfolgreich getestet.
- Da es sich nur an AES und VDI orientiert, sollte es auch auf
- STE und TT laufen. Bei Programmen die Grafikausgabe ohne Fenster-
- technik machen kann es aufgrund des automatischen Oeffnens zu
- Problemen kommen. U.U. sollte das Accessory vorher stillgelegt
- werden (Doppelclick).
- Ein weiteres Problem soll nicht verschwiegen werden. Durch das
- automatische Oeffnen wird das Fenster mit den Augen zwangslaeufig
- (?) kurzfristig zum Top-window. Wird genau zu diesem Zeitpunkt
- ein Resize auf einem anderen Fenster eingeleitet, scheint der
- Rechner zu haengen. Ein Click auf die alte Position der Size box
- laesst den Rechner weiterlaufen. Wer eine Loesung zu diesem Problem
- hat oder auch andere Anmerkungen zu dem Accessory, wende sich bitte
- an die oben angegebene Adresse.
-
-
- Programminterna
- ===============
-
- Der Quelltext laesst sich ohne Aenderung mit Megamax Laser C V2.0
- und Borland Turbo C V2.0 uebersetzen. Die entsprechenden Make- oder
- Projektdateien koennen dabei verwendet werden. Der Stack wird auf
- 1400 Byte begrenzt. Das Programm wurde nur der besseren Typpruefung
- wegen unter Turbo C entwickelt. Wegen des Editors, der noch nicht
- einmal Marken beherrscht, sicherlich nicht. Vielleicht wird das
- ja in einer der naechsten Versionen besser.
- Einige Anpassungen des Accessories lassen sich recht einfach am
- Quelltext und an der Datei EYES.ACC direkt durchfuehren:
-
- Initialisierung | Offset in |
- im Quelltext | EYES.ACC | Wert und Bedeutung
- =================================================================
- long magic | 0x1314 | 0x31415926 Magische Zahl
- int work_x_origin | 0x1318 | 0x0055 x-Position des Fensters
- int work_y_origin | 0x131A | 0x0014 y-Position des Fensters
- int win_components| 0x131C | 0x0000 Komponenten des Fensters
- int auto_open | 0x131E | 0x0001 Automatisches Oeffnen
-
- Dies sind Werte die fuer den ersten Start des Accessories gelten.
- Die Startposition wird bezueglich des Arbeitsbereiches des Desktops
- angegeben. Wer lieber ein Fenster mit Titelzeile und Close box
- haben will, kann fuer die Fensterkomponenten 0x000B angeben.
- Das Fenster laesst sich dann auch auf die uebliche Art und Weise
- bewegen und schliessen. Gibt man fuer auto_open den Wert 0x0000 an,
- wird das Fenster nach dem Rechnerstart nicht automatisch geoeffnet.
- Die Offset-Werte gelten nur fuer die beigefuegte Originaldatei
- EYES.C.
-
-
- Viel Spass mit dem Accessory
-
-
- Peter Kirchgessner
-