 
#ifndef orgv_DEFINED
#define orgv_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 orgv.ch and will be
 * overwritten.  Make changes to orgv.ch instead.
 */ 
 
#ifndef class_StaticInfoOnly
/* 
 * The following information was copied, as-is, from orgv.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 Org View-Class

MODULE	org.ch

VERSION	1.0

AUTHOR	TC Peters
	Information Technology Center, Carnegie-Mellon University 

DESCRIPTION
	This is the suite of Methods that support the Org View-Class.

    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
  01/19/89	Created (TCP)
  05/24/89	Add ExposeDescription (TCP)
  05/25/89	Add Arrangement variable (TCP)
  06/06/89	Add override for Update method (TCP)
  06/07/89	Add First-time variable (TCP)
  08/23/89	Remove Create method (TCP)

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

#define  orgv_VERSION	      1






/*
    $Log: orgv.ch,v $
*Revision 1.15  1993/05/04  01:27:02  susan
*RCS Tree Split
*
*Revision 1.14.1.1  1993/02/02  03:17:34  rr2b
*new R6tape branch
*
*Revision 1.14  1992/12/19  04:37:09  gk5g
*added LinkTree override
*.- there will be several checkins like this one.
*Many views that have children incorrectly link these children once, in InitializeObject.  These views must also provide a LinkTree because you can't assume that you are being linked into a valid viewtree (one with a path to the im), but it is assurred that once the tree is valid, the message will be distributed through the viewtree.
*.
*
*Revision 1.13  1992/12/14  23:20:33  rr2b
*add $Logs back after disclaimerization took them out
*
Revision 1.11  1992/11/11  22:39:12  gk5g
added call to lpair_LinkTree in FullUpdate... you must call LinkTree before InsertGraphic
.

Revision 1.10  1991/09/12  19:45:38  bobg
Update copyright notice

Revision 1.9  1990/03/02  18:45:04  gk5g
Removed the menu items (and suite items) Print, Save, and Quit.  These are not necessary (and, in fact, wrong) for org to have.  Frame (and buffer) handle those operations.  Removed the menu masks menu_application & menu_applicationlayer.  Removed the methods orgv_{Get,Delete}ApplicationLayer because they did nothing.  Removed the instance vars readonly, application, and org_app.  These are no longer necessary.

Revision 1.8  89/08/23  15:39:33  tom
Revise to Version 1.0

*/


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

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

  struct org			 *data_object;
  struct lpair			 *pair_view;
  struct treev			 *tree_view_object;
  struct text			 *description_text;
  struct textview		 *description_textview;
  struct view			 *description_textview_scroll;
  struct tree_node		 *previous_node, *exploded_node;
  struct suite			 *suite_object;
  struct view			 *anchor;
  struct view		       *(*hit_handler)();
  struct rectangle		  bounds;
  struct menulist		 *menu;
  struct keystate		 *keystate;
  long				  last_modified, 
                                  initial_node_count,
				  description_last_modified;
  short				  arrangement, 
                                  node_border_style, 
                                  node_connector_style,
				  background_shade;
  boolean			  input_focus, 
                                  expose_controls, 
                                  controls_exposed,
				  fold, first_time,
				  expose_description, 
                                  description_exposed, 
                                  read_only,
				  exploded, 
                                  ignore_loseinputfocus, 
                                  ignore_fullupdate;
  
};

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

#endif /* class_StaticInfoOnly */

#ifndef class_StaticInfoOnly

#ifndef orgv_PROGRAMMERVERSION
#define orgv_PROGRAMMERVERSION 1
#endif /* orgv_PROGRAMMERVERSION */

#ifdef orgv_VERSION
#undef orgv_VERSION
#endif /* orgv_VERSION */
#define orgv_VERSION ((((orgv_PROGRAMMERVERSION << 16) ^ (110 << 8) ^ sizeof(struct orgv)) & 0x7ffff) + 0x80000 + (2 << 20))


#endif /* class_StaticInfoOnly */
#define orgv_StaticLoadOnlyThisClass()  \
{ extern struct classinfo *orgv__GetClassInfo(); \
 extern struct classheader *orgv_classheader_StaticExport; \
  (void) class_EnterInfo(NULL, orgv_classheader_StaticExport->name, orgv__GetClassInfo, NULL, orgv_classheader_StaticExport->namekey); } 
 
#define orgv_StaticLoad()  \
    { \
    aptv_StaticLoad(); \
    orgv_StaticLoadOnlyThisClass();  \
    } 
 
#define orgv_StaticEntry  {orgv_StaticLoad()} 
 
#ifndef class_StaticInfoOnly
static struct classheader orgv_classheader = {
    orgv_VERSION,
    "orgv",
    "orgv",
    (struct basicobject_methods *) &class_RoutineStruct,
};

