 
#ifndef suite_DEFINED
#define suite_DEFINED 1
 
#ifndef class_DEFINED
#include <class.h>
#endif /* class_DEFINED */
/* 
 * This file was generated by the Andrew class system preprocessor.
 * Don't make changes to this file as it is created from suite.ch and will be
 * overwritten.  Make changes to suite.ch instead.
 */ 
 
#ifndef class_StaticInfoOnly
/* 
 * The following information was copied, as-is, from suite.ch.
 */ 
 
/* ********************************************************************** *\
 *         Copyright IBM Corporation 1988,1991 - All Rights Reserved      *
 *        For full copyright information see:'andrew/config/COPYRITE'     *
\* ********************************************************************** */

/*
	$Disclaimer: 
*Permission to use, copy, modify, and distribute this software and its 
*documentation for any purpose is hereby granted without fee, 
*provided that the above copyright notice appear in all copies and that 
*both that copyright notice, this permission notice, and the following 
*disclaimer appear in supporting documentation, and that the names of 
*IBM, Carnegie Mellon University, and other copyright holders, not be 
*used in advertising or publicity pertaining to distribution of the software 
*without specific, written prior permission.
*
*IBM, CARNEGIE MELLON UNIVERSITY, AND THE OTHER COPYRIGHT HOLDERS 
*DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 
*ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO EVENT 
*SHALL IBM, CARNEGIE MELLON UNIVERSITY, OR ANY OTHER COPYRIGHT HOLDER 
*BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 
*DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 
*WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 
*ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
*OF THIS SOFTWARE.
* $
*/

/**  SPECIFICATION -- External Facility Suite  *********************************

TITLE	The Suite-object

MODULE	suite.ch

VERSION	1.0

AUTHOR	TC Peters & GW Keim
	Information Technology Center, Carnegie-Mellon University 

DESCRIPTION
	This is the suite of Methods that support the Suite-object.

    NB: The comment-symbol "===" indicates areas which are:
	    1 - Questionable
	    OR
	    2 - Arbitrary
	    OR
	    3 - Temporary Hacks
    Such curiosities need be resolved prior to Project Completion...


HISTORY
  11/01/88	Created (GW Keim)

END-SPECIFICATION  ************************************************************/



#include <vector.ih>
#define	suite_VERSION			    1

struct color_state {
    char				    *caption_name;
    char				    *foreground_name;
    char				    *background_name;

    unsigned char			     caption_color[3];
    unsigned char			     foreground_color[3];
    unsigned char			     background_color[3];
};


typedef struct suite_item *suite_type_item;
struct suite_item {
	char				    *name;
	struct suite			    *suite;
	char				    *caption;
	struct fontdesc			    *captionfont;
	char				    *captionfontname;
	char				    *title;
	char				    *titlefontname;
	struct fontdesc			    *titlefont;
	char				    *dataobjectname;
	struct dataobject		    *dataobject;
	long				   (*dataobjecthandler)();
	char				    *viewobjectname;
	struct view			    *viewobject;
	struct rectangle		     inset_rect;
	struct rectangle		     title_rect;
	struct rectangle		     caption_rect;
	struct rectangle		     bounds;
	long				   (*viewobjecthandler)();
	long				   (*hithandler)();
	long				     datum;
	struct fontdesc			    *cursorfont;
	char				    *cursorfontname;
	struct cursor			    *cursor;
	short				     captionfontsize;
	short				     titlefontsize;
	unsigned char			     cursorbyte;
	unsigned char			     bordersize;
	unsigned char			     captionalignment;
	unsigned char			     titleplacement;
	unsigned char			     titlecaptionalignment;
	unsigned char			     highlightstyle;
	unsigned char			     passivestyle;
	unsigned char			     titlefonttype;
	unsigned char			     captionfonttype;
	unsigned char			     borderstyle;
	unsigned char			     mode;
	unsigned char			     accesstype;
	boolean				     exposed;
	struct vector			    *breaks;
	boolean				     debug;
	long				     position;
	struct color_state		    *color;
};





/*** Suite Object-types ***/
#define	suite_NoObject				    0
#define	suite_ItemObject			    1
#define	suite_TitleObject			    2

/***  Suite Attribute Values  ***/

/*** List Wrapping Styles ***/
#define	 suite_LeftIndent		    (1)
#define	 suite_LeftRight		    (1<<1)

/*** Ordering ***/
#define  suite_ColumnMajor		    (1)
#define  suite_RowMajor			    (1<<1)

/***  Arrangements  ***/
#define  suite_Matrix			    (1)
#define  suite_Column			    (1<<1)
#define  suite_Row			    (1<<2)
#define  suite_Balanced			    (1<<3)
#define  suite_Unbalanced		    (1<<4)
#define  suite_List			    (1<<5)
#define  suite_RowLine			    (1<<6)
#define  suite_ColumnLine		    (1<<7)
#define	 suite_Fixed			    (1<<8)

/***  BorderStyles  ***/
#define  suite_Rectangle		    (1)
#define  suite_Invisible		    (1<<5)
#define	 suite_Line			    (1<<6)

/***  Selection Modes   ***/
#define  suite_Exclusive		    (1)
#define  suite_Inclusive		    (1<<1)
#define	 suite_Toggle			    (1<<2)

/***  TitlePlacements  ***/
#define  suite_Left			    (1)
#define  suite_Right			    (1<<1)
#define  suite_Top			    (1<<2)
#define  suite_Bottom			    (1<<3)
#define  suite_Center			    (1<<4)
#define	 suite_Middle			    (1<<5)

/***  Highlight Styles ***/
#define  suite_Invert			    (1)
#define  suite_Border			    (1<<1)
#define  suite_Bold			    (1<<2)
#define  suite_Italic			    (1<<3)
#define  suite_Pale			    (1<<4)
#define  suite_None			    (1<<9)
#define  suite_Removed			    (1<<6)

/*** Item AccessTypes ***/
#define  suite_ReadOnly			    (1)
#define  suite_ReadWrite		    (1<<1)
#define	 suite_Proceed			    (1<<2)

/*** Sort Modes ***/
#define  suite_Alphabetic		    (1)
#define  suite_Numeric			    (1<<1)
#define  suite_Ascend			    (1<<2)
#define  suite_Descend			    (1<<3)

/*** Sort fields ***/
#define suite_ByCaption			    (1<<4)
#define suite_ByTitle			    (1<<5)
#define suite_ByDatum			    (1<<6)

/*** Reset States ***/
#define	suite_Clear			    (1)
#define	suite_ClearItems		    (1<<1)
#define	suite_ClearTitle		    (1<<2)
#define	suite_Normalize			    (1<<3)
#define	suite_Activate			    (1<<4)
#define	suite_Immediate			    (1<<5)
#define	suite_Defer			    (1<<6)
#define	suite_Expose			    (1<<7)

#define	suite_NoCursor			    (0)

/*** Exception Codes ***/
#define suite_NonExistentItem		    (1)
#define suite_InsufficientSpace		    (1<<1)
#define suite_AttributeConflict		    (1<<2)

typedef	struct suite_specification  suite_Specification;
struct  suite_specification {
    char attribute;
    long value;
};

/*** Attribute Macros ***/

