 
#ifndef layoutview_DEFINED
#define layoutview_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 layoutv.ch and will be
 * overwritten.  Make changes to layoutv.ch instead.
 */ 
 
#ifndef class_StaticInfoOnly
/* 
 * The following information was copied, as-is, from layoutv.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.
* $
*/

/* $ACIS$ */

 

/* layoutview.ch - layout view definition and interface */
#define layoutview_VERSION 1


/* internal interfaces */

#define getView(self) ((self) -> header.view)
#define getLayout(self) ((struct layout *)layoutview_GetDataObject(self))

/* list of views (of a dataobject) */

/*  List of child views for this layout.

Since the child views are created at a later time than the components they
display, and since as views they belong to layoutv rather than layout, they
need a separate data structure.  The viewlist provides this service, listing
all child views and the components to which they correspond.  Order in this
simple linked list is not significant.  There should be at most one viewlist
entry per component.  Use the findviewlist or findview function to find it
and create it if necessary.
*/

struct viewlist {
    struct viewlist *nextview;		/* next view on list */
    struct view	*child;			/* child view - viewing this data object */
    struct component *component;	/* component for the child */
};

#define forallsubviews(self, v) for (v = (self)->subviews; v != NULL; v = v->nextview)
#define vChild(v) ((v)->child)
#define vComponent(v) ((v)->component)

#define vLeft(self, c)  (cLeft(c) <= 0 ? 0 : cLeft(c))
#define vTop(self, c)  (cTop(c) <= 0 ? 0 : cTop(c))
#define vRight(self, c) (cWidth(c) <= 0 ? layoutview_GetVisualWidth(self) : cRight(c))
#define vBottom(self, c) (cHeight(c) <= 0 ? layoutview_GetVisualHeight(self) : cBottom(c))
#define vWidth(self, c) (vRight(self, c) - vLeft(self, c))
#define vHeight(self, c) (vBottom(self, c) - vTop(self, c))

/* operating mode cases */

enum hitmode_enum {
    HIT_EXEC,			    /* in user mode */
    HIT_AUTHORING,		    /* in authoring mode */
    HIT_INITIALIZING,		    /* in authoring mode, selection active */
    HIT_DRAGGING,		    /* in authoring mode, dragging a component */
    HIT_CREATING};		    /* in authoring mode, creating a component */

enum createmode_enum {
    CREATE_NULL,		    /* do not fill in new components */
    CREATE_FILLER,		    /* fill new components with filler object */
    CREATE_PASTE};		    /* past into new components */

/* Interface definition */





/* end of layoutview.ch */



/* 
 * End of information copied from layoutv.ch.
 */ 
 
#endif /* class_StaticInfoOnly *//* 
 * Include the superclass information
 */ 
#define dontDefineRoutinesFor_view
#include "view.ih"
#undef dontDefineRoutinesFor_view

 
 
#ifndef class_StaticInfoOnly
/* 
 * Data structure for layoutview 
 */ 
struct layoutview { 
    union {
	struct basicobject_methods *layoutview_methods;
	struct traced traced;
	struct observable observable;
	struct view view;
    } header;
	boolean	hasInputFocus;		    /* layout has the input focus */
	boolean	updateRequested;	    /* an update has been requested */
	long lastUpdate;		    /* modification timestamp of last update */
	struct keystate	*keystate;	    /* current keystate for the layout */
	struct menulist	*menulist;	    /* dup of general layout menu list */
	struct cursor *authoringCursor;	    /* cursor for layout authoring mode */
	struct viewlist	*subviews;	    /* list of imbedded views */
	enum hitmode_enum hitmode;	    /* current operating mode */
	enum createmode_enum createmode;    /* way to fill in new components */
	boolean	dragleft, dragright, dragtop, dragbottom;   /* which edges are being dragged */
	long dragx, dragy;		    /* mouse position at beginning of drag */
	long rubberleft, rubbertop, rubberwidth, rubberheight;	/* rubberband box */
	struct component *selection;	    /* currently selected component */
	int granularity;		    /* resolution for object placement */

};

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

#endif /* class_StaticInfoOnly */

#ifndef class_StaticInfoOnly

#ifndef layoutview_PROGRAMMERVERSION
#define layoutview_PROGRAMMERVERSION 1
#endif /* layoutview_PROGRAMMERVERSION */

