Thomas Knneth
Friedrich-Neuper-Str. 2b
90552 Rthenbach
---------------------------------------------------------------------------

Rechtliches
-----------

'Farbpalette' ist Freeware. Das Programm kann und soll beliebig weiterge-
geben werden. Je mehr Anwender dieses kleine Tool verwenden, umso besser.
Deshalb drfen (und sollen) Programm-Autoren, die aus ihrem Programm heraus
'Farbpalette' nachstarten, das Paket mit in ihre Distribution aufnehmen.
Ausnahmen: Die Aufnahme der 'Farbpalette' als stand-alone-Anwendung in
PD-Serien oder CD-Rom-Archive bedarf meiner ausdrcklichen schriftlichen
Genehmigung. Ggf. behalte ich mir rechtliche Schritte vor. Auch ist der
Upload in Mailboxen, die nur kostenpflichtigen Download ermglichen,
strikt untersagt. DIE KOSTENLOSE WEITERGABE IST ERLAUBT UND ERWNSCHT!

Ich habe mich bemht, das Programm mit so wenig Fehlern auszustatten wie
mglich. Dennoch wird wohl kein Computerprogramm ab einer bestimmten Gre
fehlerfrei sein. Ob der oder die Fehler zu verheerenden Katastrophen oder
nur kleinen Pannen fhren ist wohl Schicksal... Wie dem auch sei, ich
lehne jegliche Haftung fr Schden, die durch direkte oder indirekte
Nutzung entstehen, ab. Die Benutzung geschieht ausdrcklich und aus-
schlielich auf eigene Gefahr.

Warum 'Farbpalette'?
--------------------

Das Programm wurde geschrieben, um den Anwendern die Mglichkeit zu geben,
Farbpaletten zu editieren und in einem standardisierten Format
abzuspeichern.
Da 'Farbpalette' als Drag-und-Drop Server und -Client eingesetzt werden
kann, lassen sich leicht Bibliotheken mit Farben fr verschiede Anwendungs-
gebiete anlegen und bei Bedarf komfortabel an entsprechende Anwendungen
weiterleiten. Diese (wie zum Beispiel STELLA) laden die 'Farbpalette' bei
Bedarf nach und werden automatisch informiert, wenn der Anwender eine
Palette modifiziert hat.
Falls das verwendete Betriebssystem Drag-and-Drop nicht zult erfolgt der
Datenaustausch ber das GEM-Klemmbrett.

Drag-and-Drop
-------------

a) als Client

'ARGS': die bergebenen Argumente werden als Dateinamen interpretiert;
        handelt es sich um Standard-Paletten-Dateien, werden diese geladen.
        Mehr als eine Datei ist deshalb nicht sinnvoll.
'.GCP': Standard-Paletten-Dateien werden vollstndig via Pipe bertragen.

b) als Server

'.GCP': es wird eine Standard-Paletten-Datei via Pipe bertragen.
'.ASL': wenn ein Argument -a<apid>[:winid] in der Kommandozeile war, wird an den
        Prozess via Pipe der String "COLORPAL:apid=<cpid>\r\n" verschickt.
        <apid> ist die AES-Kennung des Prozesses, der 'Farbpalette' gestar-
        tet hat, <cpid> ist die Kennung der 'Farbpalette'.
        Der optionale Teil :winid rpresentiert das Handle eines Fensters,
        das bei allen D&D-Nachrichten an das Programm zurckgegebn wird. Wenn
        also eine Anwenung die Farbpalette aufruft um die Farben eines ganz
        bestimmten Fensters zu editieren, sollte dessen Handle bergeben
        werden.

Das Fenster
-----------

Wichtige Komponenten sind:

- 16 Farbfelder: Der unter dem Feld stehende Index gibt die Position dieser
  Farbe in der Standard-Paletten-Datei an. Ein Klick auf das Farbfeld oder
  den Index macht diese zur aktuellen Farbe, die mit den Slidern und Pfeilen
  bearbeitet werden kann. Wird anstatt eines Klicks die Maustaste festgehal-
  ten, lt sich ein Rechteck in der Gre des Farbfeldes frei ber den
  Bildschirm bewegen. Wird die Maustaste ber einem anderen Farbfeld oder
  Index losgelassen, nimmt dieser die Farbe des Feldes an, von dem die
  Aktion ausging. War die Maus ber dem Fenster einer anderen Anwendung,
  wird eine Standard-Paletten-Datei an diese geschickt. In dieser ist nur
  die eine Farbe eingetragen, die Ausgangspunkt der Aktion war.

- Die Slider fr die Farbkomponenten Rot, Grn und Blau erlauben eine sehr
  feine Einstellung der Farbe. Wertvernderungen beziehen sich immer auf das
  Farbfeld, dessen Text invertiert dargestellt wird.

- Der Knopf 'Rcksetzen' trgt die Farbwerte in die Palette ein, die zum
  Zeitpunkt des Starts von 'Farbpalette' aktuell waren.

