/******************************************************************************
*
* NSSDC/CDF Header file for CDFedit.
*
* Version 1.4b, 17-Nov-97, Hughes STX.
*
* Modification history:
*
* V1.0 24-Jan-94, J Love Original version.
* V1.0a 30-Mar-94, J Love Solaris using Gnu C compiler.
* V1.1 15-Dec-94, J Love CDF V2.5.
* V1.2 23-Jan-95, J Love IRIX 6.x (64-bit).
* V1.3 3-Apr-95, J Love POSIX.
* V1.3a 20-Jul-95, J Love CDFexport-related changes.
* V1.4 30-Sep-96, J Love CDF V2.6.
* V1.4a 21-Feb-97, J Love Removed RICE.
* V1.4b 17-Nov-97, J Love Windows NT/Visual C++.
*
******************************************************************************/
#if !defined(CDFEDITh_INCLUDEd__)
#define CDFEDITh_INCLUDEd__
/******************************************************************************
* Include files.
******************************************************************************/
#include "widgets.h"
#if defined(mac)
# include "cdfedit.rh"
#endif
/******************************************************************************
* Settings.
******************************************************************************/
#define MAXREC_LIMIT 0
/******************************************************************************
* Constants.
******************************************************************************/
#define ONLINE_HELP_WIDTH 78 /* Doesn't include borders. */
#define CDFs_NAME_LEN 53
#define MAIN_MENU_1st_THIRD_LEN 20
#define MAIN_MENU_2nd_THIRD_LEN 47
#define VAR_MORE_MENU_1st_HALF_LEN 34
#define VARNAME_FIELD_LEN 16
#define ATTRNAME_FIELD_LEN 16
#define ATTRNAME_bFIELD_LEN 40 /* Browsing. */
#define ATTRNAME_eFIELD_LEN 44 /* Editing. */
#define DATASPEC_FIELD_LEN 9
#define DIMENSIONS_FIELD_LEN 16
#define VARIANCES_FIELD_LEN 7
#define ENTRYNUM_FIELD_LEN 6
#define gAttrENTRYVALUE_FIELD_LEN 44
#define vAttrENTRYVALUE_FIELD_LEN 34
#define varENTRYVALUE_FIELD_LEN 51
#define VARNAME_FIELD_BLANKS 1
#define DIMENSIONS_FIELD_BLANKS 1
#define VARIANCES_FIELD_BLANKS 1
#define ATTRNAME_FIELD_BLANKS 1
#define ENTRYNUM_FIELD_BLANKS 1
#define DATASPEC_FIELD_BLANKS 1
#define MAX_RECORD_NUMBER_LEN 15
#define MAX_DIMENSION_INDEX_LEN 15
#define MAX_NUMELEMS_LEN 15
#define MAX_ENTRYNUM_LEN 15
#define MAX_DIMENSIONALITY_LEN 50
#define MAX_ENTRYSTRING_LEN 1000
#define MAX_VARIANCES_LEN (1 + 1 + CDF_MAX_DIMS)
#define DELIMed_ATTR_NAME_LEN (1 + CDF_ATTR_NAME_LEN256 + 1)
#define DELIMed_VAR_NAME_LEN (1 + CDF_VAR_NAME_LEN256 + 1)
#define ENTRYNUM_FIELD_LENx 6
#define ENTRYNUM_FIELD_BLANKSx 1
#define VARNAME_FIELD_LENx 16
#define VARNAME_FIELD_BLANKSx 1
#define DATASPEC_FIELD_LENx 9
#define DATASPEC_FIELD_BLANKSx 1
#define gAttrENTRYVALUE_FIELD_LENx 61
#define vAttrENTRYVALUE_FIELD_LENx 51
#define ENTRIES_COLUMNx 69
#define MANY_VARs 30
#define MANY_ENTRYs 30
#define MANY_ATTRs_AND_ENTRYs 150
#define FORCDF 1
#define FORzVAR 2
#define FORrVAR 3
#define NO_DATATYPE (-1)
#define nCOMPRESSIONs 5
#define MAX_ILHFILE_LEN 12 /* 8.3 because of DOS. */
/******************************************************************************
* Item constants.
******************************************************************************/
#define EDITzVarsIN 0
#define EDITrVarsIN 3
#define EDITgAttrsIN 5
#define EDITvAttrsIN 7
#define CHANGEcompressionIN 1
#define CHANGEchecksumIN 2
#define CHANGEencodingIN 4
#define CHANGEmajorityIN 6
#define CHANGEformatIN 8
#define BROWSEinOFFSET 9
#define BROWSEzVarsIN (0 + BROWSEinOFFSET)
#define BROWSErVarsIN (1 + BROWSEinOFFSET)
#define BROWSEgAttrsIN (2 + BROWSEinOFFSET)
#define BROWSEvAttrsIN (3 + BROWSEinOFFSET)
#define VIEWorMODIFYpadIN 0
#define MODIFYblockingIN 1
#define MODIFYsparsenessIN 2
#define ALLOCATErecordsIN 3
#define INITIALrecordsIN 4
#define MODIFYcompressionIN 5
#define DELETErecordsIN 6
#define NOcompressionIN 0
#define RLE0compressionIN 1
#define HUFF0compressionIN 2
#define AHUFF0compressionIN 3
#define GZIPcompressionIN 4
/* #define ZLIB0compressionIN 5 */
/******************************************************************************
* QOP constants.
******************************************************************************/
#define CDFSPECparm 0
#define BROWSEqual 0
#define NOBROWSEqual 1
#define ZMODEqual 2
#define FORMATqual 3
#define NOFORMATqual 4
#define PROMPTqual 5
#define NOPROMPTqual 6
#define REPORTqual 7
#define NEG2POSFP0qual 8
#define NONEG2POSFP0qual 9
#define CACHEqual 10
#define STATSqual 11
#define NOSTATSqual 12
#define gWITHqual 13
#define NOgWITHqual 14
#define vWITHqual 15
#define NOvWITHqual 16
#define ABOUTqual 17
/******************************************************************************
* Help Identifiers.
******************************************************************************/
#define CDFShelpID 0
#define CDFhelpID 1
#define GATTRShelpID 2
#define VATTRShelpID 3
#define ENTRIEShelpID 4
#define ZVARShelpID 5
#define RVARShelpID 6
#define CDFNAMEhelpID 7
#define RDIMhelpID 8
#define FORMAThelpID 9
#define ENCODINGhelpID 10
#define MAJORITYhelpID 11
#define SPEChelpID 12
#define DELETECDFhelpID 13
#define CREATECDFhelpID 14
#define ATTRRENAMEhelpID 15
#define VARRENAMEhelpID 16
#define ENTRYDATATYPEhelpID 17
#define ENTRYVALUEhelpID 18
#define ENTRYNUMBERhelpID 19
#define VARSELECThelpID 20
#define VARNUMELEMShelpID 21
#define VARVARYShelpID 22
#define RECNUMBERhelpID 23
#define DIMINDEXhelpID 24
#define VARVALUEhelpID 25
#define VARVALUEShelpID 26
#define VARMOREhelpID 27
#define PADVALUEhelpID 28
#define INITIALRECShelpID 29
#define EXTENDRECShelpID 30
#define VARNAMEhelpID 31
#define ATTRNAMEhelpID 32
#define ZDIMhelpID 33
#define VARDATATYPEhelpID 34
#define DELETEATTRhelpID 35
#define DELETEENTRYhelpID 36
#define DELETEVARhelpID 37
#define ALLOCATERECShelpID 38
#define GATTRShelpIDx 39
#define VATTRShelpIDx 40
#define GATTRENTRIEShelpIDx 41
#define VATTRENTRIEShelpIDx 42
#define CDFCOMPRESSIONhelpID 43
#define VARCOMPRESSIONhelpID 44
#define SPARSENESShelpID 45
#define TEXTENTRIEShelpID 46
#define MOREHELPhelpID 47
#define GZIPhelpID 48
#define DELETERECShelpID 49
#define CREATECDFV23helpID 50
#define CHECKSUMhelpID 51
#define OLHhelpID 99
/******************************************************************************
* DataType ItemWindow macros.
******************************************************************************/
#define DTiwSYMBOLS \
"CDF_CHAR CDF_INT1 CDF_INT2 CDF_INT4 CDF_REAL4 CDF_REAL8 CDF_EPOCH", \
"CDF_UCHAR CDF_UINT1 CDF_UINT2 CDF_UINT4 CDF_FLOAT CDF_DOUBLE CDF_BYTE", \
"CDF_EPOCH16"
#define DTiwLINEnS 0,0,0,0,0,0,0,1,1,1,1,1,1,1,2
#define DTiwCOLs 0,11,22,33,44,55,67,0,11,22,33,44,55,67,0
#define DTiwLENs 8,8,8,8,9,9,9,9,9,9,9,9,10,8,11
/******************************************************************************
* Global variables.
******************************************************************************/
#if defined(CDFEDIT)
Logical report[3]; /* TRUE if a particular type of status code
(error/warning/info) should be reported. */
Logical dumpStatistics; /* TRUE if caching statistics should be
displayed when the CDF is closed. */
Logical gAttrsAndEntries; /* TRUE if the entries should be displayed
with gAttributes. FALSE if there should
be a separate menu for each gAttribute's
entries. */
Logical vAttrsAndEntries; /* TRUE if the entries should be displayed
with vAttributes. FALSE if there should
be a separate menu for each vAttribute's
entries. */
char ilhFile[MAX_ILHFILE_LEN+1];/* Name of the inline help file. */
char olhFile[] = "cdfedit.olh"; /* Name of the command line help file. */
Logical browseOnly; /* TRUE if the CDF is being browsed. */
Logical compressed; /* TRUE if the currently open CDF is
compressed. */
#else
extern Logical report[3];
extern Logical dumpStatistics;
extern Logical gAttrsAndEntries;
extern Logical vAttrsAndEntries;
extern char ilhFile[MAX_ILHFILE_LEN+1];
extern char olhFile[];
extern Logical browseOnly;
extern Logical compressed;
#endif
/******************************************************************************
* Function prototypes.
******************************************************************************/
Logical EditCDFs PROTOARGs((int argC, char *argV[]));
Logical EditCDF PROTOARGs((
char *CDFname, Logical useFormat, long workingCache, long stageCache,
long compressCache, long zMode, Logical negToPosFp0
));
Logical EditCDFx PROTOARGs((
char *CDFname, Logical useFormat, long workingCache, long stageCache,
long compressCache, long zMode, Logical negToPosFp0, Logical *closed
));
Logical EditCDFsMenu PROTOARGs((
char *CDFspec, Logical negToPosFp0, Logical useFormat, long zMode,
long workingCache, long stageCache, long compressCache
));
Logical EditAttrs PROTOARGs((Logical, char *));
Logical EditAttrsX PROTOARGs((Logical, char *));
Logical EditAttrEntriesX PROTOARGs((Logical G, long attrN, long nAttrs));
Logical EditVars PROTOARGs((Logical, char *, Logical));
Logical EditVarValues PROTOARGs((Logical, long, long, Logical, Logical *));
Logical EditVarEntries PROTOARGs((Logical, long, long));
Logical EditVarMore PROTOARGs((Logical, long, Logical, Logical *, long));
Logical EditEntry PROTOARGs((long attrN, long entryN, int entryType,
Logical newDataSpec, Logical *changed));
void BuildCDFsMenu PROTOARGs((char *, int *, char ***, char ***,
struct ItemWindowStruct *));
Logical BuildCDFmenu PROTOARGs((char *, struct ItemWindowStruct *));
Logical BuildVarMenu PROTOARGs((Logical, char *, struct ItemWindowStruct *));
Logical BuildVarEntryMenu PROTOARGs((Logical, long, long *, long **,
Logical **, struct ItemWindowStruct *));
Logical BuildVarMoreMenu PROTOARGs((
Logical, long, struct ItemWindowStruct *, Logical, Logical
));
Logical BuildAttrMenu PROTOARGs((Logical G, char *CDFname, long *nAttrs,
long **attrNs, long **nEntries,
long ***entryNs,struct ItemWindowStruct *IW));
Logical BuildAttrMenuX PROTOARGs((Logical G, char *CDFname, long *nAttrs,
long *nAttrsOfScope, long **attrNs,
struct ItemWindowStruct *IW));
Logical BuildAttrEntriesMenuX PROTOARGs((Logical G, long attrN, long *nEntries,
long **entryNs, int **entryTypes,
struct ItemWindowStruct *IW));
Logical BuildVarValueLine PROTOARGs((Logical, long, long, long, long *,
long *, long, long, void *, char *,
char *, int *, int *, int *, int,
char *, Logical *));
Logical BuildTextEditEntriesMenu PROTOARGs((
long attrN, struct EditWindowStruct *EW, Logical *allCharacter
));
void FreeVarEntryMenu PROTOARGs((long *, Logical *,
struct ItemWindowStruct *));
void FreeAttrMenu PROTOARGs((long nAttrs, long *attrNs, long *nEntries,
long **entryNs, struct ItemWindowStruct *IW));
void FreeAttrMenuX PROTOARGs((long *attrNs, struct ItemWindowStruct *IW));
void FreeAttrEntriesMenuX PROTOARGs((long *entryNs, int *entryTypes,
struct ItemWindowStruct *IW));
void FreeCDFsMenu PROTOARGs((char **, char **, struct ItemWindowStruct *));
Logical CreateCDF PROTOARGs((
char *CDFdir, char *CDFname, long zMode, Logical useFormat,
Logical negToPosFp0, long workingCache, long stageCache, long compressCache,
struct ItemWindowStruct *IWcdfs
));
Logical CreateEntry PROTOARGs((Logical, long, Logical *));
Logical CreateVar PROTOARGs((Logical, Logical *));
Logical EntryExists PROTOARGs((long, long, int, Logical *));
Logical SpecificationPrompt PROTOARGs((
char CDFspec[DU_MAX_PATH_LEN+1], Logical useFormat, Logical negToPosFp0,
long zMode, long workingCache, long stageCache, long compressCache
));
Logical TryToEditCDF PROTOARGs((
char *CDFspec, Logical negToPosFp0, Logical useFormat, long zMode,
long workingCache, long stageCache, long compressCache
));
Logical PromptForSpec PROTOARGs((char CDFspec[DU_MAX_PATH_LEN+1]));
Logical ReportStatus PROTOARGs((CDFstatus status, Logical center));
void CDFstatusWindow PROTOARGs((CDFstatus status, Logical center));
void ProblemWindow PROTOARGs((char *message, Logical center));
void MessageWindow VARPROTOARGs((char **lineS, ...));
Logical ConfirmWindow PROTOARGs((int, int, char *, char *, Logical, int));
Logical ConfirmWindow2 PROTOARGs((int, int, char *, char *, Logical, int));
void InitializeScreen PROTOARGs((void));
void CleanupScreen PROTOARGs((void));
Logical EnterIW PROTOARGs((struct ItemWindowStruct *IW, int helpId));
Logical EnterPW PROTOARGs((struct PromptWindowStruct *PW, int helpId));
int IndexInList PROTOARGs((char *match, int nItems, char **items));
int DataTypeItemN PROTOARGs((long dataType));
void ShowFullName PROTOARGs((char *name, Logical attr));
Logical SelectFormat PROTOARGs((void));
Logical SelectEncoding PROTOARGs((void));
Logical SelectMajority PROTOARGs((void));
Logical SelectCompression PROTOARGs((int what, int row, Logical *changed));
Logical SelectSparseness PROTOARGs((Logical zVar, Logical *changed));
Logical SelectDataSpec PROTOARGs((
long *dataType, long *numElems, char *label
));
Logical SelectNumElems PROTOARGs((
long dataType, long *numElems, char *label
));
Logical SelectChecksum PROTOARGs((void));
Logical UpdateTextEditEntries PROTOARGs((
long attrN, struct EditWindowStruct *EW
));
Logical TextEditEntries PROTOARGs((long attrN));
CDFstatus CheckLFS PROTOARGs((char *name, Logical *isLFS, char *fullName
));
#if defined(mac)
Logical EditQOPs PROTOARGs((int *argC, char **argV[]));
#endif
/*****************************************************************************/
#endif
syntax highlighted by Code2HTML, v. 0.9.1