#define suite_TitleCaption(x)		    suite_titlecaption,			(long) (x)
#define suite_TitleCaptionAlignment(x)	    suite_titlecaptionalignment,	(long) (x)
#define suite_TitleBorderStyle(x)	    suite_titleborderstyle,		(long) (x)
#define suite_TitleHighlightStyle(x)	    suite_titlehighlightstyle,		(long) (x)
#define suite_TitleBorderSize(x)	    suite_titlebordersize,		(long) (x)
#define suite_ItemOrder(x)		    suite_itemorder,			(long) (x)
#define suite_ItemCaptionList(x)	    suite_itemcaptionlist,		(long) (x)
#define suite_Item(x)			    suite_itemspec,			(long) (x)
#define suite_SelectionMode(x)		    suite_selectionmode,		(long) (x)
#define suite_BorderStyle(x)		    suite_borderstyle,			(long) (x)
#define suite_BorderSize(x)		    suite_bordersize,			(long) (x)
#define suite_HitHandler(x)		    suite_hithandler,			(long) (x)
#define suite_Arrangement(x)		    suite_arrangement,			(long) (x)
#define suite_Scroll(x)			    suite_scroll,			(long) (x)
#define suite_TitlePlacement(x)		    suite_titleplacement,		(long) (x)
#define	suite_FontName(x)		    suite_fontname,			(long) (x)
#define suite_TitleFontName(x)		    suite_titlefontname,		(long) (x)
#define suite_TitleCaptionFontName(x)	    suite_titlefontname,		(long) (x)
#define suite_TitleViewObjectName(x)	    suite_titleviewobjectname,		(long) (x)
#define suite_TitleViewObjectHandler(x)	    suite_titleviewobjecthandler,	(long) (x)
#define suite_TitleDataObjectName(x)	    suite_titledataobjectname,		(long) (x)
#define suite_TitleDataObjectHandler(x)	    suite_titledataobjecthandler,	(long) (x)
#define	suite_TitleDataObject(x)	    suite_titledataobject,		(long) (x)
#define	suite_TitleViewObject(x)	    suite_titleviewobject,		(long) (x)
#define suite_TitleHitHandler(x)	    suite_titlehithandler,		(long) (x)
#define	suite_ItemPosition(x)		    suite_itemposition,			(long) (x)
#define suite_ItemCaptionFontName(x)	    suite_itemcaptionfontname,		(long) (x)
#define suite_ItemBorderStyle(x)	    suite_itemborderstyle,		(long) (x)
#define suite_ItemBorderSize(x)		    suite_itembordersize,		(long) (x)
#define suite_ItemHighlightStyle(x)	    suite_itemhighlightstyle,		(long) (x)
#define suite_ItemPassiveStyle(x)	    suite_itempassivestyle,		(long) (x)
#define suite_ItemCaption(x)		    suite_itemcaption,			(long) (x)
#define suite_ItemCaptionAlignment(x)	    suite_itemcaptionalignment,		(long) (x)
#define suite_ItemTitleCaption(x)	    suite_itemtitlecaption,		(long) (x)
#define suite_ItemTitleFontName(x)	    suite_itemtitlefontname,		(long) (x)
#define suite_ItemTitleCaptionFontName(x)   suite_itemtitlefontname,		(long) (x)
#define suite_ItemTitleCaptionAlignment(x)  suite_itemtitlecaptionalignment,	(long) (x)
#define suite_ItemTitlePlacement(x)	    suite_itemtitleplacement,		(long) (x)
#define suite_ItemAccessMode(x)		    suite_accesstype,			(long) (x)
#define suite_AccessMode(x)		    suite_accesstype,			(long) (x)
#define suite_ItemWidth(x)		    suite_itemwidth,			(long) (x)
#define suite_ItemHeight(x)		    suite_itemheight,			(long) (x)
#define suite_ItemViewObjectName(x)	    suite_itemviewobjectname,		(long) (x)
#define suite_ItemViewObjectHandler(x)	    suite_itemviewobjecthandler,	(long) (x)
#define suite_ItemDataObjectName(x)	    suite_itemdataobjectname,		(long) (x)
#define suite_ItemDataObjectHandler(x)	    suite_itemdataobjecthandler,	(long) (x)
#define suite_ItemHitHandler(x)		    suite_itemhithandler,		(long) (x)
#define suite_Data(x)			    suite_datum,				(long) (x)
#define suite_Datum(x)			    suite_datum,				(long) (x)
#define suite_ItemDatum(x)		    suite_itemdatum,			(long) (x)
#define suite_ItemData(x)		    suite_itemdatum,			(long) (x)
#define suite_HorizontalGuttersize(x)	    suite_horizontalguttersize,		(long) (x)
#define suite_VerticalGuttersize(x)	    suite_verticalguttersize,		(long) (x)
#define	suite_Guttersize(x)		    suite_guttersize,			(long) (x)
#define suite_HorizontalGutterSize(x)	    suite_horizontalguttersize,		(long) (x)
#define suite_VerticalGutterSize(x)	    suite_verticalguttersize,		(long) (x)
#define	suite_GutterSize(x)		    suite_guttersize,			(long) (x)
#define suite_SortMode(x)		    suite_sortmode,			(long) (x)
#define suite_SortHandler(x)		    suite_sorthandler,			(long) (x)
#define suite_CursorFontName(x)		    suite_cursorfontname,		(long) (x)
#define	suite_CursorType(x)		    suite_cursorbyte,			(long) (x)
#define suite_Cursor(x)			    suite_cursorbyte,			(long) (x)
#define suite_ItemCursorFontName(x)	    suite_itemcursorfontname,		(long) (x)
#define suite_ItemCursor(x)		    suite_itemcursorbyte,		(long) (x)
#define suite_ItemCursorType(x)		    suite_itemcursorbyte,		(long) (x)
#define	suite_WrappingStyle(x)		    suite_wrappingstyle,		(long) (x)
#define	suite_ItemName(x)		    suite_itemname,			(long) (x)
#define	suite_Rows(x)			    suite_rows,				(long) (x)
#define	suite_Columns(x)		    suite_columns,			(long) (x)
#define	suite_ForegroundColor(x)	    suite_foregroundcolor,		(long) (x)
#define	suite_BackgroundColor(x)	    suite_backgroundcolor,		(long) (x)
#define	suite_ItemCaptionColor(x)	    suite_itemcaptioncolor,		(long) (x)
#define	suite_ItemForegroundColor(x)	    suite_itemforegroundcolor,		(long) (x)
#define	suite_ItemBackgroundColor(x)	    suite_itembackgroundcolor,		(long) (x)
#define	suite_ActiveItemCaptionColor(x)	    suite_activeitemcaptioncolor,	(long) (x)
#define	suite_ActiveItemForegroundColor(x)  suite_activeitemforegroundcolor,	(long) (x)
#define	suite_ActiveItemBackgroundColor(x)  suite_activeitembackgroundcolor,	(long) (x)
#define	suite_PassiveItemCaptionColor(x)    suite_passiveitemcaptioncolor,	(long) (x)
#define	suite_PassiveItemForegroundColor(x) suite_passiveitemforegroundcolor,	(long) (x)
#define	suite_PassiveItemBackgroundColor(x) suite_passiveitembackgroundcolor,	(long) (x)

/***  Suite Attribute Codes  ***/

#define	suite_titlecaption			    1
#define	suite_titleborderstyle			    2
#define	suite_titlehighlightstyle		    3
#define	suite_titlebordersize			    4
#define	suite_titledataobjectname		    5
#define	suite_titledataobjecthandler		    6
#define	suite_selectionmode			    7
#define	suite_titleplacement			    8
#define	suite_borderstyle			    9
#define	suite_hithandler			    10
#define	suite_arrangement			    11
#define	suite_scroll				    12
#define	suite_titlefontname			    13
#define	suite_titleviewobjectname		    14
#define	suite_titleviewobjecthandler		    15
#define	suite_titlehithandler			    18
#define	suite_itemcaptionfontname		    19

#define	suite_itemborderstyle			    23
#define	suite_itembordersize			    24
#define	suite_itemhighlightstyle		    25
#define	suite_itempassivestyle			    26
#define	suite_itemorder				    27
#define	suite_itemcaptionlist			    28
#define	suite_itemspec				    29
#define	suite_bordersize			    30
#define	suite_datum				    31
#define	suite_itemcaption			    32
#define	suite_itemtitlecaption			    33
#define	suite_itemtitlefontname			    34
#define	suite_itemtitleplacement		    35
#define	suite_accesstype			    36
#define	suite_itemdataobjectname		    37
#define	suite_itemdataobjecthandler		    38
#define	suite_itemviewobjectname		    39
#define	suite_itemviewobjecthandler		    40
#define	suite_itemhithandler			    41
#define	suite_itemwidth				    42
#define	suite_itemheight			    43
#define	suite_horizontalguttersize		    46
#define	suite_verticalguttersize		    47
#define	suite_guttersize			    48
#define	suite_sortmode				    49
#define	suite_sorthandler			    50
#define	suite_cursorfontname			    52
#define	suite_cursorbyte			    53
#define	suite_itemcursorbyte			    55
#define	suite_itemcursorfontname		    56
#define	suite_itemdatum				    57
#define	suite_wrappingstyle			    58
#define	suite_itemposition			    59
#define	suite_fontname				    60
#define	suite_itemname				    61
#define	suite_itemcaptionalignment		    62
#define	suite_itemtitlecaptionalignment		    63
#define	suite_titlecaptionalignment		    64
#define	suite_titleviewobject			    65
#define	suite_titledataobject			    66
#define	suite_rows				    67
#define	suite_columns				    68

