/*****************************************************************************
;  :Module.		WHDLoadGCI.h
;  :Author.		Bert Jahn
;  :EMail.		jah@fh-zwickau.de
;  :Address.	Franz-Liszt-Straße 16, Rudolstadt, 07404, Germany
;  :Version.	$Id: WHDloadGCI.h 0.4 2000/04/16 16:48:13 jah Exp jah $
;  :History.	18.07.98 started
;  :Copyright.	All Rights Reserved
;  :Language.	C
;  :Tabsize.	4
;  :Translator.	SAS 6.58
****************************************************************************/

#include <libraries/mui.h>
#include <mui/BetterString_mcc.h>

/****************************************************************************/
/*	defines																	*/
/****************************************************************************/

#ifndef MAKE_ID
#define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
#endif

enum {
	MEN_PROJECT=1,MEN_OPEN,MEN_ABOUT,MEN_ABOUTMUI,MEN_QUIT,
	MAIN_MORECPU,MAIN_MORECUST,MAIN_MOREMEM,MAIN_MOREEMEM,MAIN_MORESLAVE,MAIN_MOREINFO
};

/****************************************************************************/
/*	mui macros																*/
/****************************************************************************/

/*
 *  Child if true
 */
#define ChildIf(rule) rule ? Child : TAG_IGNORE

/*
 *  SimpleButton if true
 */
#define SimpleButtonIf(rule,text) rule ? SimpleButton(text) : NULL

/*
 *  create a label and a register
 *  label	- label of the gadget (char*)
 *  help	- text for bubble help (char*)
 *  value	- value to display
 */
#define Register(label,help,value)\
	Child, Label2(label),\
	Child, TextObject,\
		StringFrame,\
		MUIA_ShortHelp, help,\
		MUIA_Text_Contents, val2hexr(value),\
End

/*
 *  create a label and a register with 64bit value
 *  label	- label of the gadget (char*)
 *  help	- text for bubble help (char*)
 *  value1,2 - value to display
 */
#define Register64(label,help,value1,value2)\
	Child, Label2(label),\
	Child, TextObject,\
		StringFrame,\
		MUIA_ShortHelp, help,\
		MUIA_Text_Contents, val2hex64r(value1,value2),\
End

/*
 *  create a label and a changeable register
 *  label	- label of the gadget (char*)
 *  object	- variable of object to create (APTR)
 *  help	- text for bubble help (char*)
 *  length	- width of the value in chars (int)
 */
#define RegisterC(object,label,help,value,length)\
	Child, Label2(label),\
	Child, object = BetterStringObject,\
		StringFrame,\
		MUIA_String_Accept , StringHexAccept,\
		MUIA_String_MaxLen , length+2,\
		MUIA_String_Format , MUIV_String_Format_Right,\
		MUIA_ShortHelp, help,\
		MUIA_String_Contents, val2hex(value),\
End

#define StringHex2\
	BetterStringObject,\
	StringFrame,\
	MUIA_String_Accept , StringHexAccept,\
	MUIA_String_MaxLen , 4,\
	MUIA_String_Format , MUIV_String_Format_Right,\
End
#define StringHex4\
	BetterStringObject,\
	StringFrame,\
	MUIA_String_Accept , StringHexAccept,\
	MUIA_String_MaxLen , 6,\
	MUIA_String_Format , MUIV_String_Format_Right,\
End
#define StringHex8\
	BetterStringObject,\
	StringFrame,\
	MUIA_String_Accept , StringHexAccept,\
	MUIA_String_MaxLen , 10,\
	MUIA_String_Format , MUIV_String_Format_Right,\
End
#define StringHex16\
	BetterStringObject,\
	StringFrame,\
	MUIA_String_Accept , StringHexAccept,\
	MUIA_String_MaxLen , 18,\
	MUIA_String_Format , MUIV_String_Format_Right,\
End

/****************************************************************************/
/*	function prototypes														*/
/****************************************************************************/

/* misc.c */
STRPTR	val2hexr	(ULONG value);
STRPTR	val2hex64r	(ULONG value1, ULONG value2);

STRPTR	val2hex		(ULONG value);
void	sethex4		(APTR gad, UWORD val);
void	sethex8		(APTR gad, ULONG val);
void	sethex1t	(APTR gad, UBYTE val);
void	sethex4t	(APTR gad, UWORD val);
void	sethex8t	(APTR gad, ULONG val);

/****************************************************************************/

