"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 unverndert weitergegeben werden. Wird das Programm in PD-Serien
aufgenommen, auf CDs gepret etc., mge man sich doch bitte um die
aktuellste Version kmmern.

Meine Adresse: Thomas Much, Gerwigstrae 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 Musen KA und HL zu finden
sein (Achtung: Kein Gastdownload von 18-21.45 Uhr).


Wozu ist ClipView gut?
----------------------
ClipView ist "nur" ein Testprogramm fr 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.
Auerdem kann ClipView mit dem Men-Protokoll "ferngesteuert" werden,
d.h. statt <Control>+<P> zu drcken, 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.

Schlielich mu ich noch darauf hinweisen, da ClipView bei mir zwar
wunderbar luft, da ich dies aber nicht garantieren kann. Wer ClipView
einsetzt, tut dies AUF EIGENE GEFAHR. Sollte tatschlich ein Fehler
auftreten und ich davon erfahren, werde ich diesen nach Mglichkeit
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 dafr 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 fr die "beste" der abgespeicherten Dateien
        +  =  (z.B. ".RTF"), damit beim Lesen mglichst 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 knnen
                         (".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, Klnge, ...
                         (".MOD", ".SND", ...)

Durch Auswertung der Bitmap brauchen nur die Applikationen, die evtl.
Verwendung fr 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.


Vorlufige Definition des Men-Protokolls
-----------------------------------------
In letzter Zeit wurde viel darber diskutiert, welche Shortcuts welchen
Aktionen zuzuordnen sind (bzw. wie dies am besten geschieht). Dabei fehlt
aber offensichtlich noch die Mglichkeit, fremde Fenster mit vorhandenen
Meneintrgen "fernzusteuern". Praktisch jedes Programm hat einen Men-
eintrag "Schlieen", worauf man an *jedes* oberste Fenster eine WM_CLOSED-
Message schicken kann. Wie aber soll das z.B. bei Cut/Copy/Paste
funktionieren?

Dafr hier nun ein Vorschlag fr *neue* Messages, die aus jedem Programm
eine kleine Shell (z.B. fr Accessories) machen knnen (intern wird dann also
keine Routine direkt aufgerufen, sondern immer nur eine entsprechende Message
an das oberste Fenster geschickt):

    _Meneintrag_  _(Shortcut)_  _Nachricht_   _Nummer_

   (Schlieen        ^U      WM_CLOSED       22  $0016)
   (Volle Gre      ^#*     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
    Einfgen         ^V      WM_PASTE      4102  $1006
    Lschen          Del     WM_DELETE     4108  $100c
    Alles auswhlen  ^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