#ifdef layoutview_VERSION
#undef layoutview_VERSION
#endif /* layoutview_VERSION */
#define layoutview_VERSION ((((layoutview_PROGRAMMERVERSION << 16) ^ (79 << 8) ^ sizeof(struct layoutview)) & 0x7ffff) + 0x80000 + (2 << 20))


#endif /* class_StaticInfoOnly */
#define layoutview_StaticLoadOnlyThisClass()  \
{ extern struct classinfo *layoutview__GetClassInfo(); \
 extern struct classheader *layoutv_classheader_StaticExport; \
  (void) class_EnterInfo(NULL, layoutv_classheader_StaticExport->name, layoutview__GetClassInfo, NULL, layoutv_classheader_StaticExport->namekey); } 
 
#define layoutview_StaticLoad()  \
    { \
    view_StaticLoad(); \
    layoutview_StaticLoadOnlyThisClass();  \
    } 
 
#define layoutview_StaticEntry  {layoutview_StaticLoad()} 
 
#define layoutv_StaticEntry  {layoutview_StaticLoad()} 
 
#ifndef class_StaticInfoOnly
static struct classheader layoutview_classheader = {
    layoutview_VERSION,
    "layoutview",
    "layoutv",
    (struct basicobject_methods *) &class_RoutineStruct,
};

#define layoutview_CLASSPROCEDURES (layoutview_classheader.classprocedures)
int layoutv_classref_;
#endif /* class_StaticInfoOnly */

#endif /* layoutview_DEFINED */

#if !defined(layoutview_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_layoutview) && !defined(class_StaticEntriesOnly)
#define layoutview_ROUTINESDEFINED

#define layoutview_Reference(self) \
 (((&(self)->header.traced))->refcount++)
#define layoutview_UnReference(self) \
 ((((&(self)->header.traced))->refcount>0)?((&(self)->header.traced))->refcount--:0)
#define layoutview_ReferenceCount(self) \
 (((&(self)->header.traced))->refcount)
#define layoutview_AddObserver(self,observer) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[0]))) (self,observer))
#define layoutview_IsObserver(self,observer) \
    ((* ((boolean (*)())((self)->header.layoutview_methods->routines[1]))) (self,observer))
#define layoutview_RemoveObserver(self,observer) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[2]))) (self,observer))
#define layoutview_NotifyObservers(self,value) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[3]))) (self,value))
#define layoutview_ObservedChanged(self,changed,value) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[4]))) (self,changed,value))
#define layoutview_AddRecipient(self,trigger,rcvr,func,rock) \
    ((* ((boolean (*)())((self)->header.layoutview_methods->routines[5]))) (self,trigger,rcvr,func,rock))
#define layoutview_DeleteRecipient(self,trigger,rcvr) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[6]))) (self,trigger,rcvr))
#define layoutview_PullTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[7]))) (self,trigger))
#define layoutview_DisableTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[8]))) (self,trigger))
#define layoutview_EnableTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[9]))) (self,trigger))
#define layoutview_DisableCount(self,trigger) \
    ((* ((long (*)())((self)->header.layoutview_methods->routines[10]))) (self,trigger))
#define layoutview_SetName(self,name) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[11]))) (self,name))
#define layoutview_GetName(self) \
    ((* ((struct atomlist * (*)())((self)->header.layoutview_methods->routines[12]))) (self))
#define layoutview_GetClass(self) \
    ((* ((struct atomlist * (*)())((self)->header.layoutview_methods->routines[13]))) (self))
#define layoutview_GetParameter(self,name,type,datum) \
    ((* ((short (*)())((self)->header.layoutview_methods->routines[14]))) (self,name,type,datum))
#define layoutview_GetResource(self,name,class,type,datum) \
    ((* ((short (*)())((self)->header.layoutview_methods->routines[15]))) (self,name,class,type,datum))
#define layoutview_GetManyParameters(self,resources,name,class) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[16]))) (self,resources,name,class))
#define layoutview_PostResource(self,path,type,datum) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[17]))) (self,path,type,datum))
#define layoutview_InsertViewRegion(self,parent,region) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[18]))) (self,parent,region))
#define layoutview_InsertView(self,parent,enclosingRect) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[19]))) (self,parent,enclosingRect))
#define layoutview_InsertViewSize(self,EnclosingView,xOriginInParent,yOriginInParent,width,height) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[20]))) (self,EnclosingView,xOriginInParent,yOriginInParent,width,height))
#define layoutview_SetDataObject(self,dataobject) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[21]))) (self,dataobject))
#define layoutview_GetApplicationLayer(self) \
    ((* ((struct view * (*)())((self)->header.layoutview_methods->routines[22]))) (self))
