/** Execute.h : some useful constants used in various place
*** Written by T.Pierron, 30 aug 2001
**/

#ifndef	EXECUTE_H
#define	EXECUTE_H


#define	EXE_VERSION			"1.0"
#define	EXE_DATE				"30.8.2001"
#define	APPNAME				"Execute"
#define	MAX_COM				256
#define	MAX_BUF				1024
#define	NIL_MARK				"  - <>NIL:"
#define	TAB_KEY				0x42
#define	NM_INFO_INDEX		6
#define	NM_OUT_INDEX		7
#define	DEF_CONFIG			"S:Shell-History"
#define	TEMPLATE				"GEOMETRY/K,OUTWIN/K,AUTOSAVE/S,HISTORY/K,CWD/K," \
									"NOINFO/S,NOOUTPUT/S,GUI/S,CMD/F"

/* Code returned when user release string gadget */
#define	EXECUTE_COM			'e'
#define	SAVE_PREFS			's'
#define	CANCEL_OP			'q'
#define	INSERT_PATH			'l'
#define	EXPAND_PAT			'm'
#define	EXPAND_FILE			'*'
#define	EXPAND_DIR			'p'
#define	COMPLETE_FILE		10
#define	COMPLETE_DIR		11
#define	COMPLETE_OBJ		12

/* If you get bored with long expressions... */
#define	MENUITEM(M,I,S)	(SHIFTMENU(M)+SHIFTITEM(I)+SHIFTSUB(S))
#define	SHIFTKEYS			(IEQUALIFIER_LSHIFT | IEQUALIFIER_RSHIFT)
#define	CTRLKEYS				(IEQUALIFIER_CONTROL)
#define	MenuItem(mi)		((struct MenuItem *)ItemAddress(menu,mi))
#define	sti(gad)				((struct StringInfo *)gad->SpecialInfo)

#define	ErrMsg(num)			GadTxt[(num)-MSG_BADOS+5]
extern STRPTR GadTxt[];
extern UWORD  OutFlags, InfoFlags;

UBYTE setup           ( void );
void  create_gadgets  ( void );
void  cleanup         ( WORD );
void  setup_appwindow ( BOOL );

STRPTR GetPath( STRPTR, UWORD );
STRPTR Trim   ( STRPTR );

typedef struct {
	WORD  Usage, Review;
	UBYTE Buffer[ MAX_BUF ];
}  ReviewBuf;

/*** Processor target type ***/
#if   defined (mc68060)
#define ARCH  "mc68060"
#elif defined (mc68040)
#define ARCH  "mc68040"
#elif defined (mc68030)
#define ARCH  "mc68030"
#elif defined (mc68020)
#define ARCH  "mc68020"
#else
#define ARCH  "mc68000"
#endif

#endif