#define orgv_CLASSPROCEDURES (orgv_classheader.classprocedures)
int orgv_classref_;
#endif /* class_StaticInfoOnly */

#endif /* orgv_DEFINED */

#if !defined(orgv_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_orgv) && !defined(class_StaticEntriesOnly)
#define orgv_ROUTINESDEFINED

#define orgv_Reference(self) \
 (((&(self)->header.traced))->refcount++)
#define orgv_UnReference(self) \
 ((((&(self)->header.traced))->refcount>0)?((&(self)->header.traced))->refcount--:0)
#define orgv_ReferenceCount(self) \
 (((&(self)->header.traced))->refcount)
#define orgv_AddObserver(self,observer) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[0]))) (self,observer))
#define orgv_IsObserver(self,observer) \
    ((* ((boolean (*)())((self)->header.orgv_methods->routines[1]))) (self,observer))
#define orgv_RemoveObserver(self,observer) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[2]))) (self,observer))
#define orgv_NotifyObservers(self,value) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[3]))) (self,value))
#define orgv_ObservedChanged(self,changed,value) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[4]))) (self,changed,value))
#define orgv_AddRecipient(self,trigger,rcvr,func,rock) \
    ((* ((boolean (*)())((self)->header.orgv_methods->routines[5]))) (self,trigger,rcvr,func,rock))
#define orgv_DeleteRecipient(self,trigger,rcvr) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[6]))) (self,trigger,rcvr))
#define orgv_PullTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[7]))) (self,trigger))
#define orgv_DisableTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[8]))) (self,trigger))
#define orgv_EnableTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[9]))) (self,trigger))
#define orgv_DisableCount(self,trigger) \
    ((* ((long (*)())((self)->header.orgv_methods->routines[10]))) (self,trigger))
#define orgv_SetName(self,name) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[11]))) (self,name))
#define orgv_GetName(self) \
    ((* ((struct atomlist * (*)())((self)->header.orgv_methods->routines[12]))) (self))
#define orgv_GetClass(self) \
    ((* ((struct atomlist * (*)())((self)->header.orgv_methods->routines[13]))) (self))
#define orgv_GetParameter(self,name,type,datum) \
    ((* ((short (*)())((self)->header.orgv_methods->routines[14]))) (self,name,type,datum))
#define orgv_GetResource(self,name,class,type,datum) \
    ((* ((short (*)())((self)->header.orgv_methods->routines[15]))) (self,name,class,type,datum))
#define orgv_GetManyParameters(self,resources,name,class) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[16]))) (self,resources,name,class))
#define orgv_PostResource(self,path,type,datum) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[17]))) (self,path,type,datum))
#define orgv_InsertViewRegion(self,parent,region) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[18]))) (self,parent,region))
#define orgv_InsertView(self,parent,enclosingRect) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[19]))) (self,parent,enclosingRect))
#define orgv_InsertViewSize(self,EnclosingView,xOriginInParent,yOriginInParent,width,height) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[20]))) (self,EnclosingView,xOriginInParent,yOriginInParent,width,height))
#define orgv_SetDataObject(self,dataobject) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[21]))) (self,dataobject))
#define orgv_GetApplicationLayer(self) \
    ((* ((struct view * (*)())((self)->header.orgv_methods->routines[22]))) (self))
#define orgv_DeleteApplicationLayer(self,applicationLayer) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[23]))) (self,applicationLayer))
#define orgv_DescriptionObject(self,format,rock) \
    ((* ((char * (*)())((self)->header.orgv_methods->routines[24]))) (self,format,rock))
#define orgv_Describe(self,format,file,rock) \
    ((* ((enum view_DescriberErrs (*)())((self)->header.orgv_methods->routines[25]))) (self,format,file,rock))
#define orgv_FullUpdate(self,type,left,top,width,right) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[26]))) (self,type,left,top,width,right))
#define orgv_Update(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[27]))) (self))
#define orgv_Print(self,file,processor,finalFormat,topLevel) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[28]))) (self,file,processor,finalFormat,topLevel))
#define orgv_Hit(self,action,x,y,numberOfClicks) \
    ((* ((struct view * (*)())((self)->header.orgv_methods->routines[29]))) (self,action,x,y,numberOfClicks))
#define orgv_DesiredSize(self,width,height,pass,dWidth,dheight) \
    ((* ((enum view_DSattributes (*)())((self)->header.orgv_methods->routines[30]))) (self,width,height,pass,dWidth,dheight))
