Window structure
Source position: intuition.pas line 937
type TWindow = record |
||
NextWindow: PWindow; |
|
For the linked list in a screen |
LeftEdge: SmallInt; |
|
Left edge of window on the screen |
TopEdge: SmallInt; |
|
Top edge of window on the screen |
Width: SmallInt; |
|
Width of Window |
Height: SmallInt; |
|
Height of Window |
MouseY: SmallInt; |
|
Y Mouse position relative to upper-left edge of Window |
MouseX: SmallInt; |
|
X Mouse position relative to upper-left edge of Window |
MinWidth: SmallInt; |
|
Minimum width for resizeable windows |
MinHeight: SmallInt; |
|
Minimum height for resizeable windows |
MaxWidth: Word; |
|
Maximum width of resizeable windows |
MaxHeight: Word; |
|
Maximum height of resizeable windows |
Flags: LongWord; |
|
Window Flags (WFLG_*) |
MenuStrip: PMenu; |
|
The strip of menu headers |
Title: PChar; |
|
The title text for this window |
FirstRequest: PRequester; |
|
All active requesters |
DMRequest: PRequester; |
|
Double click requester |
ReqCount: SmallInt; |
|
Count of requester blocking Window |
WScreen: PScreen; |
|
This Window's Screen |
RPort: PRastPort; |
|
This Window's very own RastPort |
BorderLeft: ShortInt; |
|
Width of window decoration on the left |
BorderTop: ShortInt; |
|
Width of window decoration on the top |
BorderRight: ShortInt; |
|
Width of window decoration on the right |
BorderBottom: ShortInt; |
|
Width of window decoration on the bottom |
BorderRPort: PRastPort; |
|
Rastport to draw on the Border |
FirstGadget: PGadget; |
|
You supply a linked-list of Gadgets for your Window. This list does not include system gadgets. |
Parent: PWindow; |
|
these are for opening/closing the windows |
Descendant: PWindow; |
|
|
_Pointer: PWord; |
|
sprite data |
PtrHeight: ShortInt; |
|
sprite height (not including sprite padding) |
PtrWidth: ShortInt; |
|
sprite width (must be less than or equal to 16) |
XOffset: ShortInt; |
|
sprite X offset |
YOffset: ShortInt; |
|
sprite Y offset |
IDCMPFlags: LongWord; |
|
User-selected flags (IDCMP_*) |
UserPort: PMsgPort; |
|
User message port |
WindowPort: PMsgPort; |
|
Intuition's message port |
MessageKey: PIntuiMessage; |
|
|
DetailPen: Byte; |
|
for bar/border/gadget rendering |
BlockPen: Byte; |
|
for bar/border/gadget rendering |
CheckMark: PImage; |
|
the CheckMark is a pointer to the imagery that will be used when rendering MenuItems of this Window that want to be checkmarked if this is equal to nil, you'll get the default imagery |
ScreenTitle: PChar; |
|
if non-nil, Screen title when Window is active |
GZZMouseX: SmallInt; |
|
These variables have the mouse coordinates relative to the |
GZZMouseY: SmallInt; |
|
inner-Window of GIMMEZEROZERO Windows. |
GZZWidth: SmallInt; |
|
width of the inner-Window of GIMMEZEROZERO Windows |
GZZHeight: SmallInt; |
|
height of the inner-Window of GIMMEZEROZERO Windows |
ExtData: PByte; |
|
general-purpose pointer to User data extension |
UserData: PSmallInt; |
|
general-purpose pointer to User data extension |
WLayer: PLayer; |
|
Layer of the window |
IFont: PTextFont; |
|
|
MoreFlags: LongWord; |
|
|
end; |
The border variables describe the window border. If you specify WA_GIMMEZEROZERO when you open the window, then the upper-left of the ClipRect for this window will be upper-left of the BitMap (with correct offsets when in SuperBitMap mode; you must select WA_GIMMEZEROZERO when using SuperBitMap). If you don't specify ZeroZero, then you save memory (no allocation of RastPort, Layer, ClipRect and associated Bitmaps), but you also must offset all your writes by BorderTop, BorderLeft and do your own mini-clipping to prevent writing over the system gadgets