/* ___________________________________________________________________________
** |*************************************************************************|
** |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
** |*| Set TAB to 4 for best readable file layout.  |*|  C++ MaxonDev 4.0  |*|
** |*|______________________________________________|*|____________________|*|
** |*************************************************************************|
** |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
** |*|               |*|  $Id: AlertDemo.CPP (18.11.00)                    |*|
** |*| ###### ###### |*|  RhoSigma Source based on NDK 3.1 Includes 40.15  |*|
** |*| ##  ## ##   # |*| _________________________________________________ |*|
** |*| ##  ##  ##    |*|                                                   |*|
** |*| ######   ##   |*|  Demo to show use of DATEXT-Macro (settings.h)    |*|
** |*| ##      ##    |*|                                                   |*|
** |*| ##     ##   # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
** |*| ##     ###### |*|  Copyright © 1998-2000 RhoSigma, Roland Heyder    |*|
** |*|               |*|  All Rights Reserved.                             |*|
** |*|_______________|*|___________________________________________________|*|
** |*************************************************************************|
** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/

/*
** HINWEIS:	Sollten Sie nur im Besitz eines ANSI-C-Compilers sein, oder wenn
**			ihr C++ Compiler nicht die Möglichkeit bietet, zwischenzeitlich
**			in den ANSI-C Modus zu schalten, dann müssen Sie sich behelfen,
**			indem Sie einfach die nicht benötigte Demo-Funktion, sowie deren
**			Aufruf in der main-Funktion, in einen Kommentar einschließen.
*/

/* Includes */
#include <exec/types.h>
#include <wbstartup.h>
#include <rhosigma/settings.h>

/* Prototypes & Pragmas */
#include <pragma/exec_lib.h>
#include <pragma/intuition_lib.h>
void DemoC();
void DemoCPP();

struct Library *IntuitionBase=NULL;

// Version-String
TEXT	vID[]	= "$VER: AlertDemoCPP 1.0 (18.11.00) compiled on "__DATE__\
															" at "__TIME__"\r\n";

void main()
{
	IntuitionBase = OpenLibrary("intuition.library",33);

	DemoC();		/* Anwendungsbeispiel für ANSI-C */
	DemoCPP();		/* Anwendungsbeispiel für C++	 */

	CloseLibrary(IntuitionBase);
	return;
}

#pragma -		/* bei MaxonC++ runterschalten in ANSI-C Modus */
void DemoC()
{
	STRPTR teil1, teil2, teil3, teil4, param1;	/* Zeiger deklarieren */
	STRPTR teil5, teil6, teil7, teil8, param2;

	DATEXT(teil1,100,12,linke Seite,FALSE);		/* kein END-Flag, absolute	*/
	DATEXT(teil2,444,12,rechte Seite,FALSE);	/* X-Koordinaten			*/
	DATEXT(teil3,DATPOS_C,22,zentriert,FALSE);	/* kein END-Flag, zentriert	*/
	DATEXT(teil4,DATPOS_C,32,Ende,TRUE);		/* END-Flag, zentriert		*/

	param1=DAJOIN(4,teil1,teil2,teil3,teil4);	/* Teilstrings zusammenfügen */
	DisplayAlert(NULL,param1,40L);				/* und Alert ausführen       */
	DAFREE(param1);								/* Parameterstring freigeben */

	DATEXT(teil5,DATPOS_L,12,linksbündig,FALSE);
	DATEXT(teil6,DATPOS_C,12,zentriert,FALSE);
	DATEXT(teil7,DATPOS_R,12,rechtsbündig,FALSE);
	DATEXT(teil8,200,22,absolute X-Pos 200 v.l.,TRUE);

	param2=DAJOIN(4,teil5,teil6,teil7,teil8);
	DisplayAlert(NULL,param2,30L);
	DAFREE(param2);

	return;
}

#pragma +		/* wieder in C++ Modus hochschalten */
void DemoCPP()
{
	/* Da es in C++ erlaubt ist Deklarationen und Anweisungen */
	/* zu mischen, kann man es in C++ auch wie folgt machen.  */

	STRPTR DATEXT(teil1,100,12,linke Seite,FALSE);		/* kein END-Flag, absolute	*/
	STRPTR DATEXT(teil2,444,12,rechte Seite,FALSE);		/* X-Koordinaten			*/
	STRPTR DATEXT(teil3,DATPOS_C,22,zentriert,FALSE);	/* kein END-Flag, zentriert	*/
	STRPTR DATEXT(teil4,DATPOS_C,32,Ende,TRUE);			/* END-Flag, zentriert		*/

	STRPTR param1=DAJOIN(4,teil1,teil2,teil3,teil4);	/* Teilstrings zusammenfügen */
	DisplayAlert(NULL,param1,40L);						/* und Alert ausführen       */
	DAFREE(param1);										/* Parameterstring freigeben */

	STRPTR DATEXT(teil5,DATPOS_L,12,linksbündig,FALSE);
	STRPTR DATEXT(teil6,DATPOS_C,12,zentriert,FALSE);
	STRPTR DATEXT(teil7,DATPOS_R,12,rechtsbündig,FALSE);
	STRPTR DATEXT(teil8,200,22,absolute X-Pos 200 v.l.,TRUE);

	STRPTR param2=DAJOIN(4,teil5,teil6,teil7,teil8);
	DisplayAlert(NULL,param2,30L);
	DAFREE(param2);

	return;
}

