#ifndef CLASSES_WINDOW_H
#define CLASSES_WINDOW_H
/*
** $VER: window.h 44.1 (19.10.1999)
** Includes Release 44.1
**
** window.class definitions
**
** (C) Copyright 1987-1999 Amiga, Inc.
** All Rights Reserved
*/
/****************************************************************************/
#ifndef REACTION_REACTION_H
#include <reaction/reaction.h>
#endif
/****************************************************************************/
/*
** Attributes specific to window.class
*/
#define WINDOW_Dummy (REACTION_Dummy + 0x25000)
#define WINDOW_Window (WINDOW_Dummy + 1)
/* (struct Window *) Return the pointer to the real */
/* Intuition window structure. */
#define WINDOW_SigMask (WINDOW_Dummy + 2)
/* (ULONG) Return the signal bit that you must wait for */
/* this window to know if the window as received */
/* any input. */
/* Defaults to 0. */
#define WINDOW_MenuStrip (WINDOW_Dummy + 4)
/* (struct MenuStrip *) A list of Menu structure that will */
/* be used as the menu of this window */
/* when open. */
/* Defaults to NULL. */
#define WINDOW_Layout (WINDOW_Dummy + 5)
#define WINDOW_ParentLayout WINDOW_Layout
#define WINDOW_ParentGroup WINDOW_Layout
/* (Object *) Layout group object for the window */
/* Defaults to NULL. */
#define WINDOW_UserData (WINDOW_Dummy + 6)
/* (APTR) A value that will be stored in the Window */
/* Object structure. */
/* Defaults to NULL. */
#define WINDOW_SharedPort (WINDOW_Dummy + 7)
/* (struct MsgPort *) A port that will be used for this */
/* window. The port will not be */
/* closed at dispose time. */
/* Defaults to NULL. */
#define WINDOW_Zoom (WINDOW_Dummy + 8)
/* When TRUE, it will act as a click on the zoom button. */
#define WINDOW_FrontBack (WINDOW_Dummy + 9)
/* (UWORD) Only WT_FRONT and WT_BACK can be used here. */
/* This put the window in front or in back of */
/* others windows */
#define WINDOW_Activate (WINDOW_Dummy +10)
/* (BOOL) Activate the window (and its master group) if */
/* set to TRUE and the */
/* window is open. */
#define WINDOW_LockWidth (WINDOW_Dummy +11)
/* (BOOL) Lock the window from resize in width. */
/* Defaults to FALSE. */
#define WINDOW_LockHeight (WINDOW_Dummy +12)
/* (BOOL) Lock the window from resize in height. */
/* Defaults to FALSE. */
#define WINDOW_AppPort (WINDOW_Dummy +13)
/* (struct MsgPort *) A shared message port for appmessages */
/* You must pass this to be able to iconify the window. */
/* Defaults to NULL. */
#define WINDOW_Position (WINDOW_Dummy +14)
/* (ULONG) The initial position to open at. */
#define WINDOW_IDCMPHook (WINDOW_Dummy +15)
/* (struct Hook *) Defaults to NULL. */
#define WINDOW_IDCMPHookBits (WINDOW_Dummy +16)
/* (ULONG) Defaults to 0L. */
#define WINDOW_GadgetUserData (WINDOW_Dummy +17)
#define WINDOW_InterpretUserData WINDOW_GadgetUserData
/* (UWORD) How Gadget.UserData is interpreted. */
/* Defaults to WGUD_IGNORE */
#define WINDOW_MenuUserData (WINDOW_Dummy +25)
/* (UWORD) How GTMENUITEM_USERDATA is interpreted. */
#define WGUD_HOOK 0 /* Gadget/MenuItem UserData points to a Hook */
#define WGUD_FUNC 1 /* Points to a function */
#define WGUD_IGNORE 2 /* App private, don't touch it */
#define WINDOW_IconTitle (WINDOW_Dummy +18)
/* (STRPTR) Title of the iconified window. */
#define WINDOW_AppMsgHook (WINDOW_Dummy +19)
/* (struct Hook *) Defaults to NULL. */
#define WINDOW_Icon (WINDOW_Dummy +20)
/* (struct DiskObject *) Custom icon for the window. */
#define WINDOW_AppWindow (WINDOW_Dummy +21)
/* (BOOL) Make the window a Workbench AppWindow. */
#define WINDOW_GadgetHelp (WINDOW_Dummy +22)
/* (BOOL) Set gadget-help on/off. */
#define WINDOW_IconifyGadget (WINDOW_Dummy +23)
/* (BOOL) Add an iconification gadget to window title bar. */
#define WINDOW_TextAttr (WINDOW_Dummy +24)
/* (struct TextAttr *)Default font for window. If not set, use screen font. */
#define WINDOW_BackFillName (WINDOW_Dummy +26)
/* (STRPTR) replaces the default backfill pattern with this file,
* loaded through datatypes.
*/
#define WINDOW_RefWindow (WINDOW_Dummy +41)
/* (struct Window *) Causes WINDOW_Position to be relative to
* to this window vs the screen. (V42)
*/
#define WINDOW_InputEvent (WINDOW_Dummy +42)
/* (struct InputEvent *) returns a pointer to an inputevent
* which will be current *ONLY* after a WHMI_RAWKEY. (V42)
*/
#define WINDOW_HintInfo (WINDOW_Dummy +43)
/* (struct HintInfo *) Static Array of help hints. (V43 BETA)
*/
#define WINDOW_KillWindow (WINDOW_Dummy +44)
#define WINDOW_Application (WINDOW_Dummy +45)
/* ** PRIVATE TAGS SET/GET BY APPLICATION CLASS! ** (V43 BETA)
*/
#define WINDOW_InterpretIDCMPHook (WINDOW_Dummy +46)
/* Interpret IDCMPHook results. (V43 BETA)
*/
#define WINDOW_Parent (WINDOW_Dummy +47)
/* ** PRIVATE TAGS SET/GET BY APPLICATION CLASS! ** (V43 BETA)
*/
#define WINDOW_PreRefreshHook (WINDOW_Dummy +48)
/* (struct Hook *) window.class calls this hook BEFORE RefreshGList() */
#define WINDOW_PostRefreshHook (WINDOW_Dummy +49)
/* (struct Hook *) window.class calls this hook AFTER RefreshGList() */
#define WINDOW_AppWindowPtr (WINDOW_Dummy +50)
/* (struct AppWindow *) GetAttr()'able pointer to AddAppWindow() result.*/
/*** PRIVATE ***/
#define WINDOW_VertProp (WINDOW_Dummy +27)
/* (BOOL) Enable vertical border scroller if true. */
#define WINDOW_VertObject (WINDOW_Dummy +28)
/* (Object *) OM_GET the vertical scroller object pointer. */
#define WINDOW_HorizProp (WINDOW_Dummy +29)
/* (BOOL) Enable horizontal border scroller if true. */
#define WINDOW_HorizObject (WINDOW_Dummy +30)
/* (Object *) OM_GET the horizontal scroller object pointer. */
/****************************************************************************/
/* Pre-defined WM_HANDLEINPUT return codes.
*/
#define WMHI_LASTMSG (0L) /* No more messages */
#define WMHI_IGNORE (~0L) /* Ignore */
#define WMHI_GADGETMASK (0xffff) /* Gadget ID mask value */
#define WMHI_MENUMASK (0xffff) /* Menu ID mask value */
#define WMHI_KEYMASK (0xff) /* Key code mask value */
#define WMHI_CLASSMASK (0xffff0000) /* Event class mask value */
#define WMHI_CLOSEWINDOW (1<<16) /* The close gadget was clicked */
/* or a hook function trigged close */
#define WMHI_GADGETUP (2<<16) /* A gadget was released */
#define WMHI_INACTIVE (3<<16) /* The window was de-activated */
#define WMHI_ACTIVE (4<<16) /* The window was activated */
#define WMHI_NEWSIZE (5<<16) /* The window was resized */
#define WMHI_MENUPICK (6<<16) /* A menu item was picked */
#define WMHI_MENUHELP (7<<16) /* Help was hit in a menu */
#define WMHI_GADGETHELP (8<<16) /* A gadget returns a help code */
#define WMHI_ICONIFY (9<<16) /* Window requests to be iconified */
#define WMHI_UNICONIFY (10<<16) /* Window was uniconified */
#define WMHI_RAWKEY (11<<16) /* Raw key codes */
#define WMHI_VANILLAKEY (12<<16) /* Vanilla key codes */
#define WMHI_CHANGEWINDOW (13<<16) /* Window moved (or depth arranged) */
#define WMHI_INTUITICK (14<<16) /* IDCMP intuitick (maximum 10 per second) */
#define WMHI_MOUSEMOVE (15<<16) /* IDCMP mouse move */
#define WMHI_MOUSEBUTTONS (16<<16) /* IDCMP mouse buttons */
#define WMHI_DISPOSEDWINDOW (17<<16) /* hook function triggered disposal */
/****************************************************************************/
#define WMF_ZOOMED (0x0001) /* Window is in zoomed state */
#define WMF_ZIPWINDOW (0x0002) /* This resize toggled zoom state */
/****************************************************************************/
/* Possible WINDOW_FrontBack values
*/
#define WT_FRONT TRUE
#define WT_BACK FALSE
/* Possible WINDOW_Position values
*/
#define WPOS_CENTERSCREEN (1L) /* Center on the screen */
#define WPOS_CENTERMOUSE (2L) /* Center under the mouse */
#define WPOS_TOPLEFT (3L) /* Top-left of the screen */
#define WPOS_CENTERWINDOW (4L) /* Center in another window */
#define WPOS_FULLSCREEN (5L) /* Top-left of, and fill the screen */
/****************************************************************************/
/*
* Window Methods
*/
#define WM_HANDLEINPUT (0x570001L)
/* The WM_HANDLEINPUT method should be called by for each received
* IDCMP message.
* If the message could be linked to a gadget in the window, the WORD
* pointed to by wmh_Code will be set to the gadget's return code.
*/
struct wmHandle
{
ULONG MethodID; /* WM_HANDLEINPUT */
WORD *wmh_Code; /* The code from the gadget */
};
#define WM_OPEN (0x570002L)
#define WM_CLOSE (0x570003L)
#define WM_NEWPREFS (0x570004L)
#define WM_ICONIFY (0x570005L)
#define WM_RETHINK (0x570006L)
#endif /* CLASSES_WINDOW_H */