- Das Popup-Men:

a) Der Eintrag 'Versenden'

  wenn das Fenster der Farbpalette nicht das Top-Fenster ist, wird an die
  Anwendung, der das aktuelle Fenster gehrt, via Pipe die gerade bearbeitete
  Palette verschickt (falls D&D mglich ist);
  ist das Farbpalette-Fenster das oberste, wird die Palette an die Anwendung
  verschickt, der das mit :winid bergeben Fenster gehrt (falls D&D mglich
  ist und in der Kommandozeile die entsprechende Option gesetzt war);
  ansonsten wird die Palette uf das Klemmbrett gelegt und ggf. SC_CHANGED
  an alle Prozesse verschickt

b) Palette setzen

  kann auf Farbsystemen eingesetzt werden und bernimmt die unter Farben
  eingestellte Zahl von Farben aus der Palette als neue Systempalette. Wenn
  'Farbpalette' mit der Option -a<apid>[:winid] gestartet wurde, wird vor dem
  Beenden die Palette an den entsprechenden Proze geschickt. Dies unterbeleibt,
  wenn Abbrechen anstelle von Beenden verwendet wird

Wie in GEM-Programmen blich, wird die rechte Maustaste zustzlich verwen-
det, um in nicht-aktiven Fenstern Objekte anwhlen zu knnen.

Die Kommandozeile
-----------------

Beim Programmstart oder nach Erhalt der Nachricht VA_START wertet
'Farbpalette' die Kommandozeile aus.
Normalerweise werden bergebene Argumente als Standard-Paletten-Dateien
geladen. Eine Ausnahme bildet das Argument -a<apid>[:winid], wobei <apid> die
Stringform einer AES-Prozessnummer ist und :winid (optional) ein Fensterhandle
darstellt.
An <apid> wird via Pipe ein Text verschickt der anzeigt, da die 'Farb-
palette' luft. Weiterhin wird eine Standard-Paletten-Datei via Pipe an
diesen Proze geschickt, wenn das Programm mit 'Beenden' verlassen wird.

Hinweise
--------

Da die Kommandozeile und die Nachricht VA_START ausgewertet werden, kann
und sollte die 'Farbpalette' als Anwendung auf Dateien mit der Endung
'.GCP' angemeldet werden.
'Farbpalette' untersttzt MultiTOS-kompatibles Iconifying. Bekommt sie
via VA_START oder Drag-and-Drop Daten bermittelt, wird das Fenster auf
Normalgre gebracht.
'Farbpalette' reagiert auf SC_CHANGED, wenn in mbuf[4/5] '.GCP' eingetragen
wurde; beim Schreiben von Daten aus das Klemmbrett wird ebenfalls SC_CHANGED
verwendet, falls dies mglich ist.
Definitionsgem wird das Klemmbrett vor dem Ablegen von Standard-Paletten-
Dateien gelscht

Datenaustausch
--------------

'Farbpalette' macht fr sich genommen nur begrenzt Sinn. Erst in Kombination
mit Anwendungen, die Standard-Paletten-Dateien lesen und schreiben, lohnt
der Einsatz wirklich.
Deshalb sollten Programme die Mglichkeit vorsehen, 'Farbpalette' aufzuru-
fen. Damit gleich beim Start Paletten-Dateien geladen werden, mssen diese
in der Kommandozeile angegeben werden. Soll eine Kommunikation mit dem
eigenen Programm stattfinden, mu zustzlich die Option -a<apid> angegeben
werden.
'Farbpalette' verwendet normalerweise die Mechanismen des MultiTOS-kompatib-
len Drag-and-Drop. Bekommt 'Farbpalette' die Option -a aber ist D&D nicht
mglich, wird versucht die Datei scrap.gcp zu lesen die sich im Klemmbrett-
Verzeichnis befinden mu. Falls an der Farbpalette nderungn vorgenommen
wurden, wird die Palette via Pipe beim Beenden an die Anwendung, die
'Farbpalette' gestartet hat, bertragen. Ist dies nicht mglich, wird die
Datei in das Klemmbrett-Verzeichnis geschrieben.

Fr Programmierer
-----------------

Wie mehrfach erwhnt, bin ich an einer weiten Verbreitung des GCP-Formats
interessiert. Deshalb biete ich jeden Interessierten an, sich mit mir
in Verbindung zu setzen, der ber den Aufbau dieser Dateien Bescheid wissen
mchte. Ich werde dann gerne die Dokumentation des Formats weitergeben.
Kontaktaufnahme erfolgt am besten via email:
Thomas Knneth, Maus N (im MausNet)
oder
tskuenne@linguistik.uni-erlangen.de (im Internet)
Wer mich per Snailmail erreichen mchte findet meine Adresse gleich am
Anfang dieses Texts. Bitte ausreichend Rckporto beilegen.

