/*
 * wimp.h
 *
 * [Generated from wimp, 25 September 1996]
 */

#if !defined(__CC_NORCROFT) || !defined(__arm)
  #error You must use the Norcroft ARM Compiler for Sapphire programs
#endif

#pragma include_only_once
#pragma force_top_level

#ifndef __wimp_h
#define __wimp_h

#ifndef __sapphire_h
  #include "sapphire.h"
#endif

/*----- Overview ----------------------------------------------------------*
 *
 * Functions provided:
 *
 *  wimp_init
 *  wimp_taskHandle
 *  wimp_version
 *  wimp_strWidth
 */

/* --- wimp_init --- *
 *
 * On entry:	R0 == pointer to application name
 *
 * On exit:	--
 *
 * Use:		Initialises the WindowManager, and stores away useful
 *		snippets of information, like the task handle we've been
 *		given.  It also registers an exit handler so that the Wimp
 *		gets closed down.
 */

extern routine wimp_init;

/* --- wimp_taskHandle --- *
 *
 * On entry:	--
 *
 * On exit:	R0 == the application's task handle
 *
 * Use:		Returns the application's task handle.
 */

extern routine wimp_taskHandle;

/* --- wimp_version --- *
 *
 * On entry:	--
 *
 * On exit:	R0 == the WIMP's version number (may not be the one the
 *		      client asked for)
 *
 * Use:		Returns the WindowManager's version number.
 */

extern routine wimp_version;

/* --- wimp_strWidth --- *
 *
 * On entry:	R0 == pointer to a string
 *
 * On exit:	R0 == width of the string in OS units
 *
 * Use:		Returns the width of a string, as it would be displayed in
 *		an icon (i.e. taking into account things like the current
 *		desktop font etc.)  The width is exact, so if you want to
 *		e.g. draw a box round it, you'll have to add on a little
 *		clearance at each end.  8 OS units seems to be a good size
 *		for the clearance (so the total width you'd use is given by
 *		wimp_strWidth(string)+16, because it has two ends).
 */

extern routine wimp_strWidth;

/*----- That's all, folks -------------------------------------------------*/

#endif