#define	suite_foregroundcolor			    69
#define	suite_backgroundcolor			    70
#define	suite_itemcaptioncolor			    71
#define	suite_itemforegroundcolor		    72
#define	suite_itembackgroundcolor		    73
#define	suite_activeitemcaptioncolor		    74
#define	suite_activeitemforegroundcolor		    75
#define	suite_activeitembackgroundcolor		    76
#define	suite_passiveitemcaptioncolor		    77
#define	suite_passiveitemforegroundcolor	    78
#define	suite_passiveitembackgroundcolor 	    79



/* 
 * End of information copied from suite.ch.
 */ 
 
#endif /* class_StaticInfoOnly *//* 
 * Include the superclass information
 */ 
#define dontDefineRoutinesFor_aptv
#include "aptv.ih"
#undef dontDefineRoutinesFor_aptv

 
 
#ifndef class_StaticInfoOnly
/* 
 * Data structure for suite 
 */ 
struct suite { 
    union {
	struct basicobject_methods *suite_methods;
	struct traced traced;
	struct observable observable;
	struct view view;
	struct aptv aptv;
    } header;

	struct suite_item	    *current_item;
	struct apt		    *apt;
	struct vector		    *items;
	struct suiteev		    *setview;
	struct rectangle	     container;
	struct rectangle	     bounds;
	struct scroll		    *scroll;
	struct rectangle	     scrollrect;
	char			    *title_caption;
	struct rectangle	     title_rect;
	unsigned		     titlehighlightstyle;
	unsigned		     titleborderstyle;
	short			     titlebordersize;
	char			    *titledataobjectname;
	struct dataobject	    *titledataobject;
	struct view		    *titleviewobject;
	long			   (*titledataobjecthandler)();
	long			   (*titleviewobjecthandler)();
	unsigned		     titleplacement;
	unsigned		     titlecaptionalignment;
	long			   (*titlehithandler)();
	char			    *titleviewobjectname;
	char			    *titlefontname;
	struct fontdesc		    *titlefont;
	long			     titlefontsize;
	unsigned		     titlefonttype;
	unsigned		     titlehighlighted;
	unsigned		     itemorder;
	unsigned		     arrangement;
	unsigned		     selection_mode;
	unsigned		     borderstyle;
	short			     bordersize;
	unsigned		     scrolltype;
	char			    *captionfontname;
	struct fontdesc		    *captionfont;
	short			     captionfontsize;
	unsigned		     captionfonttype;
	char			    *itemtitlefontname;
	short			     itemtitlefontsize;
	unsigned		     itemtitlefonttype;
	unsigned		     captionalignment;
	unsigned		     itemborderstyle;
	unsigned		     itembordersize;
	unsigned		     itemhighlightstyle;
	unsigned		     itempassivestyle;
	unsigned		     itemtitleplacement;
	unsigned		     itemtitlecaptionalignment;
	unsigned		     accesstype;
	char			    *itemviewobjectname, 
				    *itemdataobjectname;
	long			   (*itemviewobjecthandler)(), 
				   (*itemdataobjecthandler)();
	long			   (*hithandler)();
	long			     anchor, datum;
	struct suite_item	    *firstvisible, *lastvisible, *newfirstvisible;
	long			     visiblerows, visiblecolumns, 
				     rows, columns, numvisible;
	short			     itemwidth, itemheight;
	short			     itemfixedwidth, itemfixedheight;
	struct cursor		    *cursor;
	char			    *cursorfontname;
	struct fontdesc		    *cursorfont;
	char			     cursorbyte;
	struct cursor		    *itemcursor;
	char			    *itemcursorfontname;
	struct fontdesc		    *itemcursorfont;
	char			     itemcursorbyte;
	long			   (*sort_handler)();
	unsigned		     sortorder;
	short			     x_guttersize, y_guttersize;
	struct suite_item	   **itemarray;
	long			   (*exception)();
	long			     exception_status;
	struct suite_item	    *exception_item;
	long			     title_m_width, caption_m_width;
	boolean			     has_focus;
	boolean			     debug;
	short			     wrappingstyle;
	long			     max_item_pos_given;
	struct sbutton_prefs	    *buttonprefs;
	struct color_state	    *suiteColor;
	struct color_state	    *activeItemColor;
	struct color_state	    *passiveItemColor;
	double			     suite_bg_shade[3];
	boolean			     mono;

};

 
/* 
 * End of data structure for suite.
 */ 
 

#endif /* class_StaticInfoOnly */

#ifndef class_StaticInfoOnly

#ifndef suite_PROGRAMMERVERSION
#define suite_PROGRAMMERVERSION 1
#endif /* suite_PROGRAMMERVERSION */

#ifdef suite_VERSION
#undef suite_VERSION
#endif /* suite_VERSION */
#define suite_VERSION ((((suite_PROGRAMMERVERSION << 16) ^ (156 << 8) ^ sizeof(struct suite)) & 0x7ffff) + 0x80000 + (66 << 20))


#endif /* class_StaticInfoOnly */
#define suite_StaticLoadOnlyThisClass()  \
{ extern struct classinfo *suite__GetClassInfo(); \
 extern struct classheader *suite_classheader_StaticExport; \
  (void) class_EnterInfo(NULL, suite_classheader_StaticExport->name, suite__GetClassInfo, NULL, suite_classheader_StaticExport->namekey); } 
 
#define suite_StaticLoad()  \
    { \
    aptv_StaticLoad(); \
    suite_StaticLoadOnlyThisClass();  \
    } 
 
#define suite_StaticEntry  {suite_StaticLoad()} 
 
#ifndef class_StaticInfoOnly
static struct classheader suite_classheader = {
    suite_VERSION,
    "suite",
    "suite",
    (struct basicobject_methods *) &class_RoutineStruct,
};

#define suite_CLASSPROCEDURES (suite_classheader.classprocedures)
int suite_classref_;
#endif /* class_StaticInfoOnly */

#endif /* suite_DEFINED */

#if !defined(suite_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_suite) && !defined(class_StaticEntriesOnly)
#define suite_ROUTINESDEFINED

#define suite_Reference(self) \
 (((&(self)->header.traced))->refcount++)
#define suite_UnReference(self) \
 ((((&(self)->header.traced))->refcount>0)?((&(self)->header.traced))->refcount--:0)
#define suite_ReferenceCount(self) \
 (((&(self)->header.traced))->refcount)
#define suite_AddObserver(self,observer) \
    ((* ((void (*)())((self)->header.suite_methods->routines[0]))) (self,observer))
#define suite_IsObserver(self,observer) \
    ((* ((boolean (*)())((self)->header.suite_methods->routines[1]))) (self,observer))
#define suite_RemoveObserver(self,observer) \
    ((* ((void (*)())((self)->header.suite_methods->routines[2]))) (self,observer))
#define suite_NotifyObservers(self,value) \
    ((* ((void (*)())((self)->header.suite_methods->routines[3]))) (self,value))
#define suite_ObservedChanged(self,changed,value) \
    ((* ((void (*)())((self)->header.suite_methods->routines[4]))) (self,changed,value))
#define suite_AddRecipient(self,trigger,rcvr,func,rock) \
    ((* ((boolean (*)())((self)->header.suite_methods->routines[5]))) (self,trigger,rcvr,func,rock))
#define suite_DeleteRecipient(self,trigger,rcvr) \
    ((* ((void (*)())((self)->header.suite_methods->routines[6]))) (self,trigger,rcvr))
#define suite_PullTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.suite_methods->routines[7]))) (self,trigger))
#define suite_DisableTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.suite_methods->routines[8]))) (self,trigger))
#define suite_EnableTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.suite_methods->routines[9]))) (self,trigger))
#define suite_DisableCount(self,trigger) \
    ((* ((long (*)())((self)->header.suite_methods->routines[10]))) (self,trigger))
#define suite_SetName(self,name) \
    ((* ((void (*)())((self)->header.suite_methods->routines[11]))) (self,name))
#define suite_GetName(self) \
    ((* ((struct atomlist * (*)())((self)->header.suite_methods->routines[12]))) (self))
#define suite_GetClass(self) \
    ((* ((struct atomlist * (*)())((self)->header.suite_methods->routines[13]))) (self))