#define orgv_GetOrigin(self,width,height,originX,originY) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[31]))) (self,width,height,originX,originY))
#define orgv_ReceiveInputFocus(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[32]))) (self))
#define orgv_LoseInputFocus(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[33]))) (self))
#define orgv_ReceiveColormap(self,cmap) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[34]))) (self,cmap))
#define orgv_LoseColormap(self,cmap) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[35]))) (self,cmap))
#define orgv_WantUpdate(self,requestor) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[36]))) (self,requestor))
#define orgv_WantInputFocus(self,requestor) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[37]))) (self,requestor))
#define orgv_WantColormap(self,requestor,cmap) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[38]))) (self,requestor,cmap))
#define orgv_WantNewSize(self,requestor) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[39]))) (self,requestor))
#define orgv_WantHandler(self,handlerName) \
    ((* ((struct basicobject * (*)())((self)->header.orgv_methods->routines[40]))) (self,handlerName))
#define orgv_WantInformation(self,key) \
    ((* ((char * (*)())((self)->header.orgv_methods->routines[41]))) (self,key))
#define orgv_PostKeyState(self,keystate) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[42]))) (self,keystate))
#define orgv_PostMenus(self,menulist) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[43]))) (self,menulist))
#define orgv_PostCursor(self,rec,cursor) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[44]))) (self,rec,cursor))
#define orgv_RetractCursor(self,cursor) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[45]))) (self,cursor))
#define orgv_RetractViewCursors(self,requestor) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[46]))) (self,requestor))
#define orgv_PostDefaultHandler(self,handlerName,handler) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[47]))) (self,handlerName,handler))
#define orgv_GetInterface(self,type) \
    ((* ((char * (*)())((self)->header.orgv_methods->routines[48]))) (self,type))
#define orgv_LinkTree(self,parent) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[49]))) (self,parent))
#define orgv_UnlinkTree(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[50]))) (self))
#define orgv_IsAncestor(self,possibleAncestor) \
    ((* ((boolean (*)())((self)->header.orgv_methods->routines[51]))) (self,possibleAncestor))
#define orgv_UnlinkNotification(self,unlinkedTree) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[52]))) (self,unlinkedTree))
#define orgv_GetWindowManagerType(self) \
    ((* ((char * (*)())((self)->header.orgv_methods->routines[53]))) (self))
#define orgv_GetDevice(self) \
    ((* ((long (*)())((self)->header.orgv_methods->routines[54]))) (self))
#define orgv_InitChildren(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[55]))) (self))
#define orgv_CanView(self,TypeName) \
    ((* ((boolean (*)())((self)->header.orgv_methods->routines[56]))) (self,TypeName))
#define orgv_LoseSelectionOwnership(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[57]))) (self))
#define orgv_WriteSelection(self,out) \
    ((* ((long (*)())((self)->header.orgv_methods->routines[58]))) (self,out))
#define orgv_MoveToPt(self,Pt) \
 (graphic_MoveToPt(((&(self)->header.view))->drawable,(Pt)))
#define orgv_MoveTo(self,NewX,NewY) \
 (graphic_MoveTo(((&(self)->header.view))->drawable,(NewX),(NewY)))
#define orgv_Move(self,DeltaX,DeltaY) \
 (graphic_Move(((&(self)->header.view))->drawable,(DeltaX),(DeltaY)))
#define orgv_GetLogicalBounds(self,Rect) \
 (graphic_GetLogicalBounds(((&(self)->header.view))->drawable,(Rect)))
