ftp.nice.ch/pub/next/science/mathematics/workbench/ToolBuilder.s.tar.gz#/ToolBuilder/ToolAndInspectorProtocols.h

This is ToolAndInspectorProtocols.h in view mode; [Download] [Up]

// ToolAndInspectorProtocols.h
// By Charles G. Fleming and Judy D. Halchin, Educational Computing Services,
// Allegheny College. Copyright 1993, Allegheny College.
// You may freely copy, distribute and reuse this code. 
// Allegheny College and the author disclaim any warranty of any kind, 
// expressed or implied, as to its fitness for any particular use.

// Workbench tool protocol.
@protocol WBTool
- evaluate:sender;
- (char **)requiredConnectors;
- inspector;
- setInputText:text;
- setOutputText:text;
- setOutputViewBox:box;
@end

// Workbench tool inspector protocol.
@protocol WBToolInspector
- (char *)inspectorTitle;
- window;
- revert:sender;
- ok:sender;
@end

@interface OutputViewBox:Box
{
    id	defaultView;
}

- initFrame:(const NXRect *)frameRect;
- insertView:view;
@end

// Improv Connector definitions.
// Return codes.
#define WB_OK						0
#define WB_NOTHINGSELECTED			1
#define WB_NOSUCHCOLUMN				2
#define WB_WRONGTYPEOFSELECTION		3
#define WB_TOOMANYCATEGORIES		4
#define WB_WRONGCELLTYPE			5
#define WB_NOTENOUGHCOLUMNS			6
#define WB_UNKNOWNERROR				99

// Data types.
#define WB_DOUBLEDATA		0
#define WB_FLOATDATA		1
#define WB_INTDATA			2
#define WB_STRINGDATA		3

// Handling of empty and non-numeric cells.
#define WB_ZERO		0
#define WB_SKIP		1
#define WB_ERROR	2

@interface ImprovConnector:Object
{
	char *sheet, *model;
	int emptyCellHandling, textCellHandling;
}

- init;
- setCellHandlingForEmpty:(int)handlingForEmpty text:(int)handlingForText;

- (int)doubleData:(double **)data fromColumn:(char *)columnName 
		dataCount:(int *)numRows;
- (int)floatData:(float **)data fromColumn:(char *)columnName 
		dataCount:(int *)numRows;
- (int)intData:(int **)data fromColumn:(char *)columnName 
		dataCount:(int *)numRows;
- (int)stringData:(char ***)data fromColumn:(char *)columnName 
		dataCount:(int *)numRows;
- (int)dataType:(int)dataType double:(double **)doubleData 
		float:(float **)floatData 
		int:(int **)intData 
		string:(char ***)stringData
		fromColumn:(char *)columnName 
		dataCount:(int *)numRows;
												
- (int)doubleData:(double ***)data fromSelectedColumnsCount:(int *)numColumns
		byRows:(BOOL)byRows dataCount:(int *)numRows;													
- (int)floatData:(float ***)data fromSelectedColumnsCount:(int *)numColumns
		byRows:(BOOL)byRows dataCount:(int *)numRows;													
- (int)intData:(int ***)data fromSelectedColumnsCount:(int *)numColumns
		byRows:(BOOL)byRows dataCount:(int *)numRows;													
- (int)stringData:(char ****)data fromSelectedColumnsCount:(int *)numColumns
		byRows:(BOOL)byRows dataCount:(int *)numRows;													
- (int)dataType:(int)dataType double:(double ***)doubleData 
		float:(float ***)floatData
		int:(int ***)intData 
		string:(char ****)stringData
		fromSelectedColumnsCount:(int *)numColumns
		byRows:(BOOL)byRows dataCount:(int *)numRows;													

- (int)fillColumnsCount:(int)numColumns startingAt:(char *)columnName 
		withDoubleData:(double **)data 
		byRows:(BOOL)byRows dataCount:(int)numRows;
- (int)fillColumnsCount:(int)numColumns startingAt:(char *)columnName 
		withFloatData:(float **)data 
		byRows:(BOOL)byRows dataCount:(int)numRows;
- (int)fillColumnsCount:(int)numColumns startingAt:(char *)columnName 
		withIntData:(int **)data 
		byRows:(BOOL)byRows dataCount:(int)numRows;
- (int)fillColumnsCount:(int)numColumns startingAt:(char *)columnName 
		withStringData:(char ***)data 
		byRows:(BOOL)byRows dataCount:(int)numRows;
- (int)fillColumnsCount:(int)numColumns startingAt:(char *)columnName 
		withDataType:(int)dataType double:(double **)doubleData
		float:(float **)floatData int:(int **)intData
		string:(char ***)stringData 
		byRows:(BOOL)byRows dataCount:(int)numRows;

- (int)addColumns:(char **)newColumns count:(int)numColumns 
		afterColumn:(char *)existingColumn;
- (int)getSelectedColumnNames:(char ***)columnNames count:(int *)numColumns;
- (int)makeNewWorksheet:(char *)worksheetName numRows:(int)numRows 
		numCols:(int)numColumns rowNames:(char **)rowNames 
		colNames:(char **)columnNames;
			
- getNames:(char ***)names fromList:(char *)list count:(int *)numNames;
- (int)getRows:(char ***)rowList rowCount:(int *)numRows 
		forColumnCategory:(char *)columnCategory;
- (int)handleCell:(int)cellType forData:(int)dataType;
- deleteTrailingZeros:(char *)formattedNumber;

- freeData:(void *)data count:(int)count;
- freeStringData:(void *)data counts:(int)count1 :(int)count2;

@end

// MathConnector definitions.
int MLReturnValue;
enum resultTypes {ERROR, INTEGER, REAL, INTEGERLIST, REALLIST, STRING,
		REALMATRIX, DEFINITION, GRAPHICS};
union returnValue
{
	int intVal;
	double	doubleVal;
	char *	stringVal;
};	

typedef struct MLink *MLINK;

@interface MathConnector:Object
{
	MLINK linkPointer;
}

- init;
- (MLINK)initMathConnectionOnHost:(char *)host linkMode:(char *)mode
		linkName:(char *)name linkProtocol:(char *)protocol;
- (MLINK)link;
- (BOOL)evaluateExpression:(char *)string resultType:(int)type
		result:(void**)result;
- (BOOL)evaluateMatrixExpression:(char *)string resultType:(int)type
		result:(void**)result rows:(int *)rows cols:(int *)cols;
@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.