#define suite_GetParameter(self,name,type,datum) \
    ((* ((short (*)())((self)->header.suite_methods->routines[14]))) (self,name,type,datum))
#define suite_GetResource(self,name,class,type,datum) \
    ((* ((short (*)())((self)->header.suite_methods->routines[15]))) (self,name,class,type,datum))
#define suite_GetManyParameters(self,resources,name,class) \
    ((* ((void (*)())((self)->header.suite_methods->routines[16]))) (self,resources,name,class))
#define suite_PostResource(self,path,type,datum) \
    ((* ((void (*)())((self)->header.suite_methods->routines[17]))) (self,path,type,datum))
#define suite_InsertViewRegion(self,parent,region) \
    ((* ((void (*)())((self)->header.suite_methods->routines[18]))) (self,parent,region))
#define suite_InsertView(self,parent,enclosingRect) \
    ((* ((void (*)())((self)->header.suite_methods->routines[19]))) (self,parent,enclosingRect))
#define suite_InsertViewSize(self,EnclosingView,xOriginInParent,yOriginInParent,width,height) \
    ((* ((void (*)())((self)->header.suite_methods->routines[20]))) (self,EnclosingView,xOriginInParent,yOriginInParent,width,height))
#define suite_SetDataObject(self,dataobject) \
    ((* ((void (*)())((self)->header.suite_methods->routines[21]))) (self,dataobject))
#define suite_GetApplicationLayer(self) \
    ((* ((struct view * (*)())((self)->header.suite_methods->routines[22]))) (self))
#define suite_DeleteApplicationLayer(self,applicationLayer) \
    ((* ((void (*)())((self)->header.suite_methods->routines[23]))) (self,applicationLayer))
#define suite_DescriptionObject(self,format,rock) \
    ((* ((char * (*)())((self)->header.suite_methods->routines[24]))) (self,format,rock))
#define suite_Describe(self,format,file,rock) \
    ((* ((enum view_DescriberErrs (*)())((self)->header.suite_methods->routines[25]))) (self,format,file,rock))
#define suite_FullUpdate(self,type,left,top,width,right) \
    ((* ((void (*)())((self)->header.suite_methods->routines[26]))) (self,type,left,top,width,right))
#define suite_Update(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[27]))) (self))
#define suite_Print(self,file,processor,finalFormat,topLevel) \
    ((* ((void (*)())((self)->header.suite_methods->routines[28]))) (self,file,processor,finalFormat,topLevel))
#define suite_Hit(self,action,x,y,numberOfClicks) \
    ((* ((struct view * (*)())((self)->header.suite_methods->routines[29]))) (self,action,x,y,numberOfClicks))
#define suite_DesiredSize(self,width,height,pass,dWidth,dheight) \
    ((* ((enum view_DSattributes (*)())((self)->header.suite_methods->routines[30]))) (self,width,height,pass,dWidth,dheight))
#define suite_GetOrigin(self,width,height,originX,originY) \
    ((* ((void (*)())((self)->header.suite_methods->routines[31]))) (self,width,height,originX,originY))
#define suite_ReceiveInputFocus(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[32]))) (self))
#define suite_LoseInputFocus(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[33]))) (self))
#define suite_ReceiveColormap(self,cmap) \
    ((* ((void (*)())((self)->header.suite_methods->routines[34]))) (self,cmap))
#define suite_LoseColormap(self,cmap) \
    ((* ((void (*)())((self)->header.suite_methods->routines[35]))) (self,cmap))
#define suite_WantUpdate(self,requestor) \
    ((* ((void (*)())((self)->header.suite_methods->routines[36]))) (self,requestor))
#define suite_WantInputFocus(self,requestor) \
    ((* ((void (*)())((self)->header.suite_methods->routines[37]))) (self,requestor))
#define suite_WantColormap(self,requestor,cmap) \
    ((* ((void (*)())((self)->header.suite_methods->routines[38]))) (self,requestor,cmap))
#define suite_WantNewSize(self,requestor) \
    ((* ((void (*)())((self)->header.suite_methods->routines[39]))) (self,requestor))
#define suite_WantHandler(self,handlerName) \
    ((* ((struct basicobject * (*)())((self)->header.suite_methods->routines[40]))) (self,handlerName))
#define suite_WantInformation(self,key) \
    ((* ((char * (*)())((self)->header.suite_methods->routines[41]))) (self,key))
#define suite_PostKeyState(self,keystate) \
    ((* ((void (*)())((self)->header.suite_methods->routines[42]))) (self,keystate))
#define suite_PostMenus(self,menulist) \
    ((* ((void (*)())((self)->header.suite_methods->routines[43]))) (self,menulist))
#define suite_PostCursor(self,rec,cursor) \
    ((* ((void (*)())((self)->header.suite_methods->routines[44]))) (self,rec,cursor))
#define suite_RetractCursor(self,cursor) \
    ((* ((void (*)())((self)->header.suite_methods->routines[45]))) (self,cursor))
#define suite_RetractViewCursors(self,requestor) \
    ((* ((void (*)())((self)->header.suite_methods->routines[46]))) (self,requestor))
#define suite_PostDefaultHandler(self,handlerName,handler) \
    ((* ((void (*)())((self)->header.suite_methods->routines[47]))) (self,handlerName,handler))
#define suite_GetInterface(self,type) \
    ((* ((char * (*)())((self)->header.suite_methods->routines[48]))) (self,type))
#define suite_LinkTree(self,parent) \
    ((* ((void (*)())((self)->header.suite_methods->routines[49]))) (self,parent))
#define suite_UnlinkTree(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[50]))) (self))
#define suite_IsAncestor(self,possibleAncestor) \
    ((* ((boolean (*)())((self)->header.suite_methods->routines[51]))) (self,possibleAncestor))
#define suite_UnlinkNotification(self,unlinkedTree) \
    ((* ((void (*)())((self)->header.suite_methods->routines[52]))) (self,unlinkedTree))
#define suite_GetWindowManagerType(self) \
    ((* ((char * (*)())((self)->header.suite_methods->routines[53]))) (self))
#define suite_GetDevice(self) \
    ((* ((long (*)())((self)->header.suite_methods->routines[54]))) (self))
#define suite_InitChildren(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[55]))) (self))
#define suite_CanView(self,TypeName) \
    ((* ((boolean (*)())((self)->header.suite_methods->routines[56]))) (self,TypeName))
#define suite_LoseSelectionOwnership(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[57]))) (self))
#define suite_WriteSelection(self,out) \
    ((* ((long (*)())((self)->header.suite_methods->routines[58]))) (self,out))
#define suite_MoveToPt(self,Pt) \
 (graphic_MoveToPt(((&(self)->header.view))->drawable,(Pt)))
#define suite_MoveTo(self,NewX,NewY) \
 (graphic_MoveTo(((&(self)->header.view))->drawable,(NewX),(NewY)))
#define suite_Move(self,DeltaX,DeltaY) \
 (graphic_Move(((&(self)->header.view))->drawable,(DeltaX),(DeltaY)))
#define suite_GetLogicalBounds(self,Rect) \
 (graphic_GetLogicalBounds(((&(self)->header.view))->drawable,(Rect)))
