/* $Revision Header *** Header built automatically - do not edit! ***********
 *
 *	(C) Copyright 1991 by Torsten Jürgeleit
 *
 *	Name .....: texts.h
 *	Created ..: Thursday 19-Dec-91 16:46:58
 *	Revision .: 0
 *
 *	Date        Author                 Comment
 *	=========   ====================   ====================
 *	21-Mar-92   Torsten Jürgeleit      flags for converting numbers
 *	19-Dec-91   Torsten Jürgeleit      Created this file!
 ****************************************************************************
 *
 *	Defines, structures, prototypes and pragmas for text output
 *	functions
 *
 * $Revision Header ********************************************************/

#ifndef	ISUP_TEXTS_H
#define	ISUP_TEXTS_H

	/* Defines */

#define TEXT_DATA_TYPE_TEXT			1
#define TEXT_DATA_TYPE_NUM_UNSIGNED_DEC		2
#define TEXT_DATA_TYPE_NUM_SIGNED_DEC		3
#define TEXT_DATA_TYPE_NUM_HEX			4
#define TEXT_DATA_TYPE_NUM_BIN			5

#define MAX_TEXT_DATA_TYPE			TEXT_DATA_TYPE_NUM_BIN

#define TEXT_DATA_FLAG_BOLD			(1 << 0)
#define TEXT_DATA_FLAG_ITALIC			(1 << 1)
#define TEXT_DATA_FLAG_UNDERLINED		(1 << 2)
#define TEXT_DATA_FLAG_ABSOLUTE_POS		(1 << 3)	/* absolute text pos given - don't add border offsets */
#define TEXT_DATA_FLAG_CENTER			(1 << 4)	/* center text with in window width */
#define TEXT_DATA_FLAG_PLACE_LEFT		(1 << 5)	/* place text left of given left edge */
#define TEXT_DATA_FLAG_COLOR2			(1 << 6)	/* use 2nd text render pen */
#define TEXT_DATA_FLAG_COMPLEMENT		(1 << 7)	/* use complement of front and back pen */
#define TEXT_DATA_FLAG_BACK_FILL		(1 << 8)	/* use draw mode JAM2 to fill text background with ri_BackPen */
#define TEXT_DATA_FLAG_NO_PRINT			(1 << 9)	/* don't print text - only calc width */
#define TEXT_DATA_FLAG_NUM_IDENTIFIER		(1 << 10)	/* convert number with normal (assmebler style) leading identifier `$' or `%' */
#define TEXT_DATA_FLAG_NUM_C_STYLE		(1 << 11)	/* use C style identifier `0x' for hex numbers */
#define TEXT_DATA_FLAG_NUM_LEADING_ZEROES	(1 << 12)	/* convert number includeing leading zeroes */
#define TEXT_DATA_FLAG_NUM_UPPER_CASE		(1 << 13)	/* use upper case characters for hex number */

#define CONVERT_FLAG_IDENTIFIER			(1 << 0)	/* convert number with normal (assmebler style) leading identifier `$' or `%' */
#define CONVERT_FLAG_C_STYLE			(1 << 1)	/* use C style identifier `0x' for hex numbers */
#define CONVERT_FLAG_LEADING_ZEROES		(1 << 2)	/* convert number includeing leading zeroes */
#define CONVERT_FLAG_UPPER_CASE			(1 << 3)	/* use upper case characters for hex number */

	/* Defines for internal use only */

#define INTERNAL_TEXT_DATA_FLAG_COUNT	(1 << 15)	/* needed for print_count_text() */

#define MAX_NUM_BUFFER_SIZE	34
#define MAX_DEC_NUM_DIGITS	10
#define MAX_HEX_NUM_DIGITS	8
#define MAX_BIN_NUM_DIGITS	32

	/* Structures */

struct TextData {
	USHORT	td_Type;
	USHORT	td_Flags;
	SHORT	td_LeftEdge;
	SHORT	td_TopEdge;
	BYTE	*td_Text;
	struct TextAttr  *td_TextAttr;
};
	/* Global prototypes */

VOID   display_texts(struct RenderInfo  *ri, struct Window  *win,
			 struct TextData  *td, SHORT hoffset, SHORT voffset,
						BYTE **language_text_array);
USHORT print_text(struct RenderInfo  *ri, struct Window  *win, BYTE *text,
	       USHORT left_edge, USHORT top_edge, USHORT type, USHORT flags,
					       struct TextAttr  *text_attr);
USHORT convert_unsigned_dec(ULONG num, BYTE *buffer, USHORT flags);
USHORT convert_signed_dec(LONG num, BYTE *buffer, USHORT flags);
USHORT convert_hex(ULONG num, BYTE *buffer, USHORT flags);
USHORT convert_bin(ULONG num, BYTE *buffer, USHORT flags);

	/* Global pragmas (Aztec C v5.2a) */

#pragma intfunc(display_texts(a0,a1,a2,d0,d1,a3))
#pragma intfunc(print_text(a0,a1,a2,d0,d1,d2,d3,a3))
#pragma intfunc(convert_unsigned_dec(d0,a0,d1))
#pragma intfunc(convert_signed_dec(d0,a0,d1))
#pragma intfunc(convert_hex(d0,a0,d1))
#pragma intfunc(convert_bin(d0,a0,d1))

#endif   /* ISUP_TEXTS_H */
