
% Neuerungen stehen am Ende!

\documentstyle[11pt,german,din_a4]{article}

\newfont{\wasy}{wasy10 scaled 1000}

\def\st{ATARI~ST/TT}
\def\xgem{{\sc XGEM}}

\advance\topmargin by -55pt
%\advance\textheight by 1.4cm
\parindent0ex
\parskip1.8ex

\title{\xgem\\{\normalsize Version 1.69}}
\author{J�rgen Kriege}
\date{23.\ Oktober 1991}

\begin{document}

\maketitle\thispagestyle{empty}\newpage

\xgem\ ist ein Objektfile f�r TURBO~C~2.0/PURE~C und alle
DRI-kompatiblen Linker f�r den \st\ und bietet folgendes:

\begin{itemize}
	\item freibewegliche Dialoge mit 'Durchblendem�glichkeit'
	\item Buttonanwahl �ber Tastatur
	\item Checkboxen (mit Tastaturanwahl)
	\item runde Radiobuttons (mit Tastaturanwahl)
	\item 'form\_xalert'-Aufruf entsprechend 'form\_alert'-Aufruf nur eben
  		  auch mit Tastaturbuttons und optional mit einem eigenen Image
	\item l�uft auf allen TOS-Versionen und in allen Aufl�sungen
	\item Variablen- und Parameterkompatibel mit 'form\_dial', 'objc\_draw',
		  'form\_do' \& 'form\_alert'
\end{itemize}

\xgem\ ist bei nicht kommerzieller Verwendung Freeware, entwickelt von:

J�rgen Kriege \\
Gr�belweg 13 \\
W-4500 Osnabr�ck

{\wasy \symbol{7}}\ \ (0\,541) 59\,74\,19 \\
JKRIEGE@DOSUNI1.BITNET \\
JK@OS.MAUS.DE \\
0541597419-0001.BTX

\xgem\ darf von jedermann kopiert und zu privaten Zwecken kostenlos
genutzt werden. Kommerzielle Softwarehersteller m�ssen einen Beitrag
zahlen -- Private d�rfen.

In der Applikation ist ein Hinweis auf die Verwendung meiner
\xgem-Routinen anzubringen. Der Vertrieb �ber Public-Domain-Disketten
etc.\ ist untersagt.

Wer will, d.h.\ wer \xgem\ regelm��ig seinen privaten Programmen
zulinkt, wird gebeten mir als R�ckmeldung eine Nachricht zukommen
zu lassen.
Hieraus k�nnte ich ersehen, wie stark der Bedarf an \xgem\ und deren
Weiterentwicklung ist. Konditionen f�r kommerzielle Programme m�ssen
individuell ausgehandelt werden.

Da die Anleitung haupts�chlich aus der beigef�gten Demo besteht,
sind alle Dateien weiterzukopieren, d.h.:

\begin{tabular}{ll}
    XGEM.TEX	& dieser Text \\
    XGEM.DVI	& (dito) \\
    XTEST.C		& die eigentliche Demo \\
    XTEST.APP	& (dito) \\
    XTEST.H		& Ressourcedatei dazu \\
    XTEST.RSC	& (dito) \\
    XTEST.RSD	& (dito) \\
    XGEMPRO.H	& \xgem\ - Funktionsprototypen \\
    XGEMLIB.O	& \xgem\ - Library im TC-Format \\
    (XGEM\_DRI.O)& \xgem\ - Library im DRI-Format \\
    			& nur auf Anforderung erh�ltlich \\
    XTEST.PRJ	& Projektdatei zur Demo \\
    EXTOBFIX.PRG& Zusatzprogramm zum Resource-Construction-Set \\
				& INTERFACE der Firma SHIFT \\
    BITBLK.PRG	& wandelt 32000er Bilder in ein RSC
\end{tabular}

Kurzanleitung:

\begin{enumerate}
	\item F�r jeden erweiteren Dialog ein 'rsrc\_xgaddr' statt des �blichen \linebreak
    	  'rsrc\_gaddr' durchf�hren. \\
	      Parameter und R�ckgabewerte wie 'rsrc\_gaddr'.

	\item Untergrund retten mit 'form\_xdial(FMD\_START, ...)'

	\item Dialog zeichnen mit 'objc\_xdraw'. \\
		  Parameter und R�ckgabewerte wie 'objc\_draw'.

	\item Dialog abfragen mit 'form\_xdo'.\\
    	  Parameter und R�ckgabewerte wie 'form\_do'.

	\item Objekte mit 'objc\_xchange' �ndern, ...

	\item Untergrund restaurieren mit 'form\_dial(FMD\_FINISH, ...)'
\end{enumerate}

