/*
 *  FM_ARexx_React.h
 *  $VER: V1.2, 5.2.2002
 *  Coded by Edgar Schwan
 */

#ifndef FM_AREXX_REACT_H
#define FM_AREXX_REACT_H

#include <exec/ports.h>
#include <rexx/storage.h>
#include <classes/arexx.h>

#include "FlashMandel.h"
#include "compilerspecific.h"

/* Prototypes */
BOOL InitARexx(RESOURCEFILE ResPtr);
void FreeARexx(RESOURCEFILE ResPtr);
ULONG HandleARexxEvents(struct ILBMInfo *Ilbm, LONG *Error);

/* Defines */

#define MIN_COLOR_REMAP 1
#define MAX_COLOR_REMAP 8

/* Structures */
struct FM_ARexxEvent {
	struct Node	FMRXC_Node;
	ULONG			FMRXC_Command;
	APTR			FMRXC_Args;
	};

/* Command-Structures */
#if 1
struct FM_RxCmd_TEST {
	BOOL		FMRC_TEST_Switch;
	STRPTR	FMRC_TEST_String;
	LONG		FMRC_TEST_Number;
	STRPTR	FMRC_TEST_NeedStr;
	STRPTR	FMRC_TEST_Follow;
	};
#endif

struct FM_RxCmd_QUIT {
	BOOL		FMRC_QUIT_Force;
	BOOL		FMRC_QUIT_Fast;
	};

struct FM_RxCmd_LOADPIC {
	STRPTR	FMRC_LOADPIC_Path;
	BOOL 		FMRC_LOADPIC_Fast;
	};

struct FM_RxCmd_SET_SCREENATTRS {
	ULONG		FMRC_SETSCR_ModeID;
	WORD 		FMRC_SETSCR_Width;
	WORD 		FMRC_SETSCR_Height;
	WORD 		FMRC_SETSCR_Depth;
	WORD 		FMRC_SETSCR_OScanType;
	BOOL		FMRC_SETSCR_Fast;
	};

struct FM_RxCmd_SET_FONT {
	STRPTR	FMRC_SETFNT_FontName;
	UWORD		FMRC_SETFNT_Size;
	UWORD		FMRC_SETFNT_Style;
	BOOL 		FMRC_SETFNT_Fast;
	};

#if 0
struct FM_RxCmd_ZOOM {
	LONG 		FMRC_ZOOM_Left;
	LONG 		FMRC_ZOOM_Top;
	LONG 		FMRC_ZOOM_Width;
	LONG 		FMRC_ZOOM_Height;
	LONG 		FMRC_ZOOM_Repeats;
	LONG 		FMRC_ZOOM_Steps;
	BOOL 		FMRC_ZOOM_Fast;
	};

struct FM_RxCmd_PRINT {
	BOOL 		FMRC_PRINT_Force;
	};
#endif

#endif /* FM_AREXX_REACT_H */
