/* $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
 *	=========   ====================   ====================
 *	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 INTERNAL_TEXT_DATA_FLAG_COUNT	(1 << 15)	/* needed for print_count_text() */

	/* Defines for internal use only */

#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 convert_signed_dec(LONG num, BYTE *buffer);
USHORT convert_hex(ULONG num, BYTE *buffer);
USHORT convert_bin(ULONG num, BYTE *buffer);

	/* Global pragmas */

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

#endif   /* ISUP_TEXTS_H */
