Liste aller GemScript-Kommandos, die Papillon versteht:
------------------------------------------------------

Eine kleine Warnung vorweg!
**************************

Da Papillon auch Referenzen auf Objekte und Dokumente zurckgibt, kann 
man Papillon sehr schnell und sehr tief verwirren, wenn man im 
ungltige Referenzen bergibt. Dies htte sich zwar auch vermeiden 
lassen, indem Papillon vor jedem Zugriff, jede Referenz auf ihre 
Gltigkeit hin berprfen wrde, aber so ein Vorgehen wre der 
Performance extrem abtrglich.


Allgemeines:
------------

Syntax der Beschreibung:

 back = Command( param1, param2,... [paramx] )
 
 back ist hier der Rckgabewert, die eckigen Klammern bei paramx 
 deuten an, dass der entsprechende Parameter nicht notwendig 
 vorhanden sein muss.

Folgende Datentypen werden verwendet:

 doc: Referenz auf ein Dokument. Achtun! Damit ist nicht der Name des 
 Dokumentes gemeint, sondern nur eine Papillon-interne Referenz. Immer 
 dann, wenn man an Papillon ein Dokument bergeben soll, kann man 
 entweder den Dateinamen des Dokumentes oder eine Referenz (wenn 
 sinnvoll!) verwenden.

 file: Dateiname eines Dokumentes.
 
 bitmap: Referenz auf eine PBITMAP-Struktur wie in der NVDI5-Dokumentation beschrieben.


Wenn ein interner schwerer Fehler auftritt, dann liefert Papillon denn 
Fehlercode "GSACK_ERROR" zurck. Die Ursache eines solchen Fehlers 
istist bei jedem Befehl vermerkt.


Aufbau einer Referenz:

Um anderen Applikationen direkten Zugriff auf Daten zu geben, liefert Papillon oft eine
Referenz zurck. Eine Referenz ist nichts anderes als ein Pointer auf ein Objekt.
Da bei GemScript immer ein String zurckgegeben wird, ist die Adresse des Objektes
in diesen String hineinkodiert: Zuerst folgen als Kennung die drei Buchstaben "APT"
und anschlieend die Adresse des Objektes als Hexwert, der mit der C-Funktion
"strtoul" gelesen werden kann.
ArtWorx verwendet dasselbe Verfahren.



GemScript-Standardkommandos:
----------------------------


 Close([doc1], [doc2], ..., [docn] )

Schliet die Dokumente doc1 bis docn. Wird kein Parameter bergeben, 
so wird entweder das oberste Dokumentfenster geschlossen, oder - wenn 
kein Dokumentfenster offen ist - das oberste Fenster.
Rckgabewert: keiner.
mglicher Fehler: keiner.


 Open( [doc1], [doc2], ..[docn] )

Wird kein Parameter bergeben, so wird ein Fileselektor angezeigt, 
ansonsten wird versucht die Dokumente doc1 bis docn zu ffnen. Ist 
eines der Dokumente schon geffnet, so wird das entsprechende Fenster 
getopped.
Rckgabewert: keiner.
Mglicher Fehler: Dokument kann nicht geffnet werden, sei es
aus Speichermangel oder wegen einer fehlerhaften Datei, oder das 
Dokument kann von Papillon nicht geffnet werden.


 Copy( [doc] )

Kopiert den selektierten Block des Dokumentes oder des obersten 
Fensters auf das Klemmbrett.
Rckgabewert: keiner.
mglicher Fehler: keiner.


 Cut( [doc] )

Schneidet den selektierten Block des Dokumentes doc oder des 
obersten Fensters aus und legt sie auf das Klemmbrett.
Rckgabewert: keiner.
mglicher Fehler: keiner.


 Delete( [doc] )

Lscht den selektierten Block des Dokumentes doc oder des obersten 
Fensters.
Rckgabewert: keiner.
mglicher Fehler: keiner.


 file = GetFront()