#define orgv_GetLogicalBoundsSize(self,x,y,width,height) \
 (graphic_GetLogicalBoundsSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define orgv_GetLogicalRight(self) \
 (graphic_GetLogicalRight(((&(self)->header.view))->drawable))
#define orgv_GetLogicalBottom(self) \
 (graphic_GetLogicalBottom(((&(self)->header.view))->drawable))
#define orgv_GetLogicalLeft(self) \
 (graphic_GetLogicalLeft(((&(self)->header.view))->drawable))
#define orgv_GetLogicalHeight(self) \
 (graphic_GetLogicalHeight((((&(self)->header.view))->drawable)))
#define orgv_GetLogicalWidth(self) \
 (graphic_GetLogicalWidth((((&(self)->header.view))->drawable)))
#define orgv_GetLogicalTop(self) \
 (graphic_GetLogicalTop((((&(self)->header.view))->drawable)))
#define orgv_SetVisualRegion(self,region) \
 (graphic_SetVisualRegion(((&(self)->header.view))->drawable, (region)))
#define orgv_GetVisualRegion(self,region) \
 (graphic_GetVisualRegion(((&(self)->header.view))->drawable, (region)))
#define orgv_GetVisualBounds(self,Rect) \
 (graphic_GetVisualBounds(((&(self)->header.view))->drawable,(Rect)))
#define orgv_GetVisualBoundsSize(self,x,y,width,height) \
 (graphic_GetVisualBoundsSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define orgv_GetVisualRight(self) \
 (graphic_GetVisualRight(((&(self)->header.view))->drawable))
#define orgv_GetVisualBottom(self) \
 (graphic_GetVisualBottom(((&(self)->header.view))->drawable))
#define orgv_GetVisualWidth(self) \
 (graphic_GetVisualWidth((((&(self)->header.view))->drawable)))
#define orgv_GetVisualHeight(self) \
 (graphic_GetVisualHeight((((&(self)->header.view))->drawable)))
#define orgv_GetVisualLeft(self) \
 (graphic_GetVisualLeft((((&(self)->header.view))->drawable)))
#define orgv_GetVisualTop(self) \
 (graphic_GetVisualTop((((&(self)->header.view))->drawable)))
#define orgv_GetEnclosedBounds(self,Rect) \
 (graphic_GetEnclosedBounds(((&(self)->header.view))->drawable, (Rect)))
#define orgv_GetEnclosedBoundsSize(self,x,y,width,height) \
 (graphic_GetEnclosedBoundsSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define orgv_GetEnclosedRight(self) \
 (graphic_GetEnclosedRight(((&(self)->header.view))->drawable))
#define orgv_GetEnclosedBottom(self) \
 (graphic_GetEnclosedBottom(((&(self)->header.view))->drawable))
#define orgv_GetEnclosedLeft(self) \
 (graphic_GetEnclosedLeft((((&(self)->header.view))->drawable)))
#define orgv_GetEnclosedTop(self) \
 (graphic_GetEnclosedTop((((&(self)->header.view))->drawable)))
#define orgv_GetEnclosedWidth(self) \
 (graphic_GetEnclosedWidth((((&(self)->header.view))->drawable)))
#define orgv_GetEnclosedHeight(self) \
 (graphic_GetEnclosedHeight((((&(self)->header.view))->drawable)))
#define orgv_GetCurrentPt(self,Pt) \
 (graphic_GetCurrentPt(((&(self)->header.view))->drawable,(Pt)))
#define orgv_DrawLineToPt(self,LineEnd) \
 (graphic_DrawLineToPt(((&(self)->header.view))->drawable,(LineEnd)))
#define orgv_DrawLineTo(self,XEnd,YEnd) \
 (graphic_DrawLineTo(((&(self)->header.view))->drawable,(XEnd), (YEnd)))
#define orgv_DrawLine(self,DeltaX,DeltaY) \
 (graphic_DrawLine(((&(self)->header.view))->drawable, (DeltaX), (DeltaY)))
#define orgv_DrawString(self,Text,Operation) \
 (graphic_DrawString(((&(self)->header.view))->drawable, (Text), (Operation)))
#define orgv_DrawText(self,Text,TextLength,Operation) \
 (graphic_DrawText(((&(self)->header.view))->drawable, (Text), (TextLength), (Operation)))
#define orgv_SetSpaceShim(self,Amount) \
 (graphic_SetSpaceShim(((&(self)->header.view))->drawable,(Amount)))
#define orgv_GetSpaceShim(self) \
 (graphic_GetSpaceShim(((&(self)->header.view))->drawable))
#define orgv_SetFont(self,ChosenFont) \
 (graphic_SetFont(((&(self)->header.view))->drawable, (ChosenFont)))
#define orgv_GetFont(self) \
 (graphic_GetFont(((&(self)->header.view))->drawable))
#define orgv_DrawRect(self,Rect) \
 (graphic_DrawRect(((&(self)->header.view))->drawable,(Rect)))
#define orgv_DrawRectSize(self,x,y,width,height) \
 (graphic_DrawRectSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define orgv_DrawTrapezoid(self,topX,topY,topWidth,bottomX,bottomY,bottomWidth) \
 (graphic_DrawTrapezoid(((&(self)->header.view))->drawable,(topX),(topY),(topWidth),(bottomX),(bottomY),(bottomWidth)))
#define orgv_DrawPolygon(self,PointArray,PointCount) \
 (graphic_DrawPolygon(((&(self)->header.view))->drawable,(PointArray), (PointCount)))
#define orgv_DrawPath(self,PointArray,PointCount) \
 (graphic_DrawPath(((&(self)->header.view))->drawable,(PointArray), (PointCount)))
#define orgv_DrawOval(self,Rect) \
 (graphic_DrawOval(((&(self)->header.view))->drawable,(Rect)))
#define orgv_DrawOvalSize(self,x,y,width,height) \
 (graphic_DrawOvalSize(((&(self)->header.view))->drawable, (x), (y), (width), (height)))
#define orgv_DrawArc(self,EnclRect,StartAngle,OffsetAngle) \
 (graphic_DrawArc(((&(self)->header.view))->drawable,(EnclRect),(StartAngle),(OffsetAngle)))
#define orgv_DrawArcSize(self,x,y,width,height,StartAngle,OffsetAngle) \
 (graphic_DrawArcSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (StartAngle), (OffsetAngle)))
#define orgv_DrawRRect(self,OuterBox,InnerBox) \
 (graphic_DrawRRect(((&(self)->header.view))->drawable, (OuterBox), (InnerBox)))
#define orgv_DrawRRectSize(self,x,y,width,height,cornerWidth,cornerHeight) \
 (graphic_DrawRRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (cornerWidth), (cornerHeight)))
#define orgv_DrawRgn(self,Rgn) \
 (graphic_DrawRgn(((&(self)->header.view))->drawable,(Rgn)))
#define orgv_FillRect(self,Rect,Tile) \
 (graphic_FillRect(((&(self)->header.view))->drawable, (Rect),(Tile)))
#define orgv_FillRectSize(self,x,y,width,height,Tile) \
 (graphic_FillRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (Tile)))
#define orgv_FillTrapezoid(self,topX,topY,topWidth,bottomX,bottomY,bottomWidth,Tile) \
 (graphic_FillTrapezoid(((&(self)->header.view))->drawable, (topX), (topY), (topWidth), (bottomX), (bottomY), (bottomWidth), (Tile)))
#define orgv_FillPolygon(self,PointArray,PointCount,Tile) \
 (graphic_FillPolygon(((&(self)->header.view))->drawable, (PointArray), (PointCount), (Tile)))
#define orgv_FillOval(self,Rect,Tile) \
 (graphic_FillOval(((&(self)->header.view))->drawable, (Rect), (Tile)))
#define orgv_FillOvalSize(self,x,y,width,height,Tile) \
 (graphic_FillOvalSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (Tile)))
