[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

#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 */