#define layoutview_DeleteApplicationLayer(self,applicationLayer) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[23]))) (self,applicationLayer))
#define layoutview_DescriptionObject(self,format,rock) \
    ((* ((char * (*)())((self)->header.layoutview_methods->routines[24]))) (self,format,rock))
#define layoutview_Describe(self,format,file,rock) \
    ((* ((enum view_DescriberErrs (*)())((self)->header.layoutview_methods->routines[25]))) (self,format,file,rock))
#define layoutview_FullUpdate(self,type,left,top,width,right) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[26]))) (self,type,left,top,width,right))
#define layoutview_Update(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[27]))) (self))
#define layoutview_Print(self,file,processor,finalFormat,topLevel) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[28]))) (self,file,processor,finalFormat,topLevel))
#define layoutview_Hit(self,action,x,y,numberOfClicks) \
    ((* ((struct view * (*)())((self)->header.layoutview_methods->routines[29]))) (self,action,x,y,numberOfClicks))
#define layoutview_DesiredSize(self,width,height,pass,dWidth,dheight) \
    ((* ((enum view_DSattributes (*)())((self)->header.layoutview_methods->routines[30]))) (self,width,height,pass,dWidth,dheight))
#define layoutview_GetOrigin(self,width,height,originX,originY) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[31]))) (self,width,height,originX,originY))
#define layoutview_ReceiveInputFocus(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[32]))) (self))
#define layoutview_LoseInputFocus(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[33]))) (self))
#define layoutview_ReceiveColormap(self,cmap) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[34]))) (self,cmap))
#define layoutview_LoseColormap(self,cmap) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[35]))) (self,cmap))
#define layoutview_WantUpdate(self,requestor) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[36]))) (self,requestor))
#define layoutview_WantInputFocus(self,requestor) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[37]))) (self,requestor))
#define layoutview_WantColormap(self,requestor,cmap) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[38]))) (self,requestor,cmap))
#define layoutview_WantNewSize(self,requestor) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[39]))) (self,requestor))
#define layoutview_WantHandler(self,handlerName) \
    ((* ((struct basicobject * (*)())((self)->header.layoutview_methods->routines[40]))) (self,handlerName))
#define layoutview_WantInformation(self,key) \
    ((* ((char * (*)())((self)->header.layoutview_methods->routines[41]))) (self,key))
#define layoutview_PostKeyState(self,keystate) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[42]))) (self,keystate))
#define layoutview_PostMenus(self,menulist) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[43]))) (self,menulist))
#define layoutview_PostCursor(self,rec,cursor) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[44]))) (self,rec,cursor))
#define layoutview_RetractCursor(self,cursor) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[45]))) (self,cursor))
#define layoutview_RetractViewCursors(self,requestor) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[46]))) (self,requestor))
#define layoutview_PostDefaultHandler(self,handlerName,handler) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[47]))) (self,handlerName,handler))
#define layoutview_GetInterface(self,type) \
    ((* ((char * (*)())((self)->header.layoutview_methods->routines[48]))) (self,type))
#define layoutview_LinkTree(self,parent) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[49]))) (self,parent))
#define layoutview_UnlinkTree(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[50]))) (self))
#define layoutview_IsAncestor(self,possibleAncestor) \
    ((* ((boolean (*)())((self)->header.layoutview_methods->routines[51]))) (self,possibleAncestor))
#define layoutview_UnlinkNotification(self,unlinkedTree) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[52]))) (self,unlinkedTree))
#define layoutview_GetWindowManagerType(self) \
    ((* ((char * (*)())((self)->header.layoutview_methods->routines[53]))) (self))
#define layoutview_GetDevice(self) \
    ((* ((long (*)())((self)->header.layoutview_methods->routines[54]))) (self))
#define layoutview_InitChildren(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[55]))) (self))
#define layoutview_CanView(self,TypeName) \
    ((* ((boolean (*)())((self)->header.layoutview_methods->routines[56]))) (self,TypeName))