#define orgv_FillArc(self,EnclRect,StartAngle,OffsetAngle,Tile) \
 (graphic_FillArc(((&(self)->header.view))->drawable, (EnclRect), (StartAngle), (OffsetAngle),(Tile)))
#define orgv_FillArcSize(self,x,y,width,height,StartAngle,OffsetAngle,Tile) \
 (graphic_FillArcSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (StartAngle), (OffsetAngle), (Tile)))
#define orgv_FillRRect(self,OuterBox,InnerBox,Tile) \
 (graphic_FillRRect(((&(self)->header.view))->drawable, (OuterBox), (InnerBox), (Tile)))
#define orgv_FillRRectSize(self,x,y,width,height,cornerWidth,cornerHeight,Tile) \
 (graphic_FillRRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height), (cornerWidth), (cornerHeight), (Tile)))
#define orgv_FillRgn(self,Rgn,Tile) \
 (graphic_FillRgn(((&(self)->header.view))->drawable, (Rgn), (Tile)))
#define orgv_EraseRect(self,Rect) \
 (graphic_EraseRect(((&(self)->header.view))->drawable, (Rect)))
#define orgv_EraseRectSize(self,x,y,width,height) \
 (graphic_EraseRectSize(((&(self)->header.view))->drawable, (x), (y), (width), (height)))
#define orgv_EraseVisualRect(self) \
 (graphic_EraseVisualRect(((&(self)->header.view))->drawable))
#define orgv_BitBlt(self,SrcRect,DestView,DstOrigin,ClipRectList) \
 (graphic_BitBlt(((&(self)->header.view))->drawable,(SrcRect), (((struct view *)(DestView))->drawable), (DstOrigin), (ClipRectList)))
#define orgv_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 orgv_SetBitAtLoc(self,XPos,YPos,NewValue) \
 (graphic_SetBitAtLoc(((&(self)->header.view))->drawable, (XPos), (YPos), (NewValue)))
#define orgv_MoveLogicalOrigin(self,DeltaX,DeltaY) \
 (graphic_MoveLogicalOrigin(((&(self)->header.view))->drawable,(DeltaX), (DeltaY)))
#define orgv_SetLogicalOrigin(self,NewX,NewY) \
 (graphic_SetLogicalOrigin(((&(self)->header.view))->drawable,(NewX), (NewY)))
#define orgv_SetLogicalOriginPt(self,Pt) \
 (graphic_SetLogicalOriginPt(((&(self)->header.view))->drawable,(Pt)))
#define orgv_SetClippingRegion(self,region) \
 (graphic_SetClippingRegion(((&(self)->header.view))->drawable, (region)))
#define orgv_GetClippingRegion(self,region) \
 (graphic_GetClippingRegion(((&(self)->header.view))->drawable, (region)))
#define orgv_SetClippingRect(self,ClipRect) \
 (graphic_SetClippingRect(((&(self)->header.view))->drawable,(ClipRect)))
#define orgv_SetClippingRectSize(self,x,y,width,height) \
 (graphic_SetClippingRectSize(((&(self)->header.view))->drawable,(x),(y),(width),(height)))
#define orgv_ClearClippingRect(self) \
 (graphic_ClearClippingRect(((&(self)->header.view))->drawable))
#define orgv_GetClippingRect(self,Rect) \
 (graphic_GetClippingRect(((&(self)->header.view))->drawable,(Rect)))
