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

#ifndef GADGETS_GETFILE_H
#define GADGETS_GETFILE_H
/*
**      $VER: getfile.h 44.1 (19.10.1999)
**      Includes Release 44.1
**
**  Definitions for the getfile.gadget BOOPSI class
**
**      (C) Copyright 1987-1999 Amiga, Inc.
**          All Rights Reserved
*/

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

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

#ifndef INTUITION_GADGETCLASS_H
#include <intuition/gadgetclass.h>
#endif

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

/* Attributes defined by the getfile.gadget class
 */
#define GETFILE_Dummy                   (REACTION_Dummy + 0x60000)

#define GETFILE_TitleText               (GETFILE_Dummy+1)
        /* (STRPTR) Requester title text (default: None) (OM_NEW, OM_SET) */

#define GETFILE_LeftEdge                (GETFILE_Dummy+2)
#define GETFILE_TopEdge                 (GETFILE_Dummy+3)
        /* (WORD) Requester coordinates  (default leftedge: 30, topedge: 20) (OM_NEW, OM_SET, OM_GET) */

#define GETFILE_Width                   (GETFILE_Dummy+4)
#define GETFILE_Height                  (GETFILE_Dummy+5)
        /* (WORD) Requester dimensions (default height: 200, width: 300) (OM_NEW, OM_SET, OM_GET) */

#define GETFILE_File                    (GETFILE_Dummy+6)
        /* (STRPTR) Contents of File gadget (default: None) (OM_NEW, OM_SET, OM_GET, OM_NOTIFY) */

#define GETFILE_Drawer                  (GETFILE_Dummy+7)
        /* (STRPTR) Contents of Drawer gadget (default: None) (OM_NEW, OM_SET, OM_GET, OM_NOTIFY) */

#define GETFILE_FullFile                (GETFILE_Dummy+8)
        /* (STRPTR) Complete file name. Replaces GETFILE_Drawer and GETFILE_File (default: None)
                        (OM_NEW, OM_SET, OM_GET, OM_NOTIFY)
        */

#define GETFILE_FullFileExpand  (GETFILE_Dummy+9)
        /* (BOOL) GETFILE_FullFile will give complete file name(s) expanded with NameFromLock() to
                        remove relative paths. (default: TRUE) (OM_NEW, OM_SET)
        */

#define GETFILE_Pattern                 (GETFILE_Dummy+10)
        /* (STRPTR) Contents of Pattern gadget (default: "#?") (OM_NEW, OM_SET, OM_GET) */

#define GETFILE_DoSaveMode              (GETFILE_Dummy+11)
        /* (BOOL) Being used for saving? (default: FALSE) (OM_NEW, OM_SET) */

#define GETFILE_DoMultiSelect   (GETFILE_Dummy+12)
        /* (BOOL) Do multi-select? (default: FALSE) (OM_NEW, OM_SET) */

#define GETFILE_DoPatterns              (GETFILE_Dummy+13)
        /* (BOOL) Display a Pattern gadget? (default: FALSE) (OM_NEW, OM_SET) */

#define GETFILE_DrawersOnly             (GETFILE_Dummy+14)
        /* (BOOL) Don't display files? (default: FALSE) (OM_NEW, OM_SET) */

#define GETFILE_FilterFunc              (GETFILE_Dummy+15)
        /* (struct Hook *) Function to filter files (default: None) (OM_NEW, OM_SET)  */

#define GETFILE_RejectIcons             (GETFILE_Dummy+16)
        /* (BOOL) Display .info files? (default: FALSE) (OM_NEW, OM_SET)  */

#define GETFILE_RejectPattern   (GETFILE_Dummy+17)
        /* (UBYTE *) Don't display files matching pattern (default: None) (OM_NEW, OM_SET) */

#define GETFILE_AcceptPattern   (GETFILE_Dummy+18)
        /* (UBYTE *) Accept only files matching pattern (default: None) (OM_NEW, OM_SET) */

#define GETFILE_FilterDrawers   (GETFILE_Dummy+19)
        /* (BOOL) Also filter drawers with pattern (default: FALSE) (OM_NEW, OM_SET) */

#define GETFILE_Filelist                (GETFILE_Dummy+20)
        /* (struct List *) If the GETFILE_DoMultiSelect tags was used, you can get a pointer
                        to the list of selected files/drawers using this tag. The ln_Name part of
                        each node will contain the filename/drawername for each selected file with
                        a fully qualified path, even if you didn't use the GETFILE_FullFileExpand.
                        In single-selected mode, the list will contain the single selected file for
                        notification purposes. Don't forget to free the list using the GFILE_FREELIST
                        method! (OM_GET, OM_NOTIFY) */

#define GETFILE_LBNodeStructs   (GETFILE_Dummy+21)
        /* (BOOL) GETFILE_Filelist will give a list with ListBrowserNodes instead of normal
                        struct Node node structures (default: FALSE) (OM_NEW) */

#define GETFILE_ReadOnly                (GETFILE_Dummy+22)
        /* (BOOL) If TRUE, a read-only recessed button gadget is used to present the
                        file/drawer information. If FALSE, an editable string gadget is used.
                        (default: TRUE) (OM_NEW) */

#define GETFILE_FilePartOnly    (GETFILE_Dummy+23)
        /* (BOOL) display file part only - valid ONLY in readonly mode!
         */

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

/*
 * getfile.gadget methods
 */
#define GFILE_REQUEST   (0x620001L)
#define GFILE_FREELIST  (0x620002L)

/* The GFILE_REQUEST method should be called whenever you want to open
 * a file/dir requester.
 */

struct gfileRequest
{
        ULONG MethodID;                                 /* GFILE_REQUEST */
        struct Window *gfile_Window;    /* The window that will be locked when the requester is active. MUST be provided! */
};

/* The GFILE_FREELIST method SHOULD be called when you are done doing a multiselect
 * a file/dir select using the tag GETFILE_DoMultiSelect and have processed the result.
 * This method will free the list of struct Node structures.  If you do not free this
 * list using this method, the list will not be freed until you dispose the class.
 */

struct gfileFreelist
{
        ULONG MethodID;                                 /* GFILE_FREELIST */
        struct List *gfile_Filelist;    /* The list of struct Node obtained using the GETFILE_Filelist tag in OM_GET.
                                                                                Can be NULL, in which case this method will do nothing. */
};

/* macros for calling the methods easily */

#define gfRequestFile(obj, win)         DoMethod(obj, GFILE_REQUEST, win)
#define gfRequestDir(obj, win)          DoMethod(obj, GFILE_REQUEST, win)
#define gfFreeFilelist(obj, list)       DoMethod(obj, GFILE_FREELIST, list)

#endif /* GADGETS_GETFILE_H */