Gibt das oberste Dokumentfenster zurck
Rckgabewert: Name des obersten Dokumentenfensters.
mglicher Fehler: keiner.


 doc = New( [breite], [hoehe], [farbtiefe])

Erzeugt ein neues Dokument der Breite <breite> und Hhe <hoehe> (in 
Pixeln) mit der Farbtiefe <farbtiefe> (in Planes).
Wird die Farbtiefe nicht angegeben, so wird ein Dokument in der Farbtiefe 
des Bildschirms angelegt.
Wird die Hhe bzw. die Breite nicht spezifiziert, so wird ein Bild mit den 
AUsmaen 640x480 angelegt.
Rckgabewert: Referenz auf das Dokument im Erfolgsfall, bzw. nichts.
mglicher Fehler: keiner.


 Paste( [doc] )

Fgt in das Dokument doc bzw. ins oberste Dokument den Inhalt des 
Klemmbretts ein.
Rckgabewert: keiner.
mglicher Fehler: keiner.


 Print( [doc1], [doc2], ..., [docn] )

Druckt entweder das oberste Dokument oder alle bergebenen aus.
Rckgabewert: keiner.
mglicher Fehler: keiner.


 Quit()

Beendet Papillon.
Rckgabewert: keiner.
mglicher Fehler: keiner.


 Save( [doc1], [doc2], ..., [docn] )

Speichert entweder das oberste oder alle bergebenen Dokumenter ab.
Rckgabewert: keiner.
mglicher Fehler: keiner.


 SaveAs( neuerName, [doc] )

Speichert entweder das oberste Fenster unter dem Namen "neuerName" 
ab, oder das bergebene. Dabei wird auch ein Formatwandlung 
vorgenommen, so wird z.B "Test.IMG" als GEM-Image und "Test.bmp" als
Windows Bitmap abgespeichert.
Rckgabewert: keiner.
mglicher Fehler: Wenn kein Dokument existiert, was abgespeichert 
werden kann.


 SelectAll( [doc] )

Alles im obersten bzw. bergebenen Dokument selektieren.
Rckgabewert: keiner.
mglicher Fehler: keiner.


 ToFront( doc )

Das Dokument doc wird nach oben gebracht.
Rckgabewert: keiner.
mglicher Fehler: Der Parameter doc existiert nicht.


 Undo( [doc] )

Im obersten bzw. bergebenen Dokument wird die letzt Aktion 
rckgngig gemacht.


 ApplGetLongName()
 
Liefert "Papillon" zurck.


Papillon-eigene GemScript Kommandos:
-----------------------------------


 Convert( source, dest, [max_planes])

Konvertiert die Datei <source> in die Datei <dest>. Das gewnschte 
Zielformat wird an der Endung erkannt.
<max_planes> gibt die maximale Anzahl der Planes im Zielbild an.
Fehlt <max_planes>, so wird ein Wert von 32 angenommen.

Rckgabewert: keiner.
mglicher Fehler: keiner.


 SetPixel( doc, x, y,  r, [g], [b])

Setzt in der Datei doc den Pixel an der Stelle(x,y) auf die angegeben Farbe.
Ist das Dokument ein True-Colorbild, so muss man 3 Werte bergeben: <r>, <g> und <b>.
Diese geben jeweils den Rot-, Grn-, und Blau-Wert (0-255) an.
Bei einem Bild mit 2-256 Farben gibt <r> den Index in der Farbpalette des Bildes an.
<g> und <b> werden in diesem Fall nicht gebraucht.

Rckgabewert: keiner.
mglicher Fehler: keiner.


 NewBlock( x, y,  w, h, contract, [doc])

Setzt entweder im obersten Fenster oder im Fenster <doc> einen Block
mit den Koordinaten (x,y) und der Breite/Hhe (w,h). Ist <contract> 
gleich 0, so wird ein normaler Block erzeugt. Ist <contract> gleich 1, so
wird der Block um das Bild zusammengezogen. Also genauso, als ob man in Papillon
beim Block-Aufziehen die Alternate-Taste gedrckt hlt.