#define suite_GetLogicalBoundsSize(self,x,y,width,height) \
 (graphic_GetLogicalBoundsSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define suite_GetLogicalRight(self) \
 (graphic_GetLogicalRight(((&(self)->header.view))->drawable))
#define suite_GetLogicalBottom(self) \
 (graphic_GetLogicalBottom(((&(self)->header.view))->drawable))
#define suite_GetLogicalLeft(self) \
 (graphic_GetLogicalLeft(((&(self)->header.view))->drawable))
#define suite_GetLogicalHeight(self) \
 (graphic_GetLogicalHeight((((&(self)->header.view))->drawable)))
#define suite_GetLogicalWidth(self) \
 (graphic_GetLogicalWidth((((&(self)->header.view))->drawable)))
#define suite_GetLogicalTop(self) \
 (graphic_GetLogicalTop((((&(self)->header.view))->drawable)))
#define suite_SetVisualRegion(self,region) \
 (graphic_SetVisualRegion(((&(self)->header.view))->drawable, (region)))
#define suite_GetVisualRegion(self,region) \
 (graphic_GetVisualRegion(((&(self)->header.view))->drawable, (region)))
#define suite_GetVisualBounds(self,Rect) \
 (graphic_GetVisualBounds(((&(self)->header.view))->drawable,(Rect)))
#define suite_GetVisualBoundsSize(self,x,y,width,height) \
 (graphic_GetVisualBoundsSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define suite_GetVisualRight(self) \
 (graphic_GetVisualRight(((&(self)->header.view))->drawable))
#define suite_GetVisualBottom(self) \
 (graphic_GetVisualBottom(((&(self)->header.view))->drawable))
#define suite_GetVisualWidth(self) \
 (graphic_GetVisualWidth((((&(self)->header.view))->drawable)))
#define suite_GetVisualHeight(self) \
 (graphic_GetVisualHeight((((&(self)->header.view))->drawable)))
#define suite_GetVisualLeft(self) \
 (graphic_GetVisualLeft((((&(self)->header.view))->drawable)))
#define suite_GetVisualTop(self) \
 (graphic_GetVisualTop((((&(self)->header.view))->drawable)))
#define suite_GetEnclosedBounds(self,Rect) \
 (graphic_GetEnclosedBounds(((&(self)->header.view))->drawable, (Rect)))
#define suite_GetEnclosedBoundsSize(self,x,y,width,height) \
 (graphic_GetEnclosedBoundsSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define suite_GetEnclosedRight(self) \
 (graphic_GetEnclosedRight(((&(self)->header.view))->drawable))
#define suite_GetEnclosedBottom(self) \
 (graphic_GetEnclosedBottom(((&(self)->header.view))->drawable))
#define suite_GetEnclosedLeft(self) \
 (graphic_GetEnclosedLeft((((&(self)->header.view))->drawable)))
#define suite_GetEnclosedTop(self) \
 (graphic_GetEnclosedTop((((&(self)->header.view))->drawable)))
#define suite_GetEnclosedWidth(self) \
 (graphic_GetEnclosedWidth((((&(self)->header.view))->drawable)))
#define suite_GetEnclosedHeight(self) \
 (graphic_GetEnclosedHeight((((&(self)->header.view))->drawable)))
#define suite_GetCurrentPt(self,Pt) \
 (graphic_GetCurrentPt(((&(self)->header.view))->drawable,(Pt)))
#define suite_DrawLineToPt(self,LineEnd) \
 (graphic_DrawLineToPt(((&(self)->header.view))->drawable,(LineEnd)))
#define suite_DrawLineTo(self,XEnd,YEnd) \
 (graphic_DrawLineTo(((&(self)->header.view))->drawable,(XEnd), (YEnd)))
#define suite_DrawLine(self,DeltaX,DeltaY) \
 (graphic_DrawLine(((&(self)->header.view))->drawable, (DeltaX), (DeltaY)))
#define suite_DrawString(self,Text,Operation) \
 (graphic_DrawString(((&(self)->header.view))->drawable, (Text), (Operation)))
#define suite_DrawText(self,Text,TextLength,Operation) \
 (graphic_DrawText(((&(self)->header.view))->drawable, (Text), (TextLength), (Operation)))
#define suite_SetSpaceShim(self,Amount) \
 (graphic_SetSpaceShim(((&(self)->header.view))->drawable,(Amount)))
#define suite_GetSpaceShim(self) \
 (graphic_GetSpaceShim(((&(self)->header.view))->drawable))
#define suite_SetFont(self,ChosenFont) \
 (graphic_SetFont(((&(self)->header.view))->drawable, (ChosenFont)))
#define suite_GetFont(self) \
 (graphic_GetFont(((&(self)->header.view))->drawable))
#define suite_DrawRect(self,Rect) \
 (graphic_DrawRect(((&(self)->header.view))->drawable,(Rect)))
#define suite_DrawRectSize(self,x,y,width,height) \
 (graphic_DrawRectSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define suite_DrawTrapezoid(self,topX,topY,topWidth,bottomX,bottomY,bottomWidth) \
 (graphic_DrawTrapezoid(((&(self)->header.view))->drawable,(topX),(topY),(topWidth),(bottomX),(bottomY),(bottomWidth)))
#define suite_DrawPolygon(self,PointArray,PointCount) \
 (graphic_DrawPolygon(((&(self)->header.view))->drawable,(PointArray), (PointCount)))
#define suite_DrawPath(self,PointArray,PointCount) \
 (graphic_DrawPath(((&(self)->header.view))->drawable,(PointArray), (PointCount)))
#define suite_DrawOval(self,Rect) \
 (graphic_DrawOval(((&(self)->header.view))->drawable,(Rect)))
#define suite_DrawOvalSize(self,x,y,width,height) \
 (graphic_DrawOvalSize(((&(self)->header.view))->drawable, (x), (y), (width), (height)))
#define suite_DrawArc(self,EnclRect,StartAngle,OffsetAngle) \
 (graphic_DrawArc(((&(self)->header.view))->drawable,(EnclRect),(StartAngle),(OffsetAngle)))
#define suite_DrawArcSize(self,x,y,width,height,StartAngle,OffsetAngle) \
 (graphic_DrawArcSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (StartAngle), (OffsetAngle)))
#define suite_DrawRRect(self,OuterBox,InnerBox) \
 (graphic_DrawRRect(((&(self)->header.view))->drawable, (OuterBox), (InnerBox)))
#define suite_DrawRRectSize(self,x,y,width,height,cornerWidth,cornerHeight) \
 (graphic_DrawRRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (cornerWidth), (cornerHeight)))
#define suite_DrawRgn(self,Rgn) \
 (graphic_DrawRgn(((&(self)->header.view))->drawable,(Rgn)))
#define suite_FillRect(self,Rect,Tile) \
 (graphic_FillRect(((&(self)->header.view))->drawable, (Rect),(Tile)))
#define suite_FillRectSize(self,x,y,width,height,Tile) \
 (graphic_FillRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (Tile)))
#define suite_FillTrapezoid(self,topX,topY,topWidth,bottomX,bottomY,bottomWidth,Tile) \
 (graphic_FillTrapezoid(((&(self)->header.view))->drawable, (topX), (topY), (topWidth), (bottomX), (bottomY), (bottomWidth), (Tile)))
#define suite_FillPolygon(self,PointArray,PointCount,Tile) \
 (graphic_FillPolygon(((&(self)->header.view))->drawable, (PointArray), (PointCount), (Tile)))
#define suite_FillOval(self,Rect,Tile) \
 (graphic_FillOval(((&(self)->header.view))->drawable, (Rect), (Tile)))
#define suite_FillOvalSize(self,x,y,width,height,Tile) \
 (graphic_FillOvalSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (Tile)))
#define suite_FillArc(self,EnclRect,StartAngle,OffsetAngle,Tile) \
 (graphic_FillArc(((&(self)->header.view))->drawable, (EnclRect), (StartAngle), (OffsetAngle),(Tile)))
#define suite_FillArcSize(self,x,y,width,height,StartAngle,OffsetAngle,Tile) \
 (graphic_FillArcSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (StartAngle), (OffsetAngle), (Tile)))
#define suite_FillRRect(self,OuterBox,InnerBox,Tile) \
 (graphic_FillRRect(((&(self)->header.view))->drawable, (OuterBox), (InnerBox), (Tile)))
#define suite_FillRRectSize(self,x,y,width,height,cornerWidth,cornerHeight,Tile) \
 (graphic_FillRRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (cornerWidth), (cornerHeight), (Tile)))
#define suite_FillRgn(self,Rgn,Tile) \
 (graphic_FillRgn(((&(self)->header.view))->drawable, (Rgn), (Tile)))
#define suite_EraseRect(self,Rect) \
 (graphic_EraseRect(((&(self)->header.view))->drawable, (Rect)))
#define suite_EraseRectSize(self,x,y,width,height) \
 (graphic_EraseRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height)))
#define suite_EraseVisualRect(self) \
 (graphic_EraseVisualRect(((&(self)->header.view))->drawable))
#define suite_BitBlt(self,SrcRect,DestView,DstOrigin,ClipRectList) \
 (graphic_BitBlt(((&(self)->header.view))->drawable,(SrcRect), (((struct view *)(DestView))->drawable), (DstOrigin), (ClipRectList)))
