#ifndef TRCL_DISPLAYOBJECT_DEFINED #define TRCL_DISPLAYOBJECT_DEFINED #include "object.def" struct TROD_DisplayObject { struct TROD_Object O; /* Superclass object data */ ULONG ID; /* The object's ID */ ULONG MinWidth; /* The precalculated minimum width */ ULONG MinHeight; /* The precalculated minimum height */ ULONG Left; /* The X coordinate of the object */ ULONG Top; /* The Y coordinate of the object */ ULONG Width; /* The width of the object */ ULONG Height; /* The height of the object */ ULONG Flags; /* See below for flags */ BOOL XResize; /* Horizontally resizable? */ BOOL YResize; /* Vertically resizable? */ STRPTR QuickHelpString; /* QuickHelp string */ WORD Shortcut; /* The object's shortcut */ ULONG BackfillType; /* The object's backfill type */ BOOL Installed; /* Does the object have an on-screen representation? */ ULONG PrivData; /* Private data */ }; extern TR_METHOD(DisplayObject,NEW,NewData); extern TR_METHOD(DisplayObject,INSTALL,InstallData); extern TR_SIMPLEMETHOD(DisplayObject,REMOVE); extern TR_METHOD(DisplayObject,SETATTRIBUTE,SetAttributeData); extern TR_SIMPLEMETHOD(DisplayObject,GETATTRIBUTE); extern TR_METHOD(DisplayObject,HIT,HitData); // Flag macros #define TR_DO_DISABLED (DISPLAYOBJECT->Flags&TROB_DISPLAYOBJECT_DISABLED?TRUE:FALSE) #define TR_DO_SPACE (DISPLAYOBJECT->Flags&TROB_DISPLAYOBJECT_SPACE?TRUE:FALSE) #endif