The Window structure is the main Intuition data structure used to represent a window. For the most part, applications treat this structure only as a handle. Window operations are performed by calling system functions that take Window as an argument instead of directly manipulating fields within the structure. However, there are some useful variables in a Window structure which are discussed in this section. struct Window { struct Window *NextWindow; WORD LeftEdge, TopEdge, Width, Height; WORD MouseY, MouseX; WORD MinWidth, MinHeight; UWORD MaxWidth, MaxHeight; ULONG Flags; struct Menu *MenuStrip; UBYTE *Title; struct Requester *FirstRequest, *DMRequest; WORD ReqCount; struct Screen *WScreen; struct RastPort *RPort; BYTE BorderLeft, BorderTop, BorderRight, BorderBottom; struct RastPort *BorderRPort; struct Gadget *FirstGadget; struct Window *Parent, *Descendant; UWORD *Pointer; BYTE PtrHeight, PtrWidth; BYTE XOffset, YOffset; ULONG IDCMPFlags; struct MsgPort *UserPort, *WindowPort; struct IntuiMessage *MessageKey; UBYTE DetailPen, BlockPen; struct Image *CheckMark; UBYTE *ScreenTitle; WORD GZZMouseX, GZZMouseY, GZZWidth, GZZHeight; UBYTE *ExtData; BYTE *UserData; struct Layer *WLayer; struct TextFont *IFont; ULONG MoreFlags; }; LeftEdge, TopEdge, Width and Height These variables reflect current position and size of the window. If the user sizes or positions the window, then these values will change. The position of the window is relative to the upper left corner of the screen. MouseX, MouseY, GZZMouseX, GZZMouseY The current position of the Intuition pointer with respect to the window, whether or not this window is currently the active one. For GimmeZeroZero windows, the GZZ variables reflect the position relative to the inner layer (see "Window Types" below). For normal windows, the GZZ variables reflect the position relative to the window origin after taking the borders into account. ReqCount Contains a count of the number of requesters currently displayed in the window. Do not rely on the value in this field, instead use IDCMP_REQSET and IDCMP_REQCLEAR to indirectly determine the number of open requesters in the window. WScreen A pointer to the Screen structure of the screen on which this window was opened. RPort A pointer to this window's RastPort structure. Use this RastPort pointer to render into your window with Intuition or graphics library rendering functions. BorderLeft, BorderTop, BorderRight, BorderBottom These variables describe the actual size of the window borders. The border size is not changed after the window is opened. BorderRPort With GimmeZeroZero windows, this variable points to the RastPort for the outer layer, in which the border gadgets are kept. UserData This pointer is available for application use. The program can attach a data block to this window by setting this variable to point to the data. For a commented listing of the Window structure see <intuition/intuition.h> in the Amiga ROM Kernel Reference Manual: Includes and Autodocs.