#define suite_BitBltSize(self,srcX,srcY,dstX,dstY,Width,Height,DstView,clipX,clipY,clipWidth,clipHeight) \
 (graphic_BitBltSize(((&(self)->header.view))->drawable, (srcX), (srcY), (dstX), (dstY), (Width),(Height), (((struct view*)(DstView))->drawable), (clipX),(clipY), (clipWidth), (clipHeight)))
#define suite_SetBitAtLoc(self,XPos,YPos,NewValue) \
 (graphic_SetBitAtLoc(((&(self)->header.view))->drawable, (XPos), (YPos), (NewValue)))
#define suite_MoveLogicalOrigin(self,DeltaX,DeltaY) \
 (graphic_MoveLogicalOrigin(((&(self)->header.view))->drawable,(DeltaX), (DeltaY)))
#define suite_SetLogicalOrigin(self,NewX,NewY) \
 (graphic_SetLogicalOrigin(((&(self)->header.view))->drawable,(NewX), (NewY)))
#define suite_SetLogicalOriginPt(self,Pt) \
 (graphic_SetLogicalOriginPt(((&(self)->header.view))->drawable,(Pt)))
#define suite_SetClippingRegion(self,region) \
 (graphic_SetClippingRegion(((&(self)->header.view))->drawable, (region)))
#define suite_GetClippingRegion(self,region) \
 (graphic_GetClippingRegion(((&(self)->header.view))->drawable, (region)))
#define suite_SetClippingRect(self,ClipRect) \
 (graphic_SetClippingRect(((&(self)->header.view))->drawable,(ClipRect)))