Rckgabewert: keiner.
mglicher Fehler: Zuwenige Parameter.


 doc = PasteNew()

Kopiert den aktuellen Block in ein neues Dokument

Rckgabewert: Referenz auf das neue Dokument.
mglicher Fehler: keine.



 BlockAction( doc, action_type, [p1], [p2], ... )
 
Fhrt mit dem gerade aktuellen Block im Dokument <doc> eine bestimmte
Aktion aus. <action_type> gibt dabei die Art der Aktion an und die 
restlichen Parameter <p1> .. <pn> bestimmen die dazu ntigen Parameter.
Mgliche Aktionen:
1:	Invertieren.
2: Spiegeln, <p1> = 1 spiegelt horizontal und 2 spiegelt vertikal.
3: Legt den Untergrund in den Block.
4: Rotieren, <p1> gibt den Winkel in Grad an.
5: Skalieren: <p1> gibt die Breite und <p2> die Hhe in Pixeln an.
6: Vervielfltigen: <p1> bezeichnet den X-Offset, <p2> den Y-Offset und 
<p3> die Anzahl der Kopien.
7: Ausdnnen.
8: Stark ausdnnen.
9: Verdicken.
10: Stark verdicken.
11: Maske verdicken.
12: Abrunden.


	rect = GetBlockExtent( [doc] );

Liefert die Ausmae des gerade im Dokument <doc> bzw. im oberstem Fenster
selektieren Blockes zurck. 

Rckgabewert: rect[0], rect[1]: Koordinaten der linken oberen Ecke des Blockes, 
              rect[2], rect[3]: Hhe und Breite, jeweils in Pixeln.
mglicher Fehler: Die Ausmae des Blockes konnten nicht ermittelt werden, z.B. weil
gar kein Block existiert.



 doc = OpenBitmap( bitmap )
 
ffnet ein neues Fenster mit der Bitmap <bitmap> als Inhalt. <bitmap> ist eine Referenz
auf eine PBITMAP-Struktur (siehe Dokumentation zu NVDI5). Erlaubt sind nur Farbtiefen von
1, 8 und 32 Bit. Papillon fertig von dieser Bitmap eine Kopie an und arbeitet auschlielich mit dieser
Kopie. Fr das Freigeben ist der Erzeuger dieser Bitmap verantwortlich.

Rckgabewert: Referenz auf dieses neue Dokument.
mglicher Fehler: Das neue Dokument lie sich nicht erzeugen.


 SaveBitmap( bitmap, name )
 
Speichert die Bitmap <bitmap> unter dem Namen <name> ab. Das Format wird aus der Extension des Namens
ermittelt. <bitmap> ist eine Referenz auf ein PBITMAP-Struktur.



 bitmap = GetBitmap( [doc] )
 
Gibt eine Referenz auf die Bitmap des Dokumentes [doc] oder des obersten Dokumentes zurck.
 <bitmap> ist eine Referenz auf ein PBITMAP-Struktur.

Rckgabewert: Referenz auf eine Bitmap.
mglicher Fehler: Dokument existiert nicht, bzw. es gibt kein oberstes Dokument.+



 bitmap = LoadBitmap( file )
 
Ldt die Datei <file> ohne ein Fenster zu ffnen. Als Ergbnis wir die daraus resultierende Bitmap zurckgegeben.
Rckgabewert: Referenz auf eine Bitmap.
mglicher Fehler: Das Dateiformat ist Papillon unbekannt oder der Speicher ist zu knapp oder die Datei kann nicht
gelesen werden.

 
 FreeBitmap( <bitmap> )
Gibt eine mit LoadBitmap erzeugte Bitmap wieder frei. Wird das vergessen, so bleibt der Speicher
fr diese Bitmap bis zum Ende von Papillon belegt.
Rckgabewert: keiner
mglicher Fehler: keiner.
