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

#ifndef CLASSES_REQUESTER_H
#define CLASSES_REQUESTER_H
/*
**      $VER: requester.h 44.1 (19.10.1999)
**      Includes Release 44.1
**
**      requester.class definitions
**
**      (C) Copyright 1987-1999 Amiga, Inc.
**          All Rights Reserved
*/

/*****************************************************************************/

#ifndef REACTION_REACTION_H
#include <reaction/reaction.h>
#endif

/*****************************************************************************/

/* Attributes defined by the requester.gadget class
 */
#define REQ_Dummy                               (REACTION_Dummy + 0x45000)
#define REQS_Dummy                              (REQ_Dummy + 0x100)
#define REQI_Dummy                              (REQ_Dummy + 0x200)
#define REQP_Dummy                              (REQ_Dummy + 0x300)

#define REQ_Type                                (REQ_Dummy+1)
        /* (ULONG) Type of requester. See definitions below.
                        (default: REQTYPE_INFO) (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQ_TitleText                   (REQ_Dummy+2)
        /* (UBYTE *) Title text of the requester (default: None)
                                (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQ_BodyText                    (REQ_Dummy+3)
        /* (UBYTE *) Body text of the requester (default: None)
                                (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQ_GadgetText                  (REQ_Dummy+4)
        /* (UBYTE *) Gadget text(s) for the requester
                        (default: " _Ok | _Cancel ") (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQ_ReturnCode                  (REQ_Dummy+5)
        /* (ULONG) Last return code of the requester (default: 0)
                                (OM_GET) */

#define REQ_TabSize                             (REQ_Dummy+6) /* NOT IMPLEMENTED YET */
        /* (ULONG) Tab size to use when formatting the bodytext (default: 8)
                                (OM_NEW, OM_SET, RM_OPENREQ) */

/**********************************
* integer request type attributes *
**********************************/

#define REQI_Minimum                    (REQI_Dummy+1)
        /* (LONG) Minimum allowed value (default: MININT) (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQI_Maximum                    (REQI_Dummy+2)
        /* (LONG) Maximum allowed value (default: MAXINT) (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQI_Invisible                  (REQI_Dummy+3) /* NOT IMPLEMENTED YET */
        /* (BOOL) Integer input will be echoed with '.' and not what the user
                        actually types (default: FALSE) (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQI_Number                             (REQI_Dummy+4)
        /* (LONG) Number to show in gadget (default: 0)
                        (OM_NEW, OM_SET, OM_GET, RM_OPENREQ) */

#define REQI_Arrows                             (REQI_Dummy+5)
        /* (BOOL) Show arrows to the right of the integer gadget (default: FALSE)
                        (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQI_MaxChars                   (REQI_Dummy+6)
        /* (UWORD) Maximum number of characters for the number (including negative
                        sign). (default: 10) (OM_NEW, OM_SET, RM_OPENREQ) */

/*********************************
* string request type attributes *
*********************************/

#define REQS_AllowEmpty                 (REQS_Dummy+1)
        /* (BOOL) Allow empty string to be accepted. (default: FALSE)
                        (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQS_Invisible                  (REQI_Invisible) /* NOT IMPLEMENTED YET */
        /* (BOOL) String input will be echoed with '.' and not what the user
                        actually types (default: FALSE) (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQS_Buffer                             (REQS_Dummy+2)
        /* (UBYTE *) Buffer used in the string gadget. MUST be provided.
                        (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQS_ShowDefault                (REQS_Dummy+3)
        /* (BOOL) Show content of REQS_Buffer in string gadget. (default: TRUE)
                        (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQS_MaxChars                   (REQS_Dummy+4)
        /* (ULONG) Maximum number of characters in string gadget. Must not be
                        larger than size of REQS_Buffer - 1. (default: 127)
                        (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQS_ChooserArray               (REQS_Dummy+5)
        /* (UBYTE **) An array of strings that will be added to a chooser gadget
                        to the right of the string gadget.
                        (OM_NEW, OM_SET, RM_OPENREQ) */