#define suite_SetClippingRectSize(self,x,y,width,height) \
 (graphic_SetClippingRectSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define suite_ClearClippingRect(self) \
 (graphic_ClearClippingRect(((&(self)->header.view))->drawable))
#define suite_GetClippingRect(self,Rect) \
 (graphic_GetClippingRect(((&(self)->header.view))->drawable,(Rect)))
#define suite_SetLineWidth(self,NewLineWidth) \
 (graphic_SetLineWidth(((&(self)->header.view))->drawable, (NewLineWidth)))
#define suite_GetLineWidth(self) \
 (graphic_GetLineWidth(((&(self)->header.view))->drawable))
#define suite_SetLineDash(self,dashPattern,dashOffset,dashType) \
 (graphic_SetLineDash(((&(self)->header.view))->drawable, (dashPattern), (dashOffset), (dashType)))
#define suite_GetLineDash(self,dashPattern,dashOffset,dashType) \
 (graphic_GetLineDash(((&(self)->header.view))->drawable, (dashPattern), (dashOffset), (dashType)))
#define suite_SetLineCap(self,NewLineCap) \
 (graphic_SetLineCap(((&(self)->header.view))->drawable, (NewLineCap)))
#define suite_GetLineCap(self) \
 (graphic_GetLineCap(((&(self)->header.view))->drawable))
#define suite_SetLineJoin(self,NewLineJoin) \
 (graphic_SetLineJoin(((&(self)->header.view))->drawable, (NewLineJoin)))
#define suite_GetLineJoin(self) \
 (graphic_GetLineJoin(((&(self)->header.view))->drawable))
#define suite_SetTransferMode(self,NewTransferMode) \
 (graphic_SetTransferMode(((&(self)->header.view))->drawable, (NewTransferMode)))
#define suite_GetTransferMode(self) \
 (graphic_GetTransferMode(((&(self)->header.view))->drawable))
#define suite_FlushGraphics(self) \
 (graphic_FlushGraphics(((&(self)->header.view))->drawable))
#define suite_WhitePattern(self) \
 (graphic_WhitePattern(((&(self)->header.view))->drawable))
#define suite_BlackPattern(self) \
 (graphic_BlackPattern(((&(self)->header.view))->drawable))
#define suite_GrayPattern(self,IntensityNum,IntensityDenom) \
 (graphic_GrayPattern(((&(self)->header.view))->drawable, (IntensityNum), (IntensityDenom)))
#define suite_SetPatternOrigin(self,xpos,ypos) \
  (graphic_SetPatternOrigin(((&(self)->header.view))->drawable, (xpos), (ypos)))
#define suite_GetPatternOrigin(self,xpos,ypos) \
  (graphic_GetPatternOrigin(((&(self)->header.view))->drawable, (xpos), (ypos)))
#define suite_SetForegroundColor(self,colorName,red,green,blue) \
 (graphic_SetForegroundColor(((&(self)->header.view))->drawable, (colorName), (red), (green), (blue)))
#define suite_GetForegroundColor(self,name,retred,retgreen,retblue) \
     (graphic_GetForegroundColor(((&(self)->header.view))->drawable, (name), (retred), (retgreen), (retblue)))
#define suite_SetBackgroundColor(self,colorName,red,green,blue) \
 (graphic_SetBackgroundColor(((&(self)->header.view))->drawable, (colorName), (red),(green),(blue)))
#define suite_GetBackgroundColor(self,name,retred,retgreen,retblue) \
 (graphic_GetBackgroundColor(((&(self)->header.view))->drawable, (name), (retred), (retgreen),(retblue)))
#define suite_SetFGColor(self,red,green,blue) \
 (graphic_SetFGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define suite_GetFGColor(self,red,green,blue) \
 (graphic_GetFGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define suite_SetBGColor(self,red,green,blue) \
 (graphic_SetBGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define suite_GetBGColor(self,red,green,blue) \
 (graphic_GetBGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define suite_GetHorizontalResolution(self) \
 (graphic_GetHorizontalResolution(((&(self)->header.view))->drawable))
#define suite_GetVerticalResolution(self) \
 (graphic_GetVerticalResolution(((&(self)->header.view))->drawable))
#define suite_GetIM(self) \
 (((&(self)->header.view))->imPtr)
#define suite_GetDrawable(self) \
 (((&(self)->header.view))->drawable)
#define suite_GetColormap(self) \
 (graphic_GetColormap(((&(self)->header.view))->drawable))
#define suite_SetColormap(self,cmap) \
 (graphic_SetColormap(((&(self)->header.view))->drawable, cmap))
#define suite_GetInheritedColormap(self) \
 (graphic_GetInheritedColormap(((&(self)->header.view))->drawable))
#define suite_SetInheritedColormap(self,cmap) \
 (graphic_SetInheritedColormap(((&(self)->header.view))->drawable, cmap))
#define suite_ClearInheritedColormap(self) \
 (graphic_ClearInheritedColormap(((&(self)->header.view))->drawable))
#define suite_CurrentColormap(self) \
 (graphic_CurrentColormap(((&(self)->header.view))->drawable))
#define suite_EnclosedXToLocalX(self,xvalue) \
   ((xvalue)-graphic_GetEnclosedLeft(((&(self)->header.view))->drawable)+graphic_GetLogicalLeft(((&(self)->header.view))->drawable))
#define suite_EnclosedYToLocalY(self,yvalue) \
    ((yvalue)-graphic_GetEnclosedTop(((&(self)->header.view))->drawable)+graphic_GetLogicalTop(((&(self)->header.view))->drawable))
#define suite_GetDataObject(self) \
 (((&(self)->header.view))->dataobject)
#define suite_DisplayClass(self) \
 (graphic_DisplayClass(((&(self)->header.view))->drawable ))
#define suite_ClearColors(self) \
 (graphic_ClearColors(((&(self)->header.view))->drawable))
#define suite_SetOptions(self,options) \
    ((* ((void (*)())((self)->header.suite_methods->routines[59]))) (self,options))
#define suite_SetDimensions(self,width,height) \
    ((* ((void (*)())((self)->header.suite_methods->routines[60]))) (self,width,height))
#define suite_BuildFont(self,font_name,height) \
    ((* ((struct fontdesc * (*)())((self)->header.suite_methods->routines[61]))) (self,font_name,height))
#define suite_DrawBoundedString(self,string,font,bounds,center,middle,mode) \
    ((* ((void (*)())((self)->header.suite_methods->routines[62]))) (self,string,font,bounds,center,middle,mode))
#define suite_ClearBoundedString(self,string,font,bounds,center,middle,mode) \
    ((* ((void (*)())((self)->header.suite_methods->routines[63]))) (self,string,font,bounds,center,middle,mode))
#define suite_Within(self,x,y,bounds) \
    ((* ((boolean (*)())((self)->header.suite_methods->routines[64]))) (self,x,y,bounds))
#define suite_SetShrinkIcon(self,icon,icon_font_name,title,title_font_name) \
    ((* ((void (*)())((self)->header.suite_methods->routines[65]))) (self,icon,icon_font_name,title,title_font_name))
#define suite_Shrink(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[66]))) (self))
#define suite_ShrinkView(self,aptv) \
    ((* ((void (*)())((self)->header.suite_methods->routines[67]))) (self,aptv))
#define suite_Expand(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[68]))) (self))
#define suite_ExpandView(self,aptv) \
    ((* ((void (*)())((self)->header.suite_methods->routines[69]))) (self,aptv))
#define suite_ClearBody(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[70]))) (self))
#define suite_PrintObject(self,file,processor,finalFormat,topLevel,printer) \
    ((* ((void (*)())((self)->header.suite_methods->routines[71]))) (self,file,processor,finalFormat,topLevel,printer))
#define suite_PrintContinue(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[72]))) (self))
#define suite_OpenPrintStream(self,file,processor,format,level) \
    ((* ((boolean (*)())((self)->header.suite_methods->routines[73]))) (self,file,processor,format,level))
#define suite_ClosePrintStream(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[74]))) (self))
#define suite_SetPrintStream(self,stream) \
    ((* ((void (*)())((self)->header.suite_methods->routines[75]))) (self,stream))
#define suite_PreservePrintState(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[76]))) (self))
#define suite_RestorePrintState(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[77]))) (self))
#define suite_PrintBox(self,left,top,width,height,mode) \
    ((* ((void (*)())((self)->header.suite_methods->routines[78]))) (self,left,top,width,height,mode))
#define suite_PrintRoundBox(self,left,top,width,height,mode) \
    ((* ((void (*)())((self)->header.suite_methods->routines[79]))) (self,left,top,width,height,mode))
#define suite_PrintFilledRoundBox(self,left,top,width,height,mode,shade) \
    ((* ((void (*)())((self)->header.suite_methods->routines[80]))) (self,left,top,width,height,mode,shade))
#define suite_PrintLine(self,x1,y1,x2,y2) \
    ((* ((void (*)())((self)->header.suite_methods->routines[81]))) (self,x1,y1,x2,y2))
#define suite_PrintCircle(self,x1,y1,radius) \
    ((* ((void (*)())((self)->header.suite_methods->routines[82]))) (self,x1,y1,radius))
#define suite_PrintSlice(self,x1,y1,radius,start_angle,end_angle,shade_numerator,shade_denominator,mode) \
    ((* ((void (*)())((self)->header.suite_methods->routines[83]))) (self,x1,y1,radius,start_angle,end_angle,shade_numerator,shade_denominator,mode))
#define suite_PrintMoveTo(self,x,y) \
    ((* ((void (*)())((self)->header.suite_methods->routines[84]))) (self,x,y))
#define suite_PrintLineTo(self,x,y) \
    ((* ((void (*)())((self)->header.suite_methods->routines[85]))) (self,x,y))
#define suite_SetPrintOrigin(self,left,top) \
    ((* ((void (*)())((self)->header.suite_methods->routines[86]))) (self,left,top))
#define suite_SetPrintUnitDimensions(self,inch_width,inch_height) \
    ((* ((void (*)())((self)->header.suite_methods->routines[87]))) (self,inch_width,inch_height))
#define suite_SetPrintPageDimensions(self,inch_width,inch_height) \
    ((* ((void (*)())((self)->header.suite_methods->routines[88]))) (self,inch_width,inch_height))
#define suite_SetPrintResolution(self,pixels_per_inch) \
    ((* ((void (*)())((self)->header.suite_methods->routines[89]))) (self,pixels_per_inch))
#define suite_SetPrintOptions(self,options) \
    ((* ((void (*)())((self)->header.suite_methods->routines[90]))) (self,options))
#define suite_SetPrintLineWidth(self,width) \
    ((* ((void (*)())((self)->header.suite_methods->routines[91]))) (self,width))
#define suite_SetPrintGrayLevel(self,level) \
    ((* ((void (*)())((self)->header.suite_methods->routines[92]))) (self,level))
#define suite_SetPrintPath(self,path) \
    ((* ((void (*)())((self)->header.suite_methods->routines[93]))) (self,path))
#define suite_PrintPath(self,path) \
    ((* ((void (*)())((self)->header.suite_methods->routines[94]))) (self,path))
#define suite_PrintPathFilled(self,path) \
    ((* ((void (*)())((self)->header.suite_methods->routines[95]))) (self,path))
#define suite_SetPrintFont(self,font_name) \
    ((* ((void (*)())((self)->header.suite_methods->routines[96]))) (self,font_name))
#define suite_ResetPrintFont(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[97]))) (self))
#define suite_PrintString(self,x1,y1,string,mode) \
    ((* ((void (*)())((self)->header.suite_methods->routines[98]))) (self,x1,y1,string,mode))
#define suite_SetHelpString(self,string) \
    ((* ((void (*)())((self)->header.suite_methods->routines[99]))) (self,string))
#define suite_SetHelpFileName(self,file_name) \
    ((* ((void (*)())((self)->header.suite_methods->routines[100]))) (self,file_name))
#define suite_UseWaitCursor(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[101]))) (self))
#define suite_UseNormalCursor(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[102]))) (self))
#define suite_UseInvisibleCursor(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[103]))) (self))
#define suite_Query(self,query,default_response,response) \
    ((* ((long (*)())((self)->header.suite_methods->routines[104]))) (self,query,default_response,response))
#define suite_QueryFileName(self,query,response) \
    ((* ((long (*)())((self)->header.suite_methods->routines[105]))) (self,query,response))
#define suite_QueryDirectoryName(self,query,response) \
    ((* ((long (*)())((self)->header.suite_methods->routines[106]))) (self,query,response))
#define suite_Announce(self,message) \
    ((* ((long (*)())((self)->header.suite_methods->routines[107]))) (self,message))
#define suite_IconFont(self) \
	    (((&(self)->header.aptv))->icon_font)
#define suite_CursorFont(self) \
	    (((&(self)->header.aptv))->cursor_font)
#define suite_PrintStream(self) \
	    (((&(self)->header.aptv))->print_stream)
#define suite_Bounds(self) \
	    (&((&(self)->header.aptv))->enclosures[0].bound)
#define suite_BodyBounds(self) \
	    (&((&(self)->header.aptv))->enclosures[5].bound)
#define suite_BodyLeft(self) \
	    (aptv_BodyBounds((&(self)->header.aptv))->left)
#define suite_BodyTop(self) \
	    (aptv_BodyBounds((&(self)->header.aptv))->top)
#define suite_BodyWidth(self) \
	    (aptv_BodyBounds((&(self)->header.aptv))->width)
#define suite_BodyHeight(self) \
	    (aptv_BodyBounds((&(self)->header.aptv))->height)
#define suite_BodyCenter(self) \
	    (aptv_BodyLeft((&(self)->header.aptv)) + aptv_BodyWidth((&(self)->header.aptv))/2)
#define suite_BodyRight(self) \
	    (aptv_BodyLeft((&(self)->header.aptv)) + aptv_BodyWidth((&(self)->header.aptv)) - 1)
#define suite_BodyMiddle(self) \
	    (aptv_BodyTop((&(self)->header.aptv))  + aptv_BodyHeight((&(self)->header.aptv))/2)
#define suite_BodyBottom(self) \
	    (aptv_BodyTop((&(self)->header.aptv))  + aptv_BodyHeight((&(self)->header.aptv)) - 1)
#define suite_BypassUpdate(self) \
    (((&(self)->header.aptv))->bypass_update)
#define suite_CreateItem(self,name,datum) \
    ((* ((struct suite_item * (*)())((self)->header.suite_methods->routines[108]))) (self,name,datum))
#define suite_DestroyItem(self,item) \
    ((* ((void (*)())((self)->header.suite_methods->routines[109]))) (self,item))
#define suite_ClearAllItems(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[110]))) (self))
#define suite_ExposeItem(self,item) \
    ((* ((void (*)())((self)->header.suite_methods->routines[111]))) (self,item))
#define suite_HideItem(self,item) \
    ((* ((void (*)())((self)->header.suite_methods->routines[112]))) (self,item))
#define suite_Reset(self,state) \
    ((* ((long (*)())((self)->header.suite_methods->routines[113]))) (self,state))
#define suite_PassivateItem(self,item) \
    ((* ((void (*)())((self)->header.suite_methods->routines[114]))) (self,item))
#define suite_ActivateItem(self,item) \
    ((* ((void (*)())((self)->header.suite_methods->routines[115]))) (self,item))
#define suite_ItemActivated(self,item) \
    ((* ((boolean (*)())((self)->header.suite_methods->routines[116]))) (self,item))
#define suite_HighlightItem(self,item) \
    ((* ((long (*)())((self)->header.suite_methods->routines[117]))) (self,item))
#define suite_ItemHighlighted(self,item) \
    ((* ((boolean (*)())((self)->header.suite_methods->routines[118]))) (self,item))
#define suite_NormalizeItem(self,item) \
    ((* ((long (*)())((self)->header.suite_methods->routines[119]))) (self,item))
#define suite_ItemNormalized(self,item) \
    ((* ((boolean (*)())((self)->header.suite_methods->routines[120]))) (self,item))
#define suite_Apply(self,proc,anchor,datum) \
    ((* ((void (*)())((self)->header.suite_methods->routines[121]))) (self,proc,anchor,datum))
#define suite_Sort(self,mode,handler) \
    ((* ((void (*)())((self)->header.suite_methods->routines[122]))) (self,mode,handler))
#define suite_SelectedItems(self,number) \
    ((* ((struct suite_item ** (*)())((self)->header.suite_methods->routines[123]))) (self,number))
#define suite_SuiteAttribute(self,attribute) \
    ((* ((long (*)())((self)->header.suite_methods->routines[124]))) (self,attribute))
#define suite_SetSuiteAttribute(self,attribute) \
    ((* ((long (*)())((self)->header.suite_methods->routines[125]))) (self,attribute))
#define suite_ChangeSuiteAttribute(self,attribute) \
    ((* ((long (*)())((self)->header.suite_methods->routines[126]))) (self,attribute))
#define suite_ItemAttribute(self,item,attribute) \
    ((* ((long (*)())((self)->header.suite_methods->routines[127]))) (self,item,attribute))
#define suite_SetItemAttribute(self,item,attribute) \
    ((* ((long (*)())((self)->header.suite_methods->routines[128]))) (self,item,attribute))
#define suite_ChangeItemAttribute(self,item,attribute) \
    ((* ((long (*)())((self)->header.suite_methods->routines[129]))) (self,item,attribute))
#define suite_ItemOfDatum(self,datum) \
    ((* ((struct suite_item * (*)())((self)->header.suite_methods->routines[130]))) (self,datum))
#define suite_ItemsOfDatum(self,datum) \
    ((* ((struct suite_item ** (*)())((self)->header.suite_methods->routines[131]))) (self,datum))
#define suite_ItemOfName(self,name) \
    ((* ((struct suite_item * (*)())((self)->header.suite_methods->routines[132]))) (self,name))
#define suite_ItemsOfName(self,name) \
    ((* ((struct suite_item ** (*)())((self)->header.suite_methods->routines[133]))) (self,name))
#define suite_ItemAtPosition(self,position) \
    ((* ((struct suite_item * (*)())((self)->header.suite_methods->routines[134]))) (self,position))
#define suite_SetDebug(self,value) \
    ((* ((void (*)())((self)->header.suite_methods->routines[135]))) (self,value))
#define suite_HighlightTitle(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[136]))) (self))
#define suite_NormalizeTitle(self) \
    ((* ((void (*)())((self)->header.suite_methods->routines[137]))) (self))
#define suite_SetSuiteFGColor(self,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[138]))) (self,name,red,green,blue))
#define suite_SetSuiteBGColor(self,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[139]))) (self,name,red,green,blue))
#define suite_GetSuiteFGColor(self,rgb_vect) \
    ((* ((char * (*)())((self)->header.suite_methods->routines[140]))) (self,rgb_vect))
#define suite_GetSuiteBGColor(self,rgb_vect) \
    ((* ((char * (*)())((self)->header.suite_methods->routines[141]))) (self,rgb_vect))
#define suite_SetItemCaptionColor(self,item,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[142]))) (self,item,name,red,green,blue))
#define suite_SetItemFGColor(self,item,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[143]))) (self,item,name,red,green,blue))
#define suite_SetItemBGColor(self,item,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[144]))) (self,item,name,red,green,blue))
#define suite_SetActiveItemCaptionColor(self,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[145]))) (self,name,red,green,blue))
#define suite_SetActiveItemFGColor(self,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[146]))) (self,name,red,green,blue))
#define suite_SetActiveItemBGColor(self,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[147]))) (self,name,red,green,blue))
#define suite_GetActiveItemFGColor(self,rgb_vect) \
    ((* ((char * (*)())((self)->header.suite_methods->routines[148]))) (self,rgb_vect))
#define suite_GetActiveItemBGColor(self,rgb_vect) \
    ((* ((char * (*)())((self)->header.suite_methods->routines[149]))) (self,rgb_vect))
#define suite_SetPassiveItemCaptionColor(self,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[150]))) (self,name,red,green,blue))
#define suite_SetPassiveItemFGColor(self,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[151]))) (self,name,red,green,blue))
#define suite_SetPassiveItemBGColor(self,name,red,green,blue) \
    ((* ((void (*)())((self)->header.suite_methods->routines[152]))) (self,name,red,green,blue))
#define suite_GetPassiveItemFGColor(self,rgb_vect) \
    ((* ((char * (*)())((self)->header.suite_methods->routines[153]))) (self,rgb_vect))
#define suite_GetPassiveItemBGColor(self,rgb_vect) \
    ((* ((char * (*)())((self)->header.suite_methods->routines[154]))) (self,rgb_vect))
#define suite_ParseRGB(self,rgb_string,rgb_vect) \
    ((* ((void (*)())((self)->header.suite_methods->routines[155]))) (self,rgb_string,rgb_vect))
#define suite_CurrentItem(self) \
		    ((self)->current_item)
#define suite_ItemCount(self) \
		    ((self)->items ? vector_Count((self)->items):0)
#define suite_ItemAnchor(self,item) \
	    (item->anchor)
#define suite_ItemDataObject(self,item) \
	    (item->dataobject)
#define suite_ItemViewObject(self,item) \
	    (item->viewobject)
#define suite_ItemExposed(self,item) \
	    (item->exposed)
#define suite_SetExceptionHandler(self,handler) \
((self)->exception_handler)
#define suite_ExceptionCode(self) \
		    ((self)->exception_status)
#define suite_ExceptionItem(self) \
		    ((self)->exception_item)
#define suite_FirstVisible(self) \
		    ((self)->firstvisible)
#define suite_LastVisible(self) \
		    ((self)->lastvisible)
#define suite_SetFirstVisible(self,item) \
	    (((self))->newfirstvisible = item)
#define suite_SetLastVisible(self,item) \
	    (((self))->lastvisible = item)

#define suite_NewFromObject(self) \
    ((* ((struct suite * (*)())((self)->header.suite_methods->info->procs->routines[0]))) (&suite_classheader, (self)->header.suite_methods->info->versionnumber))
#define suite_New() \
    (*((struct suite * (*)()) (suite_CLASSPROCEDURES->routines[0])))(&suite_classheader,suite_VERSION)
#define suite_Initialize(self) \
    (*((void (*)()) (suite_CLASSPROCEDURES->routines[2])))(&suite_classheader,self, suite_VERSION)

#define suite_Destroy(self) \
    ((* ((void (*)()) ((self)->header.suite_methods->info->procs->routines[1]))) (&suite_classheader, self))
#define suite_Finalize(self) \
    (*((void (*)()) (suite_CLASSPROCEDURES->routines[3])))(&suite_classheader,self)

#define suite_InitializeObject() \
    (*((boolean (*)()) (suite_CLASSPROCEDURES->routines[5])))(&suite_classheader)
#define suite_FinalizeObject() \
    (*((void (*)()) (suite_CLASSPROCEDURES->routines[6])))(&suite_classheader)
#define suite_InitializeClass() \
    (*((boolean (*)()) (suite_CLASSPROCEDURES->routines[7])))(&suite_classheader)
#define suite_Create(suite_Specification,anchor) \
    (*((struct suite * (*)()) (suite_CLASSPROCEDURES->routines[8])))(&suite_classheader,suite_Specification,anchor)


#endif /* !defined(suite_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_suite ) && !defined(class_StaticEntriesOnly)*/