Weiterhin kann der alte 'form\_alert' durch ein 'form\_xalert'
ersetzt werden. Parameter und R�ckgabewerte im Prinzip wie �blich.
Neuheit: Es kann ein eigenes {\tt IMAGE} in den 'form\_xalert' eingesetzt
werden. Hierzu ist die Nummer des gew�nschten Image auf -1 zu setzten und
als zus�tzlicher dritter Parameter ein Zeiger auf ein Image {\tt (BITBLK $\ast$)}
anzugeben (siehe hierzu die Demo).
Es ist ein Programm beigef�gt ({\tt BITBLK.PRG}), das 32000er Bilder in
ein RSC-File verwandelt.

Wird vor dem Anklicken der Verschiebe-Ecke die \fbox{ALTERNATE}-Taste oder
die rechte Maustaste gedr�ckt, wird der Dialog bzw.\ der Form-Alert an der
aktuellen Position (optisch) gel�scht und es wird nur noch der Rahmen gezeichnet,
der dann wie �blich verschoben werden kann.
Dies hat den Vorteil, da� insbesondere Leute mit gro�en Dialogen und
kleinen Monitoren, mal eben kurz den Dialog ausblenden k�nnen um nachzusehen
was sich darunter befindet.

Damit die x-Routinen die neuen Objekte erkennen k�nnen, m�ssen diese im
oberen Wort des 'ob\_type' mit speziellen Werten versehen werden.
Mit welchen {\tt EXTENDED}-Werten die jeweiligen Objekte zu versehen sind,
entnehme man der Datei {\tt XGEMPRO.H} oder schaue einmal ins {\tt XTEST.RSC}.

Um die Versionsnummer von \xgem\ herauszubekommen, existiert in der Variablen
'cnf\_xgem' zu deklarieren als 'extern CONFIG\_XGEM cnf\_xgem' (Definition
in XGEMPRO.H) eine Zeichenkette in dem Eintrag 'cnf\_xgem.xgvers' der die
Version im Format "'x.xx"' angibt. Das Erstellungsdatum steht in 'cnf\_xgem.xgdate'.
Alternativ kann die Version bzw.\ SCCS-ID auch mit dem Toolprogramm
{\tt what.tos} abfragt werden.

Was noch (immer) nicht geht:

\begin{itemize}
	\item Das verschachtelte Aufrufen mehrerer Dialoge
\end{itemize}

Was noch drin ist:

\begin{itemize}

\item
Benutzereigne Flugobjekte hatten bislang bekanntlich den EXTENDED-Wert~8
und wurden von \xgem\ durchgestrichen (Eselsohr-Effekt). Ab sofort verhalten
sich Objekte mit dem Wert 9 genau so, werden aber nicht mehr durchgestrichen.

\item
Per EXTOBFIX ist das Austesten der Dialoge unter dem Resource-Construction-Set
INTERFACE der Firma SHIFT m�glich. Genaueres hierzu findet sich im Handbuch
zu INTERFACE.

\item
Konfigurieren von \xgem:

�berlicherweise 'fliegen' Dialoge und FormAlerts genau dann, wenn
ein EXTENDED-Objekt mit den Werten 8 oder 9 angeklickt wird. \xgem\ 
l��t sich aber auch so konfigurieren, da� beim Anklicken eines nicht
selektierbaren Objektes geflogen werden kann! Hierzu ist 'fly\_mode' in
der Variablen 'cnf\_xgem' zu setzen:

\begin{verbatim}
    extern CONFIG_XGEM cnf_xgem;    /* die Konfig-Struktur bekannt machen */

    cnf_xgem.fly_mode = 1;
\end{verbatim}

Abschalten l��t sich diese Option nat�rlich durch das Setzen des Wertes auf 0.

�ber das Setzen von 'wm\_redraw' in 'cnf\_xgem' l��t sich bei einem
'{\tt form\_xdial(FMD\_FINISH, ...)}' ein zwangsweises Updaten aller
Fenster erreichen. Dieses sollte man allerdings nur in 'Notf�llen' und
auch nur kurzzeitig einsetzen, da meist unn�tig viele Updates stattfinden.

Beide Variablen sind zu Programmstart auf Null gesetzt.

\item
F�r die HELP- und UNDO-Taste lassen sich spezielle Buttons einrichten,
die vom Benutzer definierte Funktionen aufrufen k�nnen. Werden keine
Funktionen auf die Buttons gelegt, verhalten sich diese wie ganz
normale Buttons.

\item
{\tt rsrc\_xgaddr} kann auf einen Dialog beliebig oft angewandt werden;
bislang war nur einer erlaubt.

\item
Bei EDIT-Feldern kann der ASCII-Wert eines Zeichens direkt eingegeben
werden. Hierzu INSERT dr�cken und anschlie�end den Wert (Angaben in
Zahlen von 0 bis 9), gefolgt von einem RETURN bzw.\ ENTER. Das RETURN/ENTER
entf�llt, wenn die Angabe dreistellig vorgenommen wird.

\end{itemize}

\end{document}
