1 /****************************************************************************** 2 * 3 * NSSDC/CDF Header file for CDFedit. 4 * 5 * Version 1.4b, 17-Nov-97, Hughes STX. 6 * 7 * Modification history: 8 * 9 * V1.0 24-Jan-94, J Love Original version. 10 * V1.0a 30-Mar-94, J Love Solaris using Gnu C compiler. 11 * V1.1 15-Dec-94, J Love CDF V2.5. 12 * V1.2 23-Jan-95, J Love IRIX 6.x (64-bit). 13 * V1.3 3-Apr-95, J Love POSIX. 14 * V1.3a 20-Jul-95, J Love CDFexport-related changes. 15 * V1.4 30-Sep-96, J Love CDF V2.6. 16 * V1.4a 21-Feb-97, J Love Removed RICE. 17 * V1.4b 17-Nov-97, J Love Windows NT/Visual C++. 18 * 19 ******************************************************************************/ 20 21 #if !defined(CDFEDITh_INCLUDEd__) 22 #define CDFEDITh_INCLUDEd__ 23 24 /****************************************************************************** 25 * Include files. 26 ******************************************************************************/ 27 28 #include "widgets.h" 29 30 #if defined(mac) 31 # include "cdfedit.rh" 32 #endif 33 34 /****************************************************************************** 35 * Settings. 36 ******************************************************************************/ 37 38 #define MAXREC_LIMIT 0 39 40 /****************************************************************************** 41 * Constants. 42 ******************************************************************************/ 43 44 #define ONLINE_HELP_WIDTH 78 /* Doesn't include borders. */ 45 46 #define CDFs_NAME_LEN 53 47 #define MAIN_MENU_1st_THIRD_LEN 20 48 #define MAIN_MENU_2nd_THIRD_LEN 47 49 #define VAR_MORE_MENU_1st_HALF_LEN 34 50 #define VARNAME_FIELD_LEN 16 51 #define ATTRNAME_FIELD_LEN 16 52 #define ATTRNAME_bFIELD_LEN 40 /* Browsing. */ 53 #define ATTRNAME_eFIELD_LEN 44 /* Editing. */ 54 #define DATASPEC_FIELD_LEN 9 55 #define DIMENSIONS_FIELD_LEN 16 56 #define VARIANCES_FIELD_LEN 7 57 #define ENTRYNUM_FIELD_LEN 6 58 #define gAttrENTRYVALUE_FIELD_LEN 44 59 #define vAttrENTRYVALUE_FIELD_LEN 34 60 #define varENTRYVALUE_FIELD_LEN 51 61 62 #define VARNAME_FIELD_BLANKS 1 63 #define DIMENSIONS_FIELD_BLANKS 1 64 #define VARIANCES_FIELD_BLANKS 1 65 #define ATTRNAME_FIELD_BLANKS 1 66 #define ENTRYNUM_FIELD_BLANKS 1 67 #define DATASPEC_FIELD_BLANKS 1 68 69 #define MAX_RECORD_NUMBER_LEN 15 70 #define MAX_DIMENSION_INDEX_LEN 15 71 #define MAX_NUMELEMS_LEN 15 72 #define MAX_ENTRYNUM_LEN 15 73 #define MAX_DIMENSIONALITY_LEN 50 74 #define MAX_ENTRYSTRING_LEN 1000 75 #define MAX_VARIANCES_LEN (1 + 1 + CDF_MAX_DIMS) 76 77 #define DELIMed_ATTR_NAME_LEN (1 + CDF_ATTR_NAME_LEN256 + 1) 78 #define DELIMed_VAR_NAME_LEN (1 + CDF_VAR_NAME_LEN256 + 1) 79 80 #define ENTRYNUM_FIELD_LENx 6 81 #define ENTRYNUM_FIELD_BLANKSx 1 82 #define VARNAME_FIELD_LENx 16 83 #define VARNAME_FIELD_BLANKSx 1 84 #define DATASPEC_FIELD_LENx 9 85 #define DATASPEC_FIELD_BLANKSx 1 86 #define gAttrENTRYVALUE_FIELD_LENx 61 87 #define vAttrENTRYVALUE_FIELD_LENx 51 88 #define ENTRIES_COLUMNx 69 89 90 #define MANY_VARs 30 91 #define MANY_ENTRYs 30 92 #define MANY_ATTRs_AND_ENTRYs 150 93 94 #define FORCDF 1 95 #define FORzVAR 2 96 #define FORrVAR 3 97 98 #define NO_DATATYPE (-1) 99 #define nCOMPRESSIONs 5 100 101 #define MAX_ILHFILE_LEN 12 /* 8.3 because of DOS. */ 102 103 /****************************************************************************** 104 * Item constants. 105 ******************************************************************************/ 106 107 #define EDITzVarsIN 0 108 #define EDITrVarsIN 3 109 #define EDITgAttrsIN 5 110 #define EDITvAttrsIN 7 111 #define CHANGEcompressionIN 1 112 #define CHANGEchecksumIN 2 113 #define CHANGEencodingIN 4 114 #define CHANGEmajorityIN 6 115 #define CHANGEformatIN 8 116 117 #define BROWSEinOFFSET 9 118 #define BROWSEzVarsIN (0 + BROWSEinOFFSET) 119 #define BROWSErVarsIN (1 + BROWSEinOFFSET) 120 #define BROWSEgAttrsIN (2 + BROWSEinOFFSET) 121 #define BROWSEvAttrsIN (3 + BROWSEinOFFSET) 122 123 #define VIEWorMODIFYpadIN 0 124 #define MODIFYblockingIN 1 125 #define MODIFYsparsenessIN 2 126 #define ALLOCATErecordsIN 3 127 #define INITIALrecordsIN 4 128 #define MODIFYcompressionIN 5 129 #define DELETErecordsIN 6 130 131 #define NOcompressionIN 0 132 #define RLE0compressionIN 1 133 #define HUFF0compressionIN 2 134 #define AHUFF0compressionIN 3 135 #define GZIPcompressionIN 4 136 /* #define ZLIB0compressionIN 5 */ 137 138 /****************************************************************************** 139 * QOP constants. 140 ******************************************************************************/ 141 142 #define CDFSPECparm 0 143 144 #define BROWSEqual 0 145 #define NOBROWSEqual 1 146 #define ZMODEqual 2 147 #define FORMATqual 3 148 #define NOFORMATqual 4 149 #define PROMPTqual 5 150 #define NOPROMPTqual 6 151 #define REPORTqual 7 152 #define NEG2POSFP0qual 8 153 #define NONEG2POSFP0qual 9 154 #define CACHEqual 10 155 #define STATSqual 11 156 #define NOSTATSqual 12 157 #define gWITHqual 13 158 #define NOgWITHqual 14 159 #define vWITHqual 15 160 #define NOvWITHqual 16 161 #define ABOUTqual 17 162 163 /****************************************************************************** 164 * Help Identifiers. 165 ******************************************************************************/ 166 167 #define CDFShelpID 0 168 #define CDFhelpID 1 169 #define GATTRShelpID 2 170 #define VATTRShelpID 3 171 #define ENTRIEShelpID 4 172 #define ZVARShelpID 5 173 #define RVARShelpID 6 174 #define CDFNAMEhelpID 7 175 #define RDIMhelpID 8 176 #define FORMAThelpID 9 177 #define ENCODINGhelpID 10 178 #define MAJORITYhelpID 11 179 #define SPEChelpID 12 180 #define DELETECDFhelpID 13 181 #define CREATECDFhelpID 14 182 #define ATTRRENAMEhelpID 15 183 #define VARRENAMEhelpID 16 184 #define ENTRYDATATYPEhelpID 17 185 #define ENTRYVALUEhelpID 18 186 #define ENTRYNUMBERhelpID 19 187 #define VARSELECThelpID 20 188 #define VARNUMELEMShelpID 21 189 #define VARVARYShelpID 22 190 #define RECNUMBERhelpID 23 191 #define DIMINDEXhelpID 24 192 #define VARVALUEhelpID 25 193 #define VARVALUEShelpID 26 194 #define VARMOREhelpID 27 195 #define PADVALUEhelpID 28 196 #define INITIALRECShelpID 29 197 #define EXTENDRECShelpID 30 198 #define VARNAMEhelpID 31 199 #define ATTRNAMEhelpID 32 200 #define ZDIMhelpID 33 201 #define VARDATATYPEhelpID 34 202 #define DELETEATTRhelpID 35 203 #define DELETEENTRYhelpID 36 204 #define DELETEVARhelpID 37 205 #define ALLOCATERECShelpID 38 206 #define GATTRShelpIDx 39 207 #define VATTRShelpIDx 40 208 #define GATTRENTRIEShelpIDx 41 209 #define VATTRENTRIEShelpIDx 42 210 #define CDFCOMPRESSIONhelpID 43 211 #define VARCOMPRESSIONhelpID 44 212 #define SPARSENESShelpID 45 213 #define TEXTENTRIEShelpID 46 214 #define MOREHELPhelpID 47 215 #define GZIPhelpID 48 216 #define DELETERECShelpID 49 217 #define CREATECDFV23helpID 50 218 #define CHECKSUMhelpID 51 219 #define OLHhelpID 99 220 221 /****************************************************************************** 222 * DataType ItemWindow macros. 223 ******************************************************************************/ 224 225 #define DTiwSYMBOLS \ 226 "CDF_CHAR CDF_INT1 CDF_INT2 CDF_INT4 CDF_REAL4 CDF_REAL8 CDF_EPOCH", \ 227 "CDF_UCHAR CDF_UINT1 CDF_UINT2 CDF_UINT4 CDF_FLOAT CDF_DOUBLE CDF_BYTE", \ 228 "CDF_EPOCH16" 229 230 #define DTiwLINEnS 0,0,0,0,0,0,0,1,1,1,1,1,1,1,2 231 #define DTiwCOLs 0,11,22,33,44,55,67,0,11,22,33,44,55,67,0 232 #define DTiwLENs 8,8,8,8,9,9,9,9,9,9,9,9,10,8,11 233 234 /****************************************************************************** 235 * Global variables. 236 ******************************************************************************/ 237 238 #if defined(CDFEDIT) 239 Logical report[3]; /* TRUE if a particular type of status code 240 (error/warning/info) should be reported. */ 241 Logical dumpStatistics; /* TRUE if caching statistics should be 242 displayed when the CDF is closed. */ 243 Logical gAttrsAndEntries; /* TRUE if the entries should be displayed 244 with gAttributes. FALSE if there should 245 be a separate menu for each gAttribute's 246 entries. */ 247 Logical vAttrsAndEntries; /* TRUE if the entries should be displayed 248 with vAttributes. FALSE if there should 249 be a separate menu for each vAttribute's 250 entries. */ 251 char ilhFile[MAX_ILHFILE_LEN+1];/* Name of the inline help file. */ 252 char olhFile[] = "cdfedit.olh"; /* Name of the command line help file. */ 253 Logical browseOnly; /* TRUE if the CDF is being browsed. */ 254 Logical compressed; /* TRUE if the currently open CDF is 255 compressed. */ 256 #else 257 extern Logical report[3]; 258 extern Logical dumpStatistics; 259 extern Logical gAttrsAndEntries; 260 extern Logical vAttrsAndEntries; 261 extern char ilhFile[MAX_ILHFILE_LEN+1]; 262 extern char olhFile[]; 263 extern Logical browseOnly; 264 extern Logical compressed; 265 #endif 266 267 /****************************************************************************** 268 * Function prototypes. 269 ******************************************************************************/ 270 271 Logical EditCDFs PROTOARGs((int argC, char *argV[])); 272 Logical EditCDF PROTOARGs(( 273 char *CDFname, Logical useFormat, long workingCache, long stageCache, 274 long compressCache, long zMode, Logical negToPosFp0 275 )); 276 Logical EditCDFx PROTOARGs(( 277 char *CDFname, Logical useFormat, long workingCache, long stageCache, 278 long compressCache, long zMode, Logical negToPosFp0, Logical *closed 279 )); 280 Logical EditCDFsMenu PROTOARGs(( 281 char *CDFspec, Logical negToPosFp0, Logical useFormat, long zMode, 282 long workingCache, long stageCache, long compressCache 283 )); 284 Logical EditAttrs PROTOARGs((Logical, char *)); 285 Logical EditAttrsX PROTOARGs((Logical, char *)); 286 Logical EditAttrEntriesX PROTOARGs((Logical G, long attrN, long nAttrs)); 287 Logical EditVars PROTOARGs((Logical, char *, Logical)); 288 Logical EditVarValues PROTOARGs((Logical, long, long, Logical, Logical *)); 289 Logical EditVarEntries PROTOARGs((Logical, long, long)); 290 Logical EditVarMore PROTOARGs((Logical, long, Logical, Logical *, long)); 291 Logical EditEntry PROTOARGs((long attrN, long entryN, int entryType, 292 Logical newDataSpec, Logical *changed)); 293 void BuildCDFsMenu PROTOARGs((char *, int *, char ***, char ***, 294 struct ItemWindowStruct *)); 295 Logical BuildCDFmenu PROTOARGs((char *, struct ItemWindowStruct *)); 296 Logical BuildVarMenu PROTOARGs((Logical, char *, struct ItemWindowStruct *)); 297 Logical BuildVarEntryMenu PROTOARGs((Logical, long, long *, long **, 298 Logical **, struct ItemWindowStruct *)); 299 Logical BuildVarMoreMenu PROTOARGs(( 300 Logical, long, struct ItemWindowStruct *, Logical, Logical 301 )); 302 Logical BuildAttrMenu PROTOARGs((Logical G, char *CDFname, long *nAttrs, 303 long **attrNs, long **nEntries, 304 long ***entryNs,struct ItemWindowStruct *IW)); 305 Logical BuildAttrMenuX PROTOARGs((Logical G, char *CDFname, long *nAttrs, 306 long *nAttrsOfScope, long **attrNs, 307 struct ItemWindowStruct *IW)); 308 Logical BuildAttrEntriesMenuX PROTOARGs((Logical G, long attrN, long *nEntries, 309 long **entryNs, int **entryTypes, 310 struct ItemWindowStruct *IW)); 311 Logical BuildVarValueLine PROTOARGs((Logical, long, long, long, long *, 312 long *, long, long, void *, char *, 313 char *, int *, int *, int *, int, 314 char *, Logical *)); 315 Logical BuildTextEditEntriesMenu PROTOARGs(( 316 long attrN, struct EditWindowStruct *EW, Logical *allCharacter 317 )); 318 void FreeVarEntryMenu PROTOARGs((long *, Logical *, 319 struct ItemWindowStruct *)); 320 void FreeAttrMenu PROTOARGs((long nAttrs, long *attrNs, long *nEntries, 321 long **entryNs, struct ItemWindowStruct *IW)); 322 void FreeAttrMenuX PROTOARGs((long *attrNs, struct ItemWindowStruct *IW)); 323 void FreeAttrEntriesMenuX PROTOARGs((long *entryNs, int *entryTypes, 324 struct ItemWindowStruct *IW)); 325 void FreeCDFsMenu PROTOARGs((char **, char **, struct ItemWindowStruct *)); 326 Logical CreateCDF PROTOARGs(( 327 char *CDFdir, char *CDFname, long zMode, Logical useFormat, 328 Logical negToPosFp0, long workingCache, long stageCache, long compressCache, 329 struct ItemWindowStruct *IWcdfs 330 )); 331 Logical CreateEntry PROTOARGs((Logical, long, Logical *)); 332 Logical CreateVar PROTOARGs((Logical, Logical *)); 333 Logical EntryExists PROTOARGs((long, long, int, Logical *)); 334 Logical SpecificationPrompt PROTOARGs(( 335 char CDFspec[DU_MAX_PATH_LEN+1], Logical useFormat, Logical negToPosFp0, 336 long zMode, long workingCache, long stageCache, long compressCache 337 )); 338 Logical TryToEditCDF PROTOARGs(( 339 char *CDFspec, Logical negToPosFp0, Logical useFormat, long zMode, 340 long workingCache, long stageCache, long compressCache 341 )); 342 Logical PromptForSpec PROTOARGs((char CDFspec[DU_MAX_PATH_LEN+1])); 343 Logical ReportStatus PROTOARGs((CDFstatus status, Logical center)); 344 void CDFstatusWindow PROTOARGs((CDFstatus status, Logical center)); 345 void ProblemWindow PROTOARGs((char *message, Logical center)); 346 void MessageWindow VARPROTOARGs((char **lineS, ...)); 347 Logical ConfirmWindow PROTOARGs((int, int, char *, char *, Logical, int)); 348 Logical ConfirmWindow2 PROTOARGs((int, int, char *, char *, Logical, int)); 349 void InitializeScreen PROTOARGs((void)); 350 void CleanupScreen PROTOARGs((void)); 351 Logical EnterIW PROTOARGs((struct ItemWindowStruct *IW, int helpId)); 352 Logical EnterPW PROTOARGs((struct PromptWindowStruct *PW, int helpId)); 353 int IndexInList PROTOARGs((char *match, int nItems, char **items)); 354 int DataTypeItemN PROTOARGs((long dataType)); 355 void ShowFullName PROTOARGs((char *name, Logical attr)); 356 Logical SelectFormat PROTOARGs((void)); 357 Logical SelectEncoding PROTOARGs((void)); 358 Logical SelectMajority PROTOARGs((void)); 359 Logical SelectCompression PROTOARGs((int what, int row, Logical *changed)); 360 Logical SelectSparseness PROTOARGs((Logical zVar, Logical *changed)); 361 Logical SelectDataSpec PROTOARGs(( 362 long *dataType, long *numElems, char *label 363 )); 364 Logical SelectNumElems PROTOARGs(( 365 long dataType, long *numElems, char *label 366 )); 367 Logical SelectChecksum PROTOARGs((void)); 368 Logical UpdateTextEditEntries PROTOARGs(( 369 long attrN, struct EditWindowStruct *EW 370 )); 371 Logical TextEditEntries PROTOARGs((long attrN)); 372 CDFstatus CheckLFS PROTOARGs((char *name, Logical *isLFS, char *fullName 373 )); 374 375 #if defined(mac) 376 Logical EditQOPs PROTOARGs((int *argC, char **argV[])); 377 #endif 378 379 /*****************************************************************************/ 380 381 #endif 382