/*
**  $VER: requester.h 44.1 (19.10.1999)
**  Includes Release 44.1
**
**  requester.class definitions
**
**  (C) Copyright 1987-1999 Amiga, Inc.
**      All Rights Reserved
*/
/*****************************************************************************/
MODULE 'reaction/reaction','intuition/intuition'
/*****************************************************************************/
/* 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    (0x650001)
/* The RM_OPENREQ method should be called whenever you want to open
 * a requester.
 */
OBJECT orRequest
  MethodID:ULONG,             /* RM_OPENREQ */
  or_Attrs:PTR TO TagItem,    /* List of tag attributes */
  or_Window:PTR TO Window,    /* Reference window for requester. */
  or_Screen:PTR TO Screen     /* Reference screen for requester. REQUIRED if or_Window is */

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