home *** CD-ROM | disk | FTP | other *** search
- "ClipView" (Version 30.08.1994)
- ===============================
-
- Dieses Programm ist FREEWARE, d.h. es darf und soll weitergegeben und
- benutzt werden. Die Weitergabe ist gestattet, sofern die Dateien
- CLIPVIEW.APP, CLIPVIEW.TXT (diese Datei) und CLIPVIEW.PAS zusammen
- und unverändert weitergegeben werden. Wird das Programm in PD-Serien
- aufgenommen, auf CDs gepreßt etc., möge man sich doch bitte um die
- aktuellste Version kümmern.
-
- Meine Adresse: Thomas Much, Gerwigstraße 46, 76131 Karlsruhe
- Tel. (0721) 62 28 41
- EMail: Thomas Much @ KA2
- UK48@ibm3090.rz.uni-karlsruhe.de
-
- CLIPVIEW.ZIP sollte auf jeden Fall in den Mäusen KA und HL zu finden
- sein (Achtung: Kein Gastdownload von 18-21.45 Uhr).
-
-
- Wozu ist ClipView gut?
- ----------------------
- ClipView ist "nur" ein Testprogramm für die neue Scrap-Message
- SC_CHANGED (Definitionen s.u.) und das Menü-Protokoll. Von letzterem
- werden z.Z. nur WM_PRINT und WM_PASTE ausgewertet.
-
-
- Installation und Anwendung
- --------------------------
- ClipView kann sowohl als Programm als auch als Accessory eingesetzt
- werden. Unter alten TOS-Versionen sollte man dem Accessory den Vorzug
- geben, unter Multitasking-Systemem ist der Programmtyp im Prinzip
- egal.
- Wenn ein Programm den Inhalt des Klemmbretts ändert und alle Appli-
- kationen im System per SC_CHANGED benachrichtigt, zeigt ClipView den
- neuen Inhalt sofort an - sofern es sich um eine Text-Datei handelt.
- Außerdem kann ClipView mit dem Menü-Protokoll "ferngesteuert" werden,
- d.h. statt <Control>+<P> zu drücken, kann z.B. eine Shell auch die
- Message WM_PRINT schicken.
-
-
- Was man sonst noch über ClipView wissen sollte
- ----------------------------------------------
- Wie man vielleicht am beiliegenden Quelltext erkennt, ist ClipView
- ein ObjectGEM-Programm. Zur Programmierung wurde die neue ObjectGEM-
- Version 1.17 verwendet.
-
- Schließlich muß ich noch darauf hinweisen, daß ClipView bei mir zwar
- wunderbar läuft, daß ich dies aber nicht garantieren kann. Wer ClipView
- einsetzt, tut dies AUF EIGENE GEFAHR. Sollte tatsächlich ein Fehler
- auftreten und ich davon erfahren, werde ich diesen nach Möglichkeit
- eliminieren.
-
-
- Definition von SC_CHANGED
- -------------------------
- Die GEM-Message SC_CHANGED sollte von einer Applikation an alle anderen im
- System erreichbaren Applikationen verschickt werden, /nachdem/ am Klemmbrett
- Änderungen vorgenommen wurden. Unter alten TOS-Versionen kann dafür z.B. ein
- geeignetes Protokoll (XAcc/AV) verwendet werden, unter MultiTOS und kompa-
- tiblen Betriebssystemen appl_search oder (besser) ein AES-Broadcast per
- shel_write(7,...). Die Nachricht ist wie folgt aufgebaut:
-
- msg[0] = SC_CHANGED $0050 (80)
- msg[1] = apID
- msg[2] = 0
- msg[3] = Bitmap des Dateiformats (s.u.)
- msg[4] 4 Zeichen für die "beste" der abgespeicherten Dateien
- + = (z.B. ".RTF"), damit beim Lesen möglichst wenig
- msg[5] Information verloren geht
- msg[6]
- + = reserviert, /auf Null setzen!/
- msg[7]
-
- Folgende Konstanten charakterisieren das Dateiformat. Nur wenn die ge-
- speicherten Daten auch im entferntesten nicht in eine der Kategorien
- passen, sollte SCF_INDEF übergeben werden.
-
- SCF_INDEF = $0000;
- SCF_DBASE = $0001; Daten, die in eine Datenbank geladen werden können
- (".DBF", ".CSV", ...)
- SCF_TEXT = $0002; Textdateien
- (".TXT", ".ASC", ".RTF", ".DOC", ...)
- SCF_VECTOR = $0004; Vektorgrafik
- (".GEM", ".EPS", ".CVG", ".DXF", ...)
- SCF_RASTER = $0008; Rastergrafik
- (".IMG", ".TIF", ".GIF", ".PCX", ".IFF", ...)
- SCF_SHEET = $0010; Tabellenkalkulation
- (".DIF", ".WKS", ...)
- SCF_SOUND = $0020; Samples, MIDI-Files, Klänge, ...
- (".MOD", ".SND", ...)
-
- Durch Auswertung der Bitmap brauchen nur die Applikationen, die evtl.
- Verwendung für solche Daten haben, im Klemmbrett nachschauen.
- Wenn "kombinierte" Dateiformate gespeichert werden (z.B. Raster- und Vektor-
- grafik in einer Datei), muß entsprechend mehr als ein Flag gesetzt werden.
- Eine Anwort auf SC_CHANGED wird *nicht* erwartet.
-
-
- Vorläufige Definition des Menü-Protokolls
- -----------------------------------------
- In letzter Zeit wurde viel darüber diskutiert, welche Shortcuts welchen
- Aktionen zuzuordnen sind (bzw. wie dies am besten geschieht). Dabei fehlt
- aber offensichtlich noch die Möglichkeit, fremde Fenster mit vorhandenen
- Menüeinträgen "fernzusteuern". Praktisch jedes Programm hat einen Menü-
- eintrag "Schließen", worauf man an *jedes* oberste Fenster eine WM_CLOSED-
- Message schicken kann. Wie aber soll das z.B. bei Cut/Copy/Paste
- funktionieren?
-
- Dafür hier nun ein Vorschlag für *neue* Messages, die aus jedem Programm
- eine kleine Shell (z.B. für Accessories) machen können (intern wird dann also
- keine Routine direkt aufgerufen, sondern immer nur eine entsprechende Message
- an das oberste Fenster geschickt):
-
- _Menüeintrag_ _(Shortcut)_ _Nachricht_ _Nummer_
-
- (Schließen ^U WM_CLOSED 22 $0016)
- (Volle Größe ^#* WM_FULLED 23 $0017)
- Sichern ^S WM_SAVE 4096 $1000
- Sichern als ^M WM_SAVEAS 4097 $1001
- Drucken ^P WM_PRINT 4098 $1002
- Undo Undo WM_UNDO 4099 $1003
- Ausschneiden ^X WM_CUT 4100 $1004
- Kopieren ^C WM_COPY 4101 $1005
- Einfügen ^V WM_PASTE 4102 $1006
- Löschen Del WM_DELETE 4108 $100c
- Alles auswählen ^A WM_SELECTALL 4103 $1007
- Suchen ^F WM_FIND 4104 $1008
- Ersetzen ^R WM_REPLACE 4105 $1009
- Weitersuchen ^G WM_FINDNEXT 4106 $100a
- Hilfe Help WM_HELP 4107 $100b
-
- Die Shortcuts haben _nichts_ mit dem Protokoll zu tun, sie sind hier
- nur zur Information noch einmal aufgelistet.
-
-
-
- Release-History
- ---------------
- 30.08.94
- - SC_CHANGED hat nun "offiziell" die Message-Nummer 80
- 19.07.94
- - erste öffentliche Version
-