#define layoutview_LoseSelectionOwnership(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[57]))) (self))
#define layoutview_WriteSelection(self,out) \
    ((* ((long (*)())((self)->header.layoutview_methods->routines[58]))) (self,out))
#define layoutview_MoveToPt(self,Pt) \
 (graphic_MoveToPt(((&(self)->header.view))->drawable,(Pt)))
#define layoutview_MoveTo(self,NewX,NewY) \
 (graphic_MoveTo(((&(self)->header.view))->drawable,(NewX),(NewY)))
#define layoutview_Move(self,DeltaX,DeltaY) \
 (graphic_Move(((&(self)->header.view))->drawable,(DeltaX),(DeltaY)))
#define layoutview_GetLogicalBounds(self,Rect) \
 (graphic_GetLogicalBounds(((&(self)->header.view))->drawable,(Rect)))
#define layoutview_GetLogicalBoundsSize(self,x,y,width,height) \
 (graphic_GetLogicalBoundsSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define layoutview_GetLogicalRight(self) \
 (graphic_GetLogicalRight(((&(self)->header.view))->drawable))
#define layoutview_GetLogicalBottom(self) \
 (graphic_GetLogicalBottom(((&(self)->header.view))->drawable))
#define layoutview_GetLogicalLeft(self) \
 (graphic_GetLogicalLeft(((&(self)->header.view))->drawable))
#define layoutview_GetLogicalHeight(self) \
 (graphic_GetLogicalHeight((((&(self)->header.view))->drawable)))
#define layoutview_GetLogicalWidth(self) \
 (graphic_GetLogicalWidth((((&(self)->header.view))->drawable)))
#define layoutview_GetLogicalTop(self) \
 (graphic_GetLogicalTop((((&(self)->header.view))->drawable)))
#define layoutview_SetVisualRegion(self,region) \
 (graphic_SetVisualRegion(((&(self)->header.view))->drawable, (region)))
#define layoutview_GetVisualRegion(self,region) \
 (graphic_GetVisualRegion(((&(self)->header.view))->drawable, (region)))
#define layoutview_GetVisualBounds(self,Rect) \
 (graphic_GetVisualBounds(((&(self)->header.view))->drawable,(Rect)))
#define layoutview_GetVisualBoundsSize(self,x,y,width,height) \
 (graphic_GetVisualBoundsSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define layoutview_GetVisualRight(self) \
 (graphic_GetVisualRight(((&(self)->header.view))->drawable))
#define layoutview_GetVisualBottom(self) \
 (graphic_GetVisualBottom(((&(self)->header.view))->drawable))
#define layoutview_GetVisualWidth(self) \
 (graphic_GetVisualWidth((((&(self)->header.view))->drawable)))
#define layoutview_GetVisualHeight(self) \
 (graphic_GetVisualHeight((((&(self)->header.view))->drawable)))
#define layoutview_GetVisualLeft(self) \
 (graphic_GetVisualLeft((((&(self)->header.view))->drawable)))
#define layoutview_GetVisualTop(self) \
 (graphic_GetVisualTop((((&(self)->header.view))->drawable)))
#define layoutview_GetEnclosedBounds(self,Rect) \
 (graphic_GetEnclosedBounds(((&(self)->header.view))->drawable, (Rect)))
#define layoutview_GetEnclosedBoundsSize(self,x,y,width,height) \
 (graphic_GetEnclosedBoundsSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define layoutview_GetEnclosedRight(self) \
 (graphic_GetEnclosedRight(((&(self)->header.view))->drawable))
#define layoutview_GetEnclosedBottom(self) \
 (graphic_GetEnclosedBottom(((&(self)->header.view))->drawable))
#define layoutview_GetEnclosedLeft(self) \
 (graphic_GetEnclosedLeft((((&(self)->header.view))->drawable)))
#define layoutview_GetEnclosedTop(self) \
 (graphic_GetEnclosedTop((((&(self)->header.view))->drawable)))
#define layoutview_GetEnclosedWidth(self) \
 (graphic_GetEnclosedWidth((((&(self)->header.view))->drawable)))
#define layoutview_GetEnclosedHeight(self) \
 (graphic_GetEnclosedHeight((((&(self)->header.view))->drawable)))
#define layoutview_GetCurrentPt(self,Pt) \
 (graphic_GetCurrentPt(((&(self)->header.view))->drawable,(Pt)))
#define layoutview_DrawLineToPt(self,LineEnd) \
 (graphic_DrawLineToPt(((&(self)->header.view))->drawable,(LineEnd)))
#define layoutview_DrawLineTo(self,XEnd,YEnd) \
 (graphic_DrawLineTo(((&(self)->header.view))->drawable,(XEnd), (YEnd)))
#define layoutview_DrawLine(self,DeltaX,DeltaY) \
 (graphic_DrawLine(((&(self)->header.view))->drawable, (DeltaX), (DeltaY)))
#define layoutview_DrawString(self,Text,Operation) \
 (graphic_DrawString(((&(self)->header.view))->drawable, (Text), (Operation)))
#define layoutview_DrawText(self,Text,TextLength,Operation) \
 (graphic_DrawText(((&(self)->header.view))->drawable, (Text), (TextLength), (Operation)))
#define layoutview_SetSpaceShim(self,Amount) \
 (graphic_SetSpaceShim(((&(self)->header.view))->drawable,(Amount)))
#define layoutview_GetSpaceShim(self) \
 (graphic_GetSpaceShim(((&(self)->header.view))->drawable))
#define layoutview_SetFont(self,ChosenFont) \
 (graphic_SetFont(((&(self)->header.view))->drawable, (ChosenFont)))
#define layoutview_GetFont(self) \
 (graphic_GetFont(((&(self)->header.view))->drawable))
#define layoutview_DrawRect(self,Rect) \
 (graphic_DrawRect(((&(self)->header.view))->drawable,(Rect)))
#define layoutview_DrawRectSize(self,x,y,width,height) \
 (graphic_DrawRectSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define layoutview_DrawTrapezoid(self,topX,topY,topWidth,bottomX,bottomY,bottomWidth) \
 (graphic_DrawTrapezoid(((&(self)->header.view))->drawable,(topX),(topY),(topWidth),(bottomX),(bottomY),(bottomWidth)))
#define layoutview_DrawPolygon(self,PointArray,PointCount) \
 (graphic_DrawPolygon(((&(self)->header.view))->drawable,(PointArray), (PointCount)))
#define layoutview_DrawPath(self,PointArray,PointCount) \
 (graphic_DrawPath(((&(self)->header.view))->drawable,(PointArray), (PointCount)))
#define layoutview_DrawOval(self,Rect) \
 (graphic_DrawOval(((&(self)->header.view))->drawable,(Rect)))
#define layoutview_DrawOvalSize(self,x,y,width,height) \
 (graphic_DrawOvalSize(((&(self)->header.view))->drawable, (x), (y), (width), (height)))
#define layoutview_DrawArc(self,EnclRect,StartAngle,OffsetAngle) \
 (graphic_DrawArc(((&(self)->header.view))->drawable,(EnclRect),(StartAngle),(OffsetAngle)))
#define layoutview_DrawArcSize(self,x,y,width,height,StartAngle,OffsetAngle) \
 (graphic_DrawArcSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (StartAngle), (OffsetAngle)))
#define layoutview_DrawRRect(self,OuterBox,InnerBox) \
 (graphic_DrawRRect(((&(self)->header.view))->drawable, (OuterBox), (InnerBox)))
#define layoutview_DrawRRectSize(self,x,y,width,height,cornerWidth,cornerHeight) \
 (graphic_DrawRRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (cornerWidth), (cornerHeight)))
#define layoutview_DrawRgn(self,Rgn) \
 (graphic_DrawRgn(((&(self)->header.view))->drawable,(Rgn)))
#define layoutview_FillRect(self,Rect,Tile) \
 (graphic_FillRect(((&(self)->header.view))->drawable, (Rect),(Tile)))
#define layoutview_FillRectSize(self,x,y,width,height,Tile) \
 (graphic_FillRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (Tile)))
#define layoutview_FillTrapezoid(self,topX,topY,topWidth,bottomX,bottomY,bottomWidth,Tile) \
 (graphic_FillTrapezoid(((&(self)->header.view))->drawable, (topX), (topY), (topWidth), (bottomX), (bottomY), (bottomWidth), (Tile)))
#define layoutview_FillPolygon(self,PointArray,PointCount,Tile) \
 (graphic_FillPolygon(((&(self)->header.view))->drawable, (PointArray), (PointCount), (Tile)))
#define layoutview_FillOval(self,Rect,Tile) \
 (graphic_FillOval(((&(self)->header.view))->drawable, (Rect), (Tile)))
#define layoutview_FillOvalSize(self,x,y,width,height,Tile) \
 (graphic_FillOvalSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (Tile)))
#define layoutview_FillArc(self,EnclRect,StartAngle,OffsetAngle,Tile) \
 (graphic_FillArc(((&(self)->header.view))->drawable, (EnclRect), (StartAngle), (OffsetAngle),(Tile)))
#define layoutview_FillArcSize(self,x,y,width,height,StartAngle,OffsetAngle,Tile) \
 (graphic_FillArcSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (StartAngle), (OffsetAngle), (Tile)))
#define layoutview_FillRRect(self,OuterBox,InnerBox,Tile) \
 (graphic_FillRRect(((&(self)->header.view))->drawable, (OuterBox), (InnerBox), (Tile)))
#define layoutview_FillRRectSize(self,x,y,width,height,cornerWidth,cornerHeight,Tile) \
 (graphic_FillRRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (cornerWidth), (cornerHeight), (Tile)))
#define layoutview_FillRgn(self,Rgn,Tile) \
 (graphic_FillRgn(((&(self)->header.view))->drawable, (Rgn), (Tile)))
#define layoutview_EraseRect(self,Rect) \
 (graphic_EraseRect(((&(self)->header.view))->drawable, (Rect)))
#define layoutview_EraseRectSize(self,x,y,width,height) \
 (graphic_EraseRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height)))
#define layoutview_EraseVisualRect(self) \
 (graphic_EraseVisualRect(((&(self)->header.view))->drawable))
#define layoutview_BitBlt(self,SrcRect,DestView,DstOrigin,ClipRectList) \
 (graphic_BitBlt(((&(self)->header.view))->drawable,(SrcRect), (((struct view *)(DestView))->drawable), (DstOrigin), (ClipRectList)))
#define layoutview_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 layoutview_SetBitAtLoc(self,XPos,YPos,NewValue) \
 (graphic_SetBitAtLoc(((&(self)->header.view))->drawable, (XPos), (YPos), (NewValue)))
#define layoutview_MoveLogicalOrigin(self,DeltaX,DeltaY) \
 (graphic_MoveLogicalOrigin(((&(self)->header.view))->drawable,(DeltaX), (DeltaY)))
#define layoutview_SetLogicalOrigin(self,NewX,NewY) \
 (graphic_SetLogicalOrigin(((&(self)->header.view))->drawable,(NewX), (NewY)))
#define layoutview_SetLogicalOriginPt(self,Pt) \
 (graphic_SetLogicalOriginPt(((&(self)->header.view))->drawable,(Pt)))
#define layoutview_SetClippingRegion(self,region) \
 (graphic_SetClippingRegion(((&(self)->header.view))->drawable, (region)))
#define layoutview_GetClippingRegion(self,region) \
 (graphic_GetClippingRegion(((&(self)->header.view))->drawable, (region)))
#define layoutview_SetClippingRect(self,ClipRect) \
 (graphic_SetClippingRect(((&(self)->header.view))->drawable,(ClipRect)))
#define layoutview_SetClippingRectSize(self,x,y,width,height) \
 (graphic_SetClippingRectSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define layoutview_ClearClippingRect(self) \
 (graphic_ClearClippingRect(((&(self)->header.view))->drawable))
#define layoutview_GetClippingRect(self,Rect) \
 (graphic_GetClippingRect(((&(self)->header.view))->drawable,(Rect)))
#define layoutview_SetLineWidth(self,NewLineWidth) \
 (graphic_SetLineWidth(((&(self)->header.view))->drawable, (NewLineWidth)))
#define layoutview_GetLineWidth(self) \
 (graphic_GetLineWidth(((&(self)->header.view))->drawable))
#define layoutview_SetLineDash(self,dashPattern,dashOffset,dashType) \
 (graphic_SetLineDash(((&(self)->header.view))->drawable, (dashPattern), (dashOffset), (dashType)))
#define layoutview_GetLineDash(self,dashPattern,dashOffset,dashType) \
 (graphic_GetLineDash(((&(self)->header.view))->drawable, (dashPattern), (dashOffset), (dashType)))
#define layoutview_SetLineCap(self,NewLineCap) \
 (graphic_SetLineCap(((&(self)->header.view))->drawable, (NewLineCap)))
#define layoutview_GetLineCap(self) \
 (graphic_GetLineCap(((&(self)->header.view))->drawable))
#define layoutview_SetLineJoin(self,NewLineJoin) \
 (graphic_SetLineJoin(((&(self)->header.view))->drawable, (NewLineJoin)))
#define layoutview_GetLineJoin(self) \
 (graphic_GetLineJoin(((&(self)->header.view))->drawable))
#define layoutview_SetTransferMode(self,NewTransferMode) \
 (graphic_SetTransferMode(((&(self)->header.view))->drawable, (NewTransferMode)))
#define layoutview_GetTransferMode(self) \
 (graphic_GetTransferMode(((&(self)->header.view))->drawable))
#define layoutview_FlushGraphics(self) \
 (graphic_FlushGraphics(((&(self)->header.view))->drawable))
#define layoutview_WhitePattern(self) \
 (graphic_WhitePattern(((&(self)->header.view))->drawable))
#define layoutview_BlackPattern(self) \
 (graphic_BlackPattern(((&(self)->header.view))->drawable))
#define layoutview_GrayPattern(self,IntensityNum,IntensityDenom) \
 (graphic_GrayPattern(((&(self)->header.view))->drawable, (IntensityNum), (IntensityDenom)))
#define layoutview_SetPatternOrigin(self,xpos,ypos) \
  (graphic_SetPatternOrigin(((&(self)->header.view))->drawable, (xpos), (ypos)))
#define layoutview_GetPatternOrigin(self,xpos,ypos) \
  (graphic_GetPatternOrigin(((&(self)->header.view))->drawable, (xpos), (ypos)))
#define layoutview_SetForegroundColor(self,colorName,red,green,blue) \
 (graphic_SetForegroundColor(((&(self)->header.view))->drawable, (colorName), (red), (green), (blue)))
#define layoutview_GetForegroundColor(self,name,retred,retgreen,retblue) \
     (graphic_GetForegroundColor(((&(self)->header.view))->drawable, (name), (retred), (retgreen), (retblue)))
#define layoutview_SetBackgroundColor(self,colorName,red,green,blue) \
 (graphic_SetBackgroundColor(((&(self)->header.view))->drawable, (colorName), (red),(green),(blue)))
#define layoutview_GetBackgroundColor(self,name,retred,retgreen,retblue) \
 (graphic_GetBackgroundColor(((&(self)->header.view))->drawable, (name), (retred), (retgreen),(retblue)))
#define layoutview_SetFGColor(self,red,green,blue) \
 (graphic_SetFGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define layoutview_GetFGColor(self,red,green,blue) \
 (graphic_GetFGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define layoutview_SetBGColor(self,red,green,blue) \
 (graphic_SetBGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define layoutview_GetBGColor(self,red,green,blue) \
 (graphic_GetBGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define layoutview_GetHorizontalResolution(self) \
 (graphic_GetHorizontalResolution(((&(self)->header.view))->drawable))
#define layoutview_GetVerticalResolution(self) \
 (graphic_GetVerticalResolution(((&(self)->header.view))->drawable))
#define layoutview_GetIM(self) \
 (((&(self)->header.view))->imPtr)
#define layoutview_GetDrawable(self) \
 (((&(self)->header.view))->drawable)
#define layoutview_GetColormap(self) \
 (graphic_GetColormap(((&(self)->header.view))->drawable))
#define layoutview_SetColormap(self,cmap) \
 (graphic_SetColormap(((&(self)->header.view))->drawable, cmap))
#define layoutview_GetInheritedColormap(self) \
 (graphic_GetInheritedColormap(((&(self)->header.view))->drawable))
#define layoutview_SetInheritedColormap(self,cmap) \
 (graphic_SetInheritedColormap(((&(self)->header.view))->drawable, cmap))
#define layoutview_ClearInheritedColormap(self) \
 (graphic_ClearInheritedColormap(((&(self)->header.view))->drawable))
#define layoutview_CurrentColormap(self) \
 (graphic_CurrentColormap(((&(self)->header.view))->drawable))
#define layoutview_EnclosedXToLocalX(self,xvalue) \
   ((xvalue)-graphic_GetEnclosedLeft(((&(self)->header.view))->drawable)+graphic_GetLogicalLeft(((&(self)->header.view))->drawable))
#define layoutview_EnclosedYToLocalY(self,yvalue) \
    ((yvalue)-graphic_GetEnclosedTop(((&(self)->header.view))->drawable)+graphic_GetLogicalTop(((&(self)->header.view))->drawable))
#define layoutview_GetDataObject(self) \
 (((&(self)->header.view))->dataobject)
#define layoutview_DisplayClass(self) \
 (graphic_DisplayClass(((&(self)->header.view))->drawable ))
#define layoutview_ClearColors(self) \
 (graphic_ClearColors(((&(self)->header.view))->drawable))
#define layoutview_SetSelection(self,c) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[59]))) (self,c))
#define layoutview_SetSelectionSize(self,left,top,width,height) \
    ((* ((boolean (*)())((self)->header.layoutview_methods->routines[60]))) (self,left,top,width,height))
#define layoutview_DestroyComponent(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[61]))) (self))
#define layoutview_ToggleDebug(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[62]))) (self))
#define layoutview_SetRunMode(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[63]))) (self))
#define layoutview_SetInitMode(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[64]))) (self))
#define layoutview_SetAuthoringMode(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[65]))) (self))
#define layoutview_Paste(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[66]))) (self))
#define layoutview_SetChildByName(self,dataname) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[67]))) (self,dataname))
#define layoutview_SetChild(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[68]))) (self))
#define layoutview_Promote(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[69]))) (self))
#define layoutview_Demote(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[70]))) (self))
#define layoutview_MakeBackground(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[71]))) (self))
#define layoutview_MakeVariable(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[72]))) (self))
#define layoutview_MakeFixed(self) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[73]))) (self))
#define layoutview_SetCreateMode(self,createmode) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[74]))) (self,createmode))
#define layoutview_SetGranularity(self,granularity) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[75]))) (self,granularity))
#define layoutview_ReplaceComponent(self,c,dataname) \
    ((* ((void (*)())((self)->header.layoutview_methods->routines[76]))) (self,c,dataname))
#define layoutview_FindSubview(self,c) \
    ((* ((struct view * (*)())((self)->header.layoutview_methods->routines[77]))) (self,c))
#define layoutview_RemoveSubview(self,child) \
    ((* ((struct component * (*)())((self)->header.layoutview_methods->routines[78]))) (self,child))
#define layoutview_Selection(self) \
 ((self)->selection)
#define layoutview_Hitmode(self) \
 ((self)->hitmode)
#define layoutview_Createmode(self) \
 ((self)->createmode)
#define layoutview_ApplyGranularity(self,v) \
 (((self))->granularity > 0 ? (((v) / ((self))->granularity) * ((self))->granularity) : (v))

#define layoutview_NewFromObject(self) \
    ((* ((struct layoutview * (*)())((self)->header.layoutview_methods->info->procs->routines[0]))) (&layoutview_classheader, (self)->header.layoutview_methods->info->versionnumber))
#define layoutview_New() \
    (*((struct layoutview * (*)()) (layoutview_CLASSPROCEDURES->routines[0])))(&layoutview_classheader,layoutview_VERSION)
#define layoutview_Initialize(self) \
    (*((void (*)()) (layoutview_CLASSPROCEDURES->routines[2])))(&layoutview_classheader,self, layoutview_VERSION)

#define layoutview_Destroy(self) \
    ((* ((void (*)()) ((self)->header.layoutview_methods->info->procs->routines[1]))) (&layoutview_classheader, self))
#define layoutview_Finalize(self) \
    (*((void (*)()) (layoutview_CLASSPROCEDURES->routines[3])))(&layoutview_classheader,self)

#define layoutview_InitializeObject(self) \
    (*((boolean (*)()) (layoutview_CLASSPROCEDURES->routines[5])))(&layoutview_classheader,self)
#define layoutview_FinalizeObject(self) \
    (*((void (*)()) (layoutview_CLASSPROCEDURES->routines[6])))(&layoutview_classheader,self)
#define layoutview_InitializeClass() \
    (*((boolean (*)()) (layoutview_CLASSPROCEDURES->routines[7])))(&layoutview_classheader)


#endif /* !defined(layoutview_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_layoutview ) && !defined(class_StaticEntriesOnly)*/

