
#include <exec/types.h>
#include <exec/memory.h>
#include <libraries/dos.h>
#include <libraries/dosextens.h>
#include <workbench/startup.h>
#include <workbench/workbench.h>
#include <intuition/intuisup.h>


/* Convienience Macros -ghg- */
#define OpenPropInfo        ((struct PropInfo *)(list->LRGadget[OPENGADGET_PROPGADGET].SpecialInfo))
#define OpenPropImage       ((struct Image *)(list->LRGadget[OPENGADGET_PROPGADGET].GadgetRender))

/* === Screen Defs === */
#define SYSPLANES       2      /* WB colors */
#define BLUE            0
#define WHITE           1
#define BLACK           2
#define YELLW           3

/* === OpenRequester ===================================================== */

#define FILEIO_BORDERS           3
#define FILEIO_BOXES             2
#define FILEIO_IMAGES            3
#define FILEIO_GADGETS           7

#define OPENGADGET_DRAG          0
#define OPENGADGET_CANCEL        1
#define OPENGADGET_OK            2
#define OPENGADGET_UPGADGET      3
#define OPENGADGET_DOWNGADGET    4
#define OPENGADGET_PROPGADGET    5
#define OPENGADGET_SELECTNAME    6

#define OPENSELECT_LEFT          11
#define OPENSELECT_TOP           16

#define OPEN_LINEHEIGHT          8
#define OPENPROP_MINHEIGHT       6


/* === ALERT Definitions ================================================ */
#define ALERT_ABORT              0 /* Always zero! */
#define ALERT_NO_MEMORY          1 /* This and next are duplicates ... */
#define ALERT_OUTOFMEM           1 /* ... intentionally because I forget */
#define ALERT_BAD_DIRECTORY      2


/*--- Coded in filesupp.c ---*/
VOID  ls_WarmStartFileIO       (struct ListSupport *);
VOID  ls_BlankSelectText       (struct ListSupport *, SHORT);
VOID  ls_DrawSelectNames       (struct ListSupport *);
VOID  ls_StuffSelectNames      (struct ListSupport *, SHORT);
VOID  ls_SetNameStart          (struct ListSupport *);
VOID  ls_SetOpenPropPot        (struct ListSupport *, BOOL);
VOID  ls_InitOpenProp          (struct ListSupport *, BOOL);
BOOL  ls_StartOpenRequester    (struct ListSupport *, struct Window *, SHORT, SHORT);
VOID  ls_EndOpenRequester      (struct ListSupport *);
SHORT ls_HandleSelect          (struct ListSupport *, SHORT, LONG, LONG);
LONG  ls_HandleGadget          (struct ListSupport *, struct Gadget *, SHORT, SHORT, LONG, LONG);
VOID  ls_PropMouseMoves        (struct ListSupport *);

/*--- Coded in reqsupp.c ---*/
VOID  ls_DoRequest             (struct ListSupport *);

/*--- Coded in opendata.c --*/
BOOL  ls_AllocateData          (struct ListSupport *);
VOID  ls_DeleteData            (struct ListSupport *);