#define REQS_ChooserActive      (REQS_Dummy+6)
        /* (ULONG) The current active entry among the strings passed in
                        using REQS_ChooserOptions.  (default: 0)
                        (OM_NEW, OM_SET, OM_GET, RM_OPENREQ) */

/**********************************
* progress window type attributes *
**********************************/

#define REQP_Total                              (REQP_Dummy+1)
        /* (ULONG) Total number of levels for the progressbar. (default: 100)
                        (OM_NEW, OM_SET, RM_OPENREQ) */
#define REQP_Current                    (REQP_Dummy+2)
        /* (ULONG) The current level of the progressbar. (default: 0)
                        (OM_NEW, OM_SET, RM_OPENREQ) */
#define REQP_AbortText                  REQ_GadgetText
        /* (UBYTE *) Text to be put into the gadget that will abort the progressbar.
                        If not present, no gadget will be created.
                        (OM_NEW, OM_SET, RM_OPENREQ) */
#define REQP_ProgressText               REQ_BodyText
        /* (UBYTE *) Text to be shown over the progressbar.
                        (OM_NEW, OM_SET, RM_OPENREQ) */
#define REQP_OpenInactive               (REQP_Dummy+3)
        /* (BOOL) Open window inactive if ta_Data is TRUE.
                        (OM_NEW, RM_OPENREQ) */
#define REQP_NoText                             (REQP_Dummy+4)
        /* (BOOL)  No text-gadget in progressbar if ti_Data is TRUE
                        (OM_NEW, RM_OPENREQ) */
#define REQP_Dynamic                    (REQP_Dummy+5)
        /* (BOOL)  TRUE if the pb should size automatically when
                a too long progresstext is set. Default is TRUE.
                (OM_NEW, OM_SET, RM_OPENREQ) */
#define REQP_CenterWindow               (REQP_Dummy+6)
        /* (struct Window *) The progressbar is centered over this window.
                (OM_NEW, OM_SET, RM_OPENREQ) */
#define REQP_LastPosition               (REQP_Dummy+7)
        /* (BOOL) Open progressbar on the same place the last was. Default is TRUE.
                (OM_NEW, OM_SET, RM_OPENREQ) */
#define REQP_Percent                    (REQP_Dummy+8)
        /* (BOOL) Render numeric percentage display.
                (OM_NEW, RM_OPENREQ) */
#define REQP_Ticks                              (REQP_Dummy+9)
        /* (WORD) If present, how many tick marks
                (OM_NEW, RM_OPENREQ) */
#define REQP_ShortTicks                 (REQP_Dummy+10)
        /* (BOOL) Enable small intermediate tick marks.
                (OM_NEW, RM_OPENREQ) */

/*****************************************************************************/

/*
 * requester.class methods
 */
#define RM_OPENREQ              (0x650001L)

/* The RM_OPENREQ method should be called whenever you want to open
 * a requester.
 */

struct orRequest
{
        ULONG MethodID;                         /* RM_OPENREQ */
        struct TagItem *or_Attrs;       /* List of tag attributes */
        struct Window *or_Window;       /* Reference window for requester. */
        struct Screen *or_Screen;       /* Reference screen for requester. REQUIRED if or_Window is */
                                                                /* not supplied */
};

/* The REQ_Type must be used to set what type of requester you
 * want to use. Here are the definitions:
 */
#define REQTYPE_INFO            0               /* Normal information/query requester like EasyRequest() */
#define REQTYPE_INTEGER         1               /* Get an integer from the user */
#define REQTYPE_STRING          2               /* Get a string from the user */
#define REQTYPE_PROGRESS        3               /* Progressbar window (NOT IMPLEMENTED YET) */

/* Useful macros */
#ifndef RequesterObject
#define OpenRequester(obj, win) DoMethod(obj, RM_OPENREQ, NULL, win, NULL, TAG_DONE)
#define RequesterObject                 NewObject(REQUESTER_GetClass(), NULL
#endif

#endif /* CLASSES_REQUESTER_H */