#define orgv_SetLineWidth(self,NewLineWidth) \
 (graphic_SetLineWidth(((&(self)->header.view))->drawable, (NewLineWidth)))
#define orgv_GetLineWidth(self) \
 (graphic_GetLineWidth(((&(self)->header.view))->drawable))
#define orgv_SetLineDash(self,dashPattern,dashOffset,dashType) \
 (graphic_SetLineDash(((&(self)->header.view))->drawable, (dashPattern), (dashOffset), (dashType)))
#define orgv_GetLineDash(self,dashPattern,dashOffset,dashType) \
 (graphic_GetLineDash(((&(self)->header.view))->drawable, (dashPattern), (dashOffset), (dashType)))
#define orgv_SetLineCap(self,NewLineCap) \
 (graphic_SetLineCap(((&(self)->header.view))->drawable, (NewLineCap)))
#define orgv_GetLineCap(self) \
 (graphic_GetLineCap(((&(self)->header.view))->drawable))
#define orgv_SetLineJoin(self,NewLineJoin) \
 (graphic_SetLineJoin(((&(self)->header.view))->drawable, (NewLineJoin)))
#define orgv_GetLineJoin(self) \
 (graphic_GetLineJoin(((&(self)->header.view))->drawable))
#define orgv_SetTransferMode(self,NewTransferMode) \
 (graphic_SetTransferMode(((&(self)->header.view))->drawable, (NewTransferMode)))
#define orgv_GetTransferMode(self) \
 (graphic_GetTransferMode(((&(self)->header.view))->drawable))
#define orgv_FlushGraphics(self) \
 (graphic_FlushGraphics(((&(self)->header.view))->drawable))
#define orgv_WhitePattern(self) \
 (graphic_WhitePattern(((&(self)->header.view))->drawable))
#define orgv_BlackPattern(self) \
 (graphic_BlackPattern(((&(self)->header.view))->drawable))
#define orgv_GrayPattern(self,IntensityNum,IntensityDenom) \
 (graphic_GrayPattern(((&(self)->header.view))->drawable, (IntensityNum), (IntensityDenom)))
#define orgv_SetPatternOrigin(self,xpos,ypos) \
  (graphic_SetPatternOrigin(((&(self)->header.view))->drawable, (xpos), (ypos)))
#define orgv_GetPatternOrigin(self,xpos,ypos) \
  (graphic_GetPatternOrigin(((&(self)->header.view))->drawable, (xpos), (ypos)))
#define orgv_SetForegroundColor(self,colorName,red,green,blue) \
 (graphic_SetForegroundColor(((&(self)->header.view))->drawable, (colorName), (red), (green), (blue)))
#define orgv_GetForegroundColor(self,name,retred,retgreen,retblue) \
     (graphic_GetForegroundColor(((&(self)->header.view))->drawable, (name), (retred), (retgreen), (retblue)))
#define orgv_SetBackgroundColor(self,colorName,red,green,blue) \
 (graphic_SetBackgroundColor(((&(self)->header.view))->drawable, (colorName), (red),(green),(blue)))
#define orgv_GetBackgroundColor(self,name,retred,retgreen,retblue) \
 (graphic_GetBackgroundColor(((&(self)->header.view))->drawable, (name), (retred), (retgreen),(retblue)))
#define orgv_SetFGColor(self,red,green,blue) \
 (graphic_SetFGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define orgv_GetFGColor(self,red,green,blue) \
 (graphic_GetFGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define orgv_SetBGColor(self,red,green,blue) \
 (graphic_SetBGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define orgv_GetBGColor(self,red,green,blue) \
 (graphic_GetBGColor(((&(self)->header.view))->drawable,(red),(green),(blue)))
#define orgv_GetHorizontalResolution(self) \
 (graphic_GetHorizontalResolution(((&(self)->header.view))->drawable))
#define orgv_GetVerticalResolution(self) \
 (graphic_GetVerticalResolution(((&(self)->header.view))->drawable))
#define orgv_GetIM(self) \
 (((&(self)->header.view))->imPtr)
#define orgv_GetDrawable(self) \
 (((&(self)->header.view))->drawable)
#define orgv_GetColormap(self) \
 (graphic_GetColormap(((&(self)->header.view))->drawable))
#define orgv_SetColormap(self,cmap) \
 (graphic_SetColormap(((&(self)->header.view))->drawable, cmap))
#define orgv_GetInheritedColormap(self) \
 (graphic_GetInheritedColormap(((&(self)->header.view))->drawable))
#define orgv_SetInheritedColormap(self,cmap) \
 (graphic_SetInheritedColormap(((&(self)->header.view))->drawable, cmap))
#define orgv_ClearInheritedColormap(self) \
 (graphic_ClearInheritedColormap(((&(self)->header.view))->drawable))
#define orgv_CurrentColormap(self) \
 (graphic_CurrentColormap(((&(self)->header.view))->drawable))
#define orgv_EnclosedXToLocalX(self,xvalue) \
   ((xvalue)-graphic_GetEnclosedLeft(((&(self)->header.view))->drawable)+graphic_GetLogicalLeft(((&(self)->header.view))->drawable))
#define orgv_EnclosedYToLocalY(self,yvalue) \
    ((yvalue)-graphic_GetEnclosedTop(((&(self)->header.view))->drawable)+graphic_GetLogicalTop(((&(self)->header.view))->drawable))
#define orgv_GetDataObject(self) \
 (((&(self)->header.view))->dataobject)
#define orgv_DisplayClass(self) \
 (graphic_DisplayClass(((&(self)->header.view))->drawable ))
#define orgv_ClearColors(self) \
 (graphic_ClearColors(((&(self)->header.view))->drawable))
#define orgv_SetOptions(self,options) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[59]))) (self,options))
#define orgv_SetDimensions(self,width,height) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[60]))) (self,width,height))
#define orgv_BuildFont(self,font_name,height) \
    ((* ((struct fontdesc * (*)())((self)->header.orgv_methods->routines[61]))) (self,font_name,height))
#define orgv_DrawBoundedString(self,string,font,bounds,center,middle,mode) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[62]))) (self,string,font,bounds,center,middle,mode))
#define orgv_ClearBoundedString(self,string,font,bounds,center,middle,mode) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[63]))) (self,string,font,bounds,center,middle,mode))
#define orgv_Within(self,x,y,bounds) \
    ((* ((boolean (*)())((self)->header.orgv_methods->routines[64]))) (self,x,y,bounds))
#define orgv_SetShrinkIcon(self,icon,icon_font_name,title,title_font_name) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[65]))) (self,icon,icon_font_name,title,title_font_name))
#define orgv_Shrink(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[66]))) (self))
#define orgv_ShrinkView(self,aptv) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[67]))) (self,aptv))
#define orgv_Expand(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[68]))) (self))
#define orgv_ExpandView(self,aptv) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[69]))) (self,aptv))
#define orgv_ClearBody(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[70]))) (self))
#define orgv_PrintObject(self,file,processor,finalFormat,topLevel,printer) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[71]))) (self,file,processor,finalFormat,topLevel,printer))
#define orgv_PrintContinue(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[72]))) (self))
#define orgv_OpenPrintStream(self,file,processor,format,level) \
    ((* ((boolean (*)())((self)->header.orgv_methods->routines[73]))) (self,file,processor,format,level))
#define orgv_ClosePrintStream(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[74]))) (self))
#define orgv_SetPrintStream(self,stream) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[75]))) (self,stream))
#define orgv_PreservePrintState(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[76]))) (self))
#define orgv_RestorePrintState(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[77]))) (self))
#define orgv_PrintBox(self,left,top,width,height,mode) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[78]))) (self,left,top,width,height,mode))
#define orgv_PrintRoundBox(self,left,top,width,height,mode) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[79]))) (self,left,top,width,height,mode))
#define orgv_PrintFilledRoundBox(self,left,top,width,height,mode,shade) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[80]))) (self,left,top,width,height,mode,shade))
#define orgv_PrintLine(self,x1,y1,x2,y2) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[81]))) (self,x1,y1,x2,y2))
#define orgv_PrintCircle(self,x1,y1,radius) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[82]))) (self,x1,y1,radius))
#define orgv_PrintSlice(self,x1,y1,radius,start_angle,end_angle,shade_numerator,shade_denominator,mode) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[83]))) (self,x1,y1,radius,start_angle,end_angle,shade_numerator,shade_denominator,mode))
#define orgv_PrintMoveTo(self,x,y) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[84]))) (self,x,y))
#define orgv_PrintLineTo(self,x,y) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[85]))) (self,x,y))
#define orgv_SetPrintOrigin(self,left,top) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[86]))) (self,left,top))
#define orgv_SetPrintUnitDimensions(self,inch_width,inch_height) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[87]))) (self,inch_width,inch_height))
#define orgv_SetPrintPageDimensions(self,inch_width,inch_height) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[88]))) (self,inch_width,inch_height))
#define orgv_SetPrintResolution(self,pixels_per_inch) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[89]))) (self,pixels_per_inch))
#define orgv_SetPrintOptions(self,options) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[90]))) (self,options))
#define orgv_SetPrintLineWidth(self,width) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[91]))) (self,width))
#define orgv_SetPrintGrayLevel(self,level) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[92]))) (self,level))
#define orgv_SetPrintPath(self,path) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[93]))) (self,path))
#define orgv_PrintPath(self,path) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[94]))) (self,path))
#define orgv_PrintPathFilled(self,path) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[95]))) (self,path))
#define orgv_SetPrintFont(self,font_name) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[96]))) (self,font_name))
#define orgv_ResetPrintFont(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[97]))) (self))
#define orgv_PrintString(self,x1,y1,string,mode) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[98]))) (self,x1,y1,string,mode))
#define orgv_SetHelpString(self,string) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[99]))) (self,string))
#define orgv_SetHelpFileName(self,file_name) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[100]))) (self,file_name))
#define orgv_UseWaitCursor(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[101]))) (self))
#define orgv_UseNormalCursor(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[102]))) (self))
#define orgv_UseInvisibleCursor(self) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[103]))) (self))
#define orgv_Query(self,query,default_response,response) \
    ((* ((long (*)())((self)->header.orgv_methods->routines[104]))) (self,query,default_response,response))
#define orgv_QueryFileName(self,query,response) \
    ((* ((long (*)())((self)->header.orgv_methods->routines[105]))) (self,query,response))
#define orgv_QueryDirectoryName(self,query,response) \
    ((* ((long (*)())((self)->header.orgv_methods->routines[106]))) (self,query,response))
#define orgv_Announce(self,message) \
    ((* ((long (*)())((self)->header.orgv_methods->routines[107]))) (self,message))
#define orgv_IconFont(self) \
	    (((&(self)->header.aptv))->icon_font)
#define orgv_CursorFont(self) \
	    (((&(self)->header.aptv))->cursor_font)
#define orgv_PrintStream(self) \
	    (((&(self)->header.aptv))->print_stream)
#define orgv_Bounds(self) \
	    (&((&(self)->header.aptv))->enclosures[0].bound)
#define orgv_BodyBounds(self) \
	    (&((&(self)->header.aptv))->enclosures[5].bound)
#define orgv_BodyLeft(self) \
	    (aptv_BodyBounds((&(self)->header.aptv))->left)
#define orgv_BodyTop(self) \
	    (aptv_BodyBounds((&(self)->header.aptv))->top)
#define orgv_BodyWidth(self) \
	    (aptv_BodyBounds((&(self)->header.aptv))->width)
#define orgv_BodyHeight(self) \
	    (aptv_BodyBounds((&(self)->header.aptv))->height)
#define orgv_BodyCenter(self) \
	    (aptv_BodyLeft((&(self)->header.aptv)) + aptv_BodyWidth((&(self)->header.aptv))/2)
#define orgv_BodyRight(self) \
	    (aptv_BodyLeft((&(self)->header.aptv)) + aptv_BodyWidth((&(self)->header.aptv)) - 1)
#define orgv_BodyMiddle(self) \
	    (aptv_BodyTop((&(self)->header.aptv))  + aptv_BodyHeight((&(self)->header.aptv))/2)
#define orgv_BodyBottom(self) \
	    (aptv_BodyTop((&(self)->header.aptv))  + aptv_BodyHeight((&(self)->header.aptv)) - 1)
#define orgv_BypassUpdate(self) \
    (((&(self)->header.aptv))->bypass_update)
#define orgv_SetHitHandler(self,handler,anchor) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[108]))) (self,handler,anchor))
#define orgv_SetDebug(self,state) \
    ((* ((void (*)())((self)->header.orgv_methods->routines[109]))) (self,state))
#define orgv_CurrentNode(self) \
    		      (((self))->current_node)

#define orgv_NewFromObject(self) \
    ((* ((struct orgv * (*)())((self)->header.orgv_methods->info->procs->routines[0]))) (&orgv_classheader, (self)->header.orgv_methods->info->versionnumber))
#define orgv_New() \
    (*((struct orgv * (*)()) (orgv_CLASSPROCEDURES->routines[0])))(&orgv_classheader,orgv_VERSION)
#define orgv_Initialize(self) \
    (*((void (*)()) (orgv_CLASSPROCEDURES->routines[2])))(&orgv_classheader,self, orgv_VERSION)

#define orgv_Destroy(self) \
    ((* ((void (*)()) ((self)->header.orgv_methods->info->procs->routines[1]))) (&orgv_classheader, self))
#define orgv_Finalize(self) \
    (*((void (*)()) (orgv_CLASSPROCEDURES->routines[3])))(&orgv_classheader,self)

#define orgv_InitializeObject(self) \
    (*((boolean (*)()) (orgv_CLASSPROCEDURES->routines[5])))(&orgv_classheader,self)
#define orgv_FinalizeObject(self) \
    (*((void (*)()) (orgv_CLASSPROCEDURES->routines[6])))(&orgv_classheader,self)
#define orgv_InitializeClass() \
    (*((boolean (*)()) (orgv_CLASSPROCEDURES->routines[7])))(&orgv_classheader)


#endif /* !defined(orgv_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_orgv ) && !defined(class_StaticEntriesOnly)*/

