
#ifndef LIBRARIES_INSTALLERGUI_H
#define LIBRARIES_INSTALLERGUI_H

/*
**  $VER: installergui.h 38.4 (25.11.99)
**  (C) by Jens Tröger
**
*/

// this is the local function-environment which some
// functions (e.g. igui_AskBool as gui implementation
// for ASKBOOL) get as an argument; you may read/write
// from/to this structure whenever needed; the entries
// are named like the related functions (i.e. that
// fe_Prompt holds the related PROMPT value and so on)
struct FunctionEnvironment
{
  APTR        fe_PRIVATE;  // do not touch
  long        fe_All;
  long        fe_Append;
  long        fe_Assigns;
  APTR        fe_Back;
  struct List fe_Choices;
  struct List fe_Command;
  long        fe_Confirm;
  long        fe_Default;
  long        fe_Dest;
  long        fe_Disk;
  long        fe_Files;
  long        fe_Fonts;
  long        fe_GetDefaultTool;
  long        fe_GetPosition[2];
  long        fe_GetStack;
  struct List fe_GetTooltype;
  long        fe_Help;
  long        fe_Include;
  long        fe_Infos;
  long        fe_NewName;
  long        fe_NewPath;
  long        fe_NoGauge;
  long        fe_NoPosition;
  long        fe_NoReq;
  long        fe_Pattern;
  long        fe_Prompt;
  long        fe_Quiet;
  long        fe_RangeSet;
  long        fe_Range[2];
  long        fe_Resident;
  long        fe_Safe;
  long        fe_SetDefaultTool;
  long        fe_SetPositionSet;
  long        fe_SetPosition[2];
  long        fe_SetStack;
  struct List fe_SetTooltype;
  long        fe_Source;
  long        fe_Swapcolors;
  long        fe_Optional_AskUser;
  long        fe_Optional_Fail;
  long        fe_Optional_NoFail;
  long        fe_Optional_Force;
  long        fe_Optional_OkNoDelete;
};

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

// these are values used by the gui; some functions may get
// it as arguments and some functions have to return them!
// see the example source for more information

#define USER_NOVICE                      0
#define USER_AVERAGE                     1
#define USER_EXPERT                      2

#define LOG_NOLOG                        0
#define LOG_FILE                         1
#define LOG_PRINTER                      2
#define LOG_CONSOLE                      3

#define INSTALL_FOR_REAL                 0
#define INSTALL_PRETEND                  1

#define GUIEVENT_NOTHING                 0
#define GUIEVENT_PROCEED                 1
#define GUIEVENT_ABORT                   2
#define GUIEVENT_QUIT                    3
#define GUIEVENT_BACK                    4
#define GUIEVENT_PRIVATE                 5
#define GUIEVENT_DROPPED                 6

#define GUIERROR_NOERROR                 0
#define GUIERROR_OUT_OF_MEMORY           1
#define GUIERROR_NO_GUI_OBJECT           2

#define GUI_QUERYOBJ_SCREEN              0
#define GUI_QUERYOBJ_WINDOW              1

#define GUI_QUERYATTR_WIDTH              0
#define GUI_QUERYATTR_HEIGHT             1
#define GUI_QUERYATTR_DEPTH              2
#define GUI_QUERYATTR_COLORS             3
#define GUI_QUERYATTR_UPPER              4
#define GUI_QUERYATTR_LOWER              5
#define GUI_QUERYATTR_LEFT               6
#define GUI_QUERYATTR_RIGHT              7

#define GUI_EFFECT_POS_UPPERLEFT         0x00
#define GUI_EFFECT_POS_UPPERCENTER       0x01
#define GUI_EFFECT_POS_UPPERRIGHT        0x02
#define GUI_EFFECT_POS_CENTERLEFT        0x10
#define GUI_EFFECT_POS_CENTERCENTER      0x11
#define GUI_EFFECT_POS_CENTERRIGHT       0x12
#define GUI_EFFECT_POS_LOWERLEFT         0x20
#define GUI_EFFECT_POS_LOWERCENTER       0x21
#define GUI_EFFECT_POS_LOWERRIGHT        0x22

#define GUI_EFFECT_EFFECT_NONE           GUI_EFFECT_EFFECT_HORIZONTAL
#define GUI_EFFECT_EFFECT_HORIZONTAL     0
#define GUI_EFFECT_EFFECT_RADIAL         1
#define GUI_EFFECT_EFFECT_FADE           2

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

// since the global environment and the texts simply come as
// an array, you must use these values to access the elements
// of theses arrays.

// offsets for the global environment; you may read/write from/to this
// array if needed
enum { GENV_SCRIPT = 0, GENV_APPNAME, GENV_LANGUAGE, GENV_ABORT_BUTTON, GENV_PROCEED_BUTTON,
       GENV_USER, GENV_LOG, GENV_LOGFILENAME, GENV_LOGHANDLE, GENV_DONTDELFROMSYSDIRS,
       GENV_INSTALL, GENV_WELCOME, GENV_INSTALLER_VERSION, GENV_QUIET_EXIT, GENV_STARTUP,
       GENV_LAZYCOMPILE, GENV_DEBUGMODE, GENV_UNINSTALL, GENV_PACKAGE_COMMENT,
       GENV_ALWAYSCONFIRM, GENV_ALLOW_PRINT, GENV_ALLOW_PRETEND, GENV_ALLOW_LOG, GENV_MINUSER,
       GENV_DEFUSER };

// offsets for the text array; you must not write to this array, just read
// the values; all texts are already localized
enum { START_NOSCRIPT = 0, START_BUTTONS,

       WELCOME, OK, ABOUT, INTERESTING, THANX, BYE, COMPLETE, WORKING, BUILTINGUI,
       YES, NO, MKDIR_INFO, MKDIR_ASKNAME, MKDIR_PROMPT,
       ASKNUM_RANGE, REALLY_QUIT, YES_NO, IGNORE_PROTOCOL_QUIT, IGNORE_QUIT, ERROR,
       MUST_INSERT_DISK, FAILED_OPEN_LOG, EMPTY, COPYLIB_PATTERN, COPYLIB_VERSION,
       COPYLIB_NOVERSION, SOURCEFILE, DESTFILE, DESTDIR, UNPROTECT_DEST, BACK,

       HELP_INTRO1, HELP_INTRO2, HELP_ASKBOOL, HELP_ASKOPTIONS, HELP_ASKCHOICE, HELP_ASKNUMBER,
       HELP_ASKSTRING, HELP_ASKDISK, HELP_ASKFILE, HELP_ASKDIR, HELP_COPYLIB, HELP_COPYFILES,
       HELP_MAKEDIR, HELP_STARTUP,

       GUIERR,

       INTRO1_WELCOME, INTRO1_MODE, INTRO1_NOVICE, INTRO1_AVERAGE, INTRO1_EXPERT,

       INTRO2_OPTS, INTRO2_REAL, INTRO2_PRETEND, INTRO2_LOG, INTRO2_PRINTER, INTRO2_FILE,
       INTRO2_CONSOLE, INTRO2_NONE, INTRO2_ADVANCED, INTRO2_DEBUG, INTRO2_NOSTARTUPSEQUENCE, INTRO2_UNINSTALL,
       INTRO2_DONTDELFROMSYSDIRS, INTRO2_PACKAGE_COMMENT, INTRO2_ALWAYSCONFIRM,

       BUTTON_PROCEED_INSTALL, BUTTON_ABORT, BUTTON_ABOUT, BUTTON_HELP, BUTTON_PARENT,
       BUTTON_DRIVES, BUTTON_MKDIR, BUTTON_SKIP, BUTTON_CANCEL, BUTTON_QUIT, BUTTON_NEXTPAGE,
       BUTTON_PREVPAGE, BUTTON_BACK, BUTTON_FINISH,

       SPERR_TEMPLATE, SPERR_SYNTAX_ERROR, SPERR_PARSE_STACK_OVERFLOW, SPERR_PARSE_STACK_UNDERFLOW,
       SPERR_STILL_SOURCE_LEFT, SPERR_UNKNOWN_SYMBOL, SPERR_UNKNOWN_ERROR, SPERR_STACK_CORRUPT,
       SPERR_OUT_OF_MEMORY, SPERR_UNKNOWN_SCANNER_ERR, SPERR_UNTERMINATED_STRING,
       SPERR_NUMBER_TOO_LONG,

       SYNERR_LPAREN_EXPECTED, SYNERR_RPAREN_EXPECTED, SYNERR_LPAREN_OR_FUNCTION_EXPECTED,
       SYNERR_FUNCTION_NOT_ALLOWED, SYNERR_UNEXPECTED_END, SYNERR_MISSING_EXPR,
       SYNERR_FUNCTIONAL_EXPR_NEEDED,

       IERR_TEMPLATE, IERR_UNKNOWN,
       IERR_DIV_ZERO, IERR_UNIMPLEMENTED, IERR_NOT_INIT, IERR_IDENT_EXPECTED,
       IERR_OUT_OF_RANGE, IERR_TYPE_CONFLICT, IERR_NUMBER_TOO_LONG, IERR_UNKNOWN_USER_FUN,
       IERR_STACK_FULL, IERR_STR_FORMAT_ERR, IERR_MISSING_ARG,
       IERR_TOO_MANY_ARGS, IERR_MISSING_PARAM_FUN, IERR_BAD_SOURCE, IERR_NEED_STRING_TYPE,
       IERR_NEED_NUM_TYPE, IERR_NEED_PARAM_TYPE, IERR_ERROR_IN_SCRIPT, IERR_BAD_PARAMETER_DATA,
       IERR_NO_REXX_SERVER,  IERR_BAD_SYMBOL_PROPERTY,

       TERR_TEMPLATE, TERR_ARG_NUM, TERR_PARAM_OUTSIDE, TERR_CANNOT_NEST, TERR_MUST_BE_IDENT,
       TERR_UNINIT_IDENT, TERR_UNKNOWN, TERR_MISSING_PARAM, TERR_WRONG_PARAM, TERR_UNDEF_USERFUN,
       TERR_USELESS_EXPR,

       MENU_PROJECT, MENU_ABOUT, MENU_ABOUTGUI, MENU_ICONIFY, MENU_QUIT,

       CONFIRM_COPYFILES, CONFIRM_COPYLIB, CONFIRM_DELETE, CONFIRM_EXECUTE, CONFIRM_ICONINFO,
       CONFIRM_MAKEDIR, CONFIRM_RENAME, CONFIRM_REXX, CONFIRM_RUN, CONFIRM_STARTUP,
       CONFIRM_TEXTFILE, CONFIRM_TOOLTYPE, CONFIRM_OPENWBOBJECT,

       LOG_HEADER, LOG_MAKEDIR,
       LOG_COPYFILE, LOG_COPYDIR, LOG_ASKCHOICE, LOG_ASKOPTIONS_NONE, LOG_ASKOPTIONS_OPTS,
       LOG_ASKSTRING, LOG_ASKNUMBER, LOG_ASKBOOL, LOG_ASKDIR, LOG_ASKFILE,
       LOG_DEFAULTDEST, LOG_DONTKNOW, LOG_TEXTFILE_START, LOG_TEXTFILE_END, LOG_EXECUTE, LOG_RUN,
       LOG_REXX, LOG_RENAME, LOG_DELETE, LOG_ABORT, LOG_EXIT, LOG_STARTUP_START,
       LOG_STARTUP_END,

       BREAK_INTERPRETATION_GADS, BREAK_INTERPRETATION

     };

#endif



