This is imxPublicAPI.h in view mode; [Download] [Up]
/*
* L o t u s I m p r o v
*
* Filename: imxPublicAPI.h
* Created: Oct 16, 1990
* Author: Curt Gridley
* Description: public Improv API interface
*
* Copyright (c) Lotus Development Corporation 1990, 1991
*/
#if !defined(IMXPUBLICAPI_H)
#define IMXPUBLICAPI_H
//
// Status codes returned by most API calls.
//
#define IMX_ERRORS_PER_SUBSYS (1024)
#define IMX_ERR_BASE (6 * IMX_ERRORS_PER_SUBSYS)
typedef enum imxerrorcode_enum {
imxerr_OK = 0,
imxerr_UNKNOWN = -(IMX_ERR_BASE + IMX_ERRORS_PER_SUBSYS - 1),
imxerr_MSG_ERROR,
imxerr_CMD_NYI,
imxerr_INVALID_CMD,
imxerr_DISABLED_CMD,
imxerr_MODEL_NOT_FOUND,
imxerr_SHEET_NOT_FOUND,
imxerr_VIEW_NOT_FOUND,
imxerr_CELL_NOT_FOUND,
imxerr_ITEM_NOT_FOUND,
imxerr_RANGE_NOT_FOUND,
imxerr_CATEGORY_NOT_FOUND,
imxerr_FORMULA_NOT_FOUND,
imxerr_PRESENTATION_NOT_FOUND,
imxerr_FILE_NOT_FOUND,
imxerr_NO_SELECTION,
imxerr_SELECTION_TYPE,
imxerr_SELECTION_MODIFIER,
imxerr_MULTIPLE_SELECTION,
imxerr_CELL_TYPE,
imxerr_BAD_ARG,
imxerr_BAD_RANGE,
imxerr_BAD_AXIS,
imxerr_BAD_REDUCTION,
imxerr_BAD_FORMAT_MODE,
imxerr_BAD_ALIGNMENT,
imxerr_BAD_LINESTYLE,
imxerr_BAD_FONT,
imxerr_BAD_FORMAT,
imxerr_BAD_COLOR,
imxerr_BAD_FILENAME,
imxerr_BAD_FILLTYPE,
imxerr_BAD_PASTEMETHOD,
imxerr_BAD_WDWTYPE,
imxerr_NO_SUMMARY,
imxerr_ZONE_FULL,
imxerr_OS_WORLD,
imxerr_DATA_WORLD,
imxerr_FORMULA_WORLD,
imxerr_IMPORT_EXPORT_WORLD,
imxerr_HELP_WORLD,
imxerr_LAST_ERROR_CODE // This should always be last entry
} imxErrorCode;
// Values accepted for the type argument of GetCellValue and SetCellValue
// calls.
typedef enum imxcelltype_enum {
cval_NUMBER = 0,
cval_TEXT,
cval_EMPTY,
cval_NA,
cval_ERR,
cval_LAST_ENTRY // must be last enum element
} imxCellType;
// Values accepted for the zone argument of SetCategoryZone
typedef enum imxdpzone_enum {
zone_row = 0,
zone_column,
zone_page,
zone_LAST_ENTRY // must be last enum element
} imxDPZone;
// Values accepted for the position argument of AddItem.
typedef enum imxposition_enum {
ipos_BEFORE = 0,
ipos_AFTER,
ipos_LAST_ENTRY // must be last enum element
} imxPosition;
// Values returned for the arg of GetFormulaStatus.
typedef enum imxfmstat_enum {
fmstat_OKAY, // cells computed normally
fmstat_SHAPE, // LHS doesn't match RHS
fmstat_ERROR, // compilation problems
fmstat_OVERLAP, // LHS overlaps with another formula
fmstat_UNKNOWN, // hasn't been compiled yet
fmstat_COMMENT, // white space and comments only
fmstat_EMPTY, // no formula text
fmstat_LAST_ENTRY // must be last enum element
} imxFMState;
// Summary types accepted for the SummarizeGroup call.
typedef enum imxgrpsummary_enum {
grpsum_TOTAL = 0, // Total of summarized items
grpsum_AVERAGE, // Average
grpsum_MIN, // Minimum
grpsum_MAX, // Maximum
grpsum_DEVIATION, // Standard deviation
grpsum_COUNT, // Count
grpsum_CUSTOM, // Custom (no formula generated)
grpsum_LAST_ENTRY // must be last enum element
} imxGrpSummary;
// Selection types returned and accepted by Selection related calls.
typedef enum imxseltype_enum {
imxsel_EMPTY = 0,
imxsel_CELL,
imxsel_ITEM,
imxsel_LABELSONLY,
imxsel_RANGE,
imxsel_CATEGORY,
imxsel_FORMULA,
imxsel_VIEW,
imxsel_PRESENTATION,
imxsel_SHEET,
imxsel_LAST_ENTRY // must be last enum element
} imxSelType;
// Model states returned (used as bit masks)
typedef enum imxmodelstate_enum {
modstat_NONE=0,
modstat_DIRTY=1,
modstat_BACKUP=2
} imxModelState;
// Formatting enums.
typedef enum imxcolor_enum {
color_DEFAULT,
color_NONE,
color_BLACK,
color_DKGRAY,
color_LTGRAY,
color_WHITE,
color_LAST_ENTRY // must be last enum element
} imxColor;
typedef enum imxalign_enum {
align_DEFAULT,
align_NONE,
align_SMART,
align_LEFT,
align_CENTERED,
align_RIGHT,
align_LAST_ENTRY // must be last enum element
} imxAlign;
typedef enum imxlinestyle_enum {
linestyle_DEFAULT,
linestyle_NONE,
linestyle_NOLINE,
linestyle_SOLID,
linestyle_DOTTED,
linestyle_DASHED,
linestyle_DOUBLE,
linestyle_LONGDOT,
linestyle_LONGDASH,
linestyle_LAST_ENTRY // must be last enum element
} imxLineStyle;
typedef enum imxlinewidth_enum {
linewidth_DEFAULT,
linewidth_NONE,
linewidth_THINNEST,
linewidth_THIN,
linewidth_MEDIUM,
linewidth_THICK,
linewidth_LAST_ENTRY // must be last enum element
} imxLineWidth;
typedef enum imxfmtmode_enum {
fmtmode_DEFAULT,
fmtmode_NUMBER,
fmtmode_CUSTOMNUMBER,
fmtmode_DATE,
fmtmode_LAST_ENTRY // must be last enum element
} imxFormatMode;
typedef enum fmtflags_enum {
fmtflag_NONE=0,
fmtflag_CURRENCY=1,
fmtflag_COMMAS=2,
fmtflag_PARENTHESES=4,
fmtflag_EXPONENT=8,
fmtflag_PERCENT=16,
fmtflag_GENERAL=32
} imxFormatFlags;
typedef enum fontflags_enum {
fontflag_DEFAULT=1,
fontflag_NAME=2,
fontflag_SIZE=4
} imxFontFlags;
typedef enum pastemethod_enum {
pastemethod_REPLACE,
pastemethod_ADD,
pastemethod_SUBTRACT,
pastemethod_EMPTY_ONLY,
pastemethod_LAST_ENTRY // must be last enum element
} imxPasteMethod;
typedef enum filltype_enum {
filltype_LINEAR,
filltype_GEOMETRIC,
filltype_DAYS,
filltype_WEEKS,
filltype_MONTHS,
filltype_YEARS,
filltype_LAST_ENTRY // must be last enum element
} imxFillType;
typedef enum wdwtype_enum {
wdwtype_INFOPANEL,
wdwtype_MBROWSER,
wdwtype_DATAFILLPANEL,
wdwtype_FONTPANEL,
wdwtype_FORMATPANEL,
wdwtype_VIEWINSPECTOR,
wdwtype_LAST_ENTRY // must be last enum element
} imxWindowType;
typedef enum imxcmdcode_enum {
imxcmd_NONE = 0,
imxcmd_NEWMODEL = 1,
imxcmd_NEWSHEET = 2,
imxcmd_NEWVIEW = 3,
imxcmd_CUT = 4,
imxcmd_COPY = 5,
imxcmd_COPYASGRAPH = 6,
imxcmd_PASTE = 7,
imxcmd_DELETE = 8,
imxcmd_ADD = 9,
imxcmd_SELALL = 10,
imxcmd_SELITEMS = 11,
imxcmd_SELCELLS = 12,
imxcmd_HIDEITEMS = 13,
imxcmd_UNHIDEITEMS = 14,
imxcmd_SHOWALL = 15,
imxcmd_SWAPBORDER = 16,
imxcmd_GROUPITEMS = 17,
imxcmd_UNGROUPITEMS = 18,
imxcmd_EXPANDGROUP = 19,
imxcmd_COLLAPSEGROUP = 20,
imxcmd_SHOWHELP = 21,
imxcmd_CLOSEMODEL = 22,
imxcmd_REVERTMODEL =23,
imxcmd_CHECKFORMULA = 24,
imxcmd_NEWGRAPH = 25,
imxcmd_ADDGRAPH = 26,
imxcmd_REPLACEGRAPH = 27,
imxcmd_ADDSERIES = 28,
imxcmd_MARK = 29,
imxcmd_ADDPAGEBREAK = 30,
imxcmd_CLEARPAGEBREAK = 31,
imxcmd_RECALC = 32,
imxcmd_QUITAPP = 33,
imxcmd_HIDEAPP = 34,
imxcmd_UNHIDEAPP = 35,
imxcmd_LASTCMD
} imxCmdCode;
// Used as bit masks
typedef enum imxsort_enum {
imxsort_ALLUPNOCASE = 0,
imxsort_DOWN1 = 1,
imxsort_CASE1 = 2,
imxsort_DOWN2 = 4,
imxsort_CASE2 = 8,
imxsort_DOWN3 = 16,
imxsort_CASE3 = 32
} imxSortFlags;
// Used as bit masks
typedef enum imxgridopts_enum {
imxgrid_CELLGRID = 1,
imxgrid_ITEMGRID = 2,
imxgrid_ROWLINES = 4,
imxgrid_COLUMNLINES = 8,
imxgrid_PAGELINES = 16,
imxgrid_ROWDIVIDER = 32,
imxgrid_COLUMNDIVIDER = 64
} imxGridOptions;
// Used as bit masks
typedef enum imxlayopts_enum {
imxlay_ITEMMARKERS = 1,
imxlay_GROUPMARKERS = 2,
imxlay_PAGEBREAKS = 4,
imxlay_SHOWROWS = 8,
imxlay_SHOWCOLUMNS = 16,
imxlay_SHOWPAGES = 32,
imxlay_OUTLINE = 64
} imxLayoutOptions;
// Used as bit masks
typedef enum imxfmopts_enum {
imxfm_AUTORECALC = 1,
imxfm_AUTOCHECK = 2,
imxfm_SHOWERRORS = 4
} imxFormulaOptions;
// Used as bit masks
typedef enum imxprefs_enum {
imxpref_NONE = 0,
imxpref_SHOWALLFILES = 1,
imxpref_RETAINBACKUPS = 2,
imxpref_AUTOFORMATCELLS = 4,
imxpref_SHOWWARNINGS = 8,
imxpref_GLOBALSTYLES = 16,
imxpref_AUTOLAUNCHPB = 32
} imxPrefFlags;
typedef enum imxgrafs_enum {
imxgraf_LINEGRAPH = 0,
imxgraf_BARGRAPH = 1,
imxgraf_SCATTERGRAPH = 2,
imxgraf_PIEGRAPH = 3,
imxgraf_AREAGRAPH = 4,
imxgraf_STOCKGRAPH = 5,
imxgraf_3DBARGRAPH = 7
} imxGraphType;
typedef enum imxorder_enum {
imxorder_BYROWS,
imxorder_BYCOLS,
imxorder_SMART
} imxDataOrder;
//
// Indentifies a single cell via indices and category names
// for a particular category ordering derived from a view
//
#define MAXDPZONES 3
#define MAXCATSPERDPZONE 4
#define MAXCATS (MAXDPZONES*MAXCATSPERDPZONE)
typedef struct imxvcell_struct {
char * category[MAXDPZONES][MAXCATSPERDPZONE];
short index[MAXDPZONES][MAXCATSPERDPZONE];
} imxVCell;
//
// Methods to save and update (recalc and redisplay) a particular model.
//
imxErrorCode imxOpenModel(char *modelName);
imxErrorCode imxSaveModel(char *modelName, char *fileName);
imxErrorCode imxUpdateModel(char *modelName);
imxErrorCode imxGetModelInfo(char **fileName, imxModelState *modelStatus,
char *modelName);
imxErrorCode imxGetVersion(char **revision);
//
// Miscellaneous functions to manage the S/L link.
//
imxErrorCode imxGetErrorText(char **etext, imxErrorCode ecode);
imxErrorCode imxActivateApp(int force);
//
// Methods to query and set the current selection for a particular
// view/sheet/model. These commands are useful in combination with
// imxCmdExec(). imxGetSelRangeInfo() can be used to find out
// the indices within a category of the selection endpoint items, along
// with the category layout of a particular DP selection.
// This info is useful for doing iteration over items/cells.
// GetLabelList() returns a list of row/column/page labels for the
// current DP selection. This info is necessary to create an iterator
// for a CELL selection that is capable of stepping over hidden items.
//
imxErrorCode imxGetSelection(char **primName, imxSelType *seltype,
char **viewName, char **sheetName, char **modelName);
imxErrorCode imxSetSelection(char *primName, imxSelType seltype,
char *viewName, char *sheetName, char *modelName);
imxErrorCode imxGetSelRangeInfo(imxVCell **corner1, imxVCell **corner2);
//
// Routines for manipulating Cell data
//
imxErrorCode imxGetCellValue(char *cellName, imxCellType *cellType,
double *cellNVal, char **cellSVal,
char *sheetName, char *modelName);
imxErrorCode imxGetFormattedCellValue(char *cellName, imxCellType *cellType,
char **formattedValue, char* viewName, char *sheetName, char *modelName);
imxErrorCode imxSetCellValue(char *cellName, imxCellType cellType,
double cellNVal, char *cellSVal,
char *sheetName, char *modelName);
imxErrorCode imxSetFormattedCellValue(char *cellVal, char *cellName,
char *sheetName, char *modelName);
imxErrorCode imxDataFill(imxFillType method, imxDPZone order,
char *start, char *step, char *end);
imxErrorCode imxPasteSpecial(imxPasteMethod method, int values, int styles,
int transpose);
//
// Worksheet structure related commands
//
imxErrorCode imxAddItems(char *itemNames, int count, imxPosition position);
imxErrorCode imxSummarizeGroup(imxGrpSummary redux);
imxErrorCode imxGetSummaryItem(char **sumItemName, char *groupName,
char *sheetName, char *modelName);
imxErrorCode imxGetSelLabelList(char **labelNames, imxDPZone dimzone);
imxErrorCode imxSortItemsByName(imxSortFlags sortFlags);
imxErrorCode imxSortItemsByKeys(char *keyItem1, char *keyItem2, char *keyItem3,
imxSortFlags sortFlags);
imxErrorCode imxSetCategoryPosition(imxDPZone dimzone, int dimpos);
imxErrorCode imxGetLevelSize(char *itemName, int *size);
imxErrorCode imxSetLevelSize(char *itemName, int size);
imxErrorCode imxGetItemSize(int *size);
imxErrorCode imxSetItemSize(int size);
imxErrorCode imxGetGridOptions(imxGridOptions *optionFlags,
int *categoryPosition);
imxErrorCode imxSetGridOptions(imxGridOptions optionFlags,
int categoryPosition);
imxErrorCode imxGetLayoutOptions(imxLayoutOptions *optionFlags);
imxErrorCode imxSetLayoutOptions(imxLayoutOptions optionFlags);
//
// Simple menu related commands
//
imxErrorCode imxCmdEnabled(imxCmdCode cmdcode);
imxErrorCode imxCmdExec(imxCmdCode cmdcode);
imxErrorCode imxOpenPanel(imxWindowType panel);
//
// Formula related commands
//
imxErrorCode imxResolveOverlap(int flag, int fmNum,
char *sheetName, char *modelName);
imxErrorCode imxGetFormulaStatus(imxFMState *fmstatP, int fmNum,
char *sheetName, char *modelName);
imxErrorCode imxGetFormulaText(char **fmText, int fmNum,
char *sheetName, char *modelName);
imxErrorCode imxSetFormulaText(char *fmText, int fmNum,
char *sheetName, char *modelName);
imxErrorCode imxGetFormulasForCell(char **fmNumList, char *cellName,
char *sheetName, char *modelName);
imxErrorCode imxGetFormulaOptions(imxFormulaOptions *optionFlags,
int *iterations);
imxErrorCode imxSetFormulaOptions(imxFormulaOptions optionFlags,
int iterations);
//
// Model Browser related commands
//
imxErrorCode imxGetViewNote(char **noteText, imxSelType seltype,
char *primName, char *sheetName, char *modelName);
imxErrorCode imxSetViewNote(char *noteText, imxSelType seltype,
char *primName, char *sheetName, char *modelName);
imxErrorCode imxOpenViews(char *primNames,
imxSelType seltype, char *sheetName, char *modelName);
imxErrorCode imxCopyViews(char *primNames,
imxSelType seltype, char *sheetName, char *modelName);
imxErrorCode imxDeleteViews(char *primNames,
imxSelType seltype, char *sheetName, char *modelName);
imxErrorCode imxRename(char *newName, imxSelType seltype,
char *primName, char *sheetName, char *modelName);
//
// Query functions useful for various iterators.
// Most of these functions return lists of names
// as a single text string, with one name per line (i.e. the names are
// separated by a newline character).
//
imxErrorCode imxGetModelList(char **modelNames);
imxErrorCode imxGetSheetList(char **sheetNames, char *modelName);
imxErrorCode imxGetViewList(char **viewNames, char *sheetName,
char *modelName);
imxErrorCode imxGetCategoryList(char **catNames, char *sheetName,
char *modelName);
imxErrorCode imxGetPresentationList(char **pNames, char *modelName);
imxErrorCode imxGetItemInfo(char **parentName, char **child1, char **childN,
char *itemName, char *sheetName, char *modelName);
imxErrorCode imxGetItemRangeInfo(char **parentName, char **itemList,
char *itemRange, char *sheetName, char *modelName);
//
// Format and Font related commands
//
imxErrorCode imxSetCellFormat(imxFormatMode mode, imxFormatFlags formatFlag,
int decPlaces, char *metastring);
imxErrorCode imxGetCellFormat(imxFormatMode *mode, imxFormatFlags *formatFlag,
int *decimalPlaces, char **metastring);
imxErrorCode imxSetDefaultCellFormat(imxFormatMode mode,
imxFormatFlags formatFlag, int decPlaces, char *metastring);
imxErrorCode imxGetDefaultCellFormat(imxFormatMode *mode,
imxFormatFlags *formatFlag, int *decimalPlaces, char **metastring);
imxErrorCode imxSetAlignment(imxAlign alignment);
imxErrorCode imxGetAlignment(imxAlign *alignment);
imxErrorCode imxSetDefaultAlignment(imxAlign alignment);
imxErrorCode imxGetDefaultAlignment(imxAlign *alignment);
imxErrorCode imxSetLineStyle(imxLineStyle style, imxLineWidth width,
imxColor color);
imxErrorCode imxGetLineStyle(imxLineStyle *style, imxLineWidth *width,
imxColor *color);
imxErrorCode imxSetDefaultLineStyle(imxLineStyle style, imxLineWidth width,
imxColor color);
imxErrorCode imxGetDefaultLineStyle(imxLineStyle *style, imxLineWidth *width,
imxColor *color);
imxErrorCode imxSetColor(imxColor foreground, imxColor background);
imxErrorCode imxGetColor(imxColor *foreground, imxColor *background);
imxErrorCode imxSetDefaultColor(imxColor foreground, imxColor background);
imxErrorCode imxGetDefaultColor(imxColor *foreground, imxColor *background);
imxErrorCode imxSetFont(imxFontFlags fontFlags, const char *fontname,
float fontsize);
imxErrorCode imxGetFont(imxFontFlags *fontFlags, const char **fontname,
float *fontsize);
imxErrorCode imxSetDefaultFont(imxFontFlags fontFlags, const char* fontname,
float fontsize);
imxErrorCode imxGetDefaultFont(imxFontFlags *fontFlags, const char **fontname,
float *fontsize);
int iimxSplitNames(char *itemNames, char ***pNameVecP);
void iimxFreeNames(char **nameVecP);
#endif // IMXPUBLICAPI_H
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.