#ifndef MTE_H
#define MTE_H

#include "MsgType.h"
#include "sysdep.h"
#include "rap.h"

typedef struct MteGR_str *MteGR;

#ifdef __STDC__
typedef enum MteFromWhere_en {MTE_FROM_COMMAND_LINE,MTE_FROM_APPLICATION} MteFromWhere;
typedef NORET (*MteSaveFunc)(VOIDP,AlMsgType);
typedef NORET (*MteQuitFunc)(VOIDP,AlMsgType);
#else
typedef int MteFromWhere;
#define MTE_FROM_COMMAND_LINE 0
#define MTE_FROM_APPLICATION  1
typedef NORET (*MteSaveFunc)();
typedef NORET (*MteQuitFunc)();
#endif

#ifdef __STDC__
 MteGR Mte_create(MteFromWhere,
			AlMsgType,
			MteSaveFunc,
			MteQuitFunc,
			int,
			char**,
			char*,
			int,
			VOIDP);
extern NORET Mte_destroy(MteGR);
extern NORET Mte_realize(MteGR);
extern AlMsgType Mte_get_message_type(MteGR);
extern int Mte_get_modified(MteGR);
extern VOIDP Mte_get_client_data(MteGR);
#else
extern MteGR Mte_create();
extern NORET Mte_destroy();
extern NORET Mte_realize();
extern AlMsgType Mte_get_message_type();
extern int Mte_get_modified();
extern VOIDP Mte_get_client_data();
#endif 

#endif
