ftp.nice.ch/pub/next/developer/languages/c/gcc.2.7.2.2.N.b.tar.gz#/lib/gcc-lib/m68k-next-nextstep3/2.7.2.2.f.2/include/dbkit/DBTableView.h

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

/*
**      DBTableView.h
**      Database Kit, Release 3.0
**      Copyright (c) 1992, NeXT Computer, Inc.  All rights reserved. 
*/
#import <appkit/graphics.h>
#import <appkit/ScrollView.h>
#import <dbkit/tableProtocols.h>

typedef enum {
	DB_RADIOMODE = 0,
	DB_LISTMODE = 2,	/* these defs are same as NX_xxxx */
	DB_NOSELECT = 5
} DBSelectionMode;


@interface DBTableView : ScrollView
{
@private
	struct {
	unsigned int
#if	__BIG_ENDIAN__
			hideRows:1,
			hideColumns:1,
			editingAllowed:1,
			dynamicRows:1,
			dynamicColumns:1,
			radioMode:1,
			listMode:1,
			allowEmpty:1,
			gridVisible:1,
			useArrowKeys:1,
			allowsReordering:1,
			allowsResizing:1,
			unused:1,
			clicks:3,
			:16;
#else
			:16,
			clicks:3,
			unused:1,
			allowsResizing:1,
			allowsReordering:1,
			useArrowKeys:1,
			gridVisible:1,
			allowEmpty:1,
			listMode:1,
			radioMode:1,
			dynamicColumns:1,
			dynamicRows:1,
			editingAllowed:1,
			hideColumns:1,
			hideRows:1;
#endif
	} _tvFlags;
	
	unsigned int	_tvReserved[3];
	unsigned int	_startVec,
			_lastDragVec;
	int		_lastSelVector;
	id		_dragImage;

	id		_textFmt;		/* default formatters */
	id		_editFmt;

@protected
	id		dataSource;
	id		delegate;		/* gets doubleClick message */
	
	id		rowLayout;		/* row/col layout info */
	id		columnLayout;
	id		rowHeading;		/* shows row/col headings */
	id		columnHeading;
	id		rowsClip;		/* clip views for headings */
	id		columnsClip;
	id		gridView;		/* the actual data view */
	id		rowSel;
	id		columnSel;
	id		cornerView;		/* view in upper left corner */

	id		target;
	SEL		doubleAction;
	SEL		action;
}

- initFrame:(const NXRect *) newFrame;
- free;

- setDataSource:aSource;
- dataSource;

- setDelegate:newDelegate;
- delegate;

- (BOOL) dynamicRows;
- (BOOL) dynamicColumns;

- setRowHeadingVisible: (BOOL) flag;
- (BOOL) isRowHeadingVisible;

- setColumnHeadingVisible: (BOOL) flag;
- (BOOL) isColumnHeadingVisible;

- setIntercell:(const NXSize *) aSize;
- getIntercell:(NXSize *) theSize;

- setGridVisible:(BOOL) flag;
- (BOOL) isGridVisible;

- acceptArrowKeys:(BOOL) flag;
- (BOOL) doesAcceptArrowKeys;

- allowVectorReordering:(BOOL) flag;
- (BOOL) doesAllowVectorReordering;

- allowVectorResizing:(BOOL) flag;
- (BOOL) doesAllowVectorResizing;

- (BOOL) isHorizScrollerVisible;
- setHorizScrollerRequired:(BOOL) flag;
- (BOOL) isVertScrollerVisible;
- setVertScrollerRequired:(BOOL) flag;

/*
 *  Displaying the view
 */
- drawSelf:(const NXRect *) rects :(int) count;

/*
 *  Handling rows/columns
 */
- columnList;
- rowList;

- (unsigned int) columnCount;
- (unsigned int) rowCount;

- (id <DBTableVectors>) rowAt:(unsigned int) aPosition;
- (id <DBTableVectors>) columnAt:(unsigned int) aPosition;

- addColumn:identifier withTitle:(const char *) title;
- addColumn:identifier withFormatter:formatter andTitle:(const char *) title at:(unsigned int) aPosition;

- addRow:identifier withTitle:(const char *) title;
- addRow:identifier withFormatter:formatter andTitle:(const char *) title at:(unsigned int) aPosition;

- addColumn:aColumn at:(unsigned int) aPosition;
- removeColumnAt:(unsigned int) aPosition;

- addRow:aRow at:(unsigned int) aPosition;
- removeRowAt:(unsigned int) aPosition;

- (BOOL) moveColumnFrom:(unsigned int) oldPos to:(unsigned int) newPos;
- (BOOL) moveRowFrom:(unsigned int) oldPos to:(unsigned int) newPos;

- formatterAt:(unsigned int) row :(unsigned int) column;

/*
 *  Editing support.
 */
- editFieldAt:(unsigned int) row :(unsigned int) column;
- setEditable:(BOOL) flag;
- (BOOL) isEditable;
- endEditing;

/*
 *  Dealing with the selection
 */
- setMode:(int) newMode;
- (int) mode;

- allowEmptySel:(BOOL) flag;
- (BOOL) doesAllowEmptySel;

- (unsigned int) selectedRowCount;
- (unsigned int) selectedColumnCount;

- (int) selectedRow;
- (int) selectedColumn;

- (BOOL) isRowSelected:(unsigned int) row;	/* for either mode */
- (BOOL) isColumnSelected:(unsigned int) column;

- deselectAll:sender;			/* for List mode selection */
- selectAll:sender;

- setRowSelectionOn:(unsigned int) start :(unsigned int) end to:(BOOL) flag;
- setColumnSelectionOn:(unsigned int) start :(unsigned int) end to:(BOOL) flag;

- selectRow:(unsigned int) row byExtension:(BOOL) flag;
- selectColumn:(unsigned int) column byExtension:(BOOL) flag;

- deselectRow:(unsigned int) row;
- deselectColumn:(unsigned int) column;

- (unsigned int) selectedRowAfter:(unsigned int) aRow;
- (unsigned int) selectedColumnAfter:(unsigned int) aColumn;

- sendAction:(SEL) anAction to:anObject forSelectedRows:(BOOL) flag;
- sendAction:(SEL) anAction to:anObject forSelectedColumns:(BOOL) flag;

/*
 *  Setting and finding out about pieces of the table.
 */
- rowHeading;
- setRowHeading:newRowHeading;
- columnHeading;
- setColumnHeading:newColumnHeading;

/*
 *  Notifications of change
 */
- rowsChangedFrom:(unsigned int) startRow to:(unsigned int) endRow;
- columnsChangedFrom:(unsigned int) startColumn to:(unsigned int) endColumn;
- reloadData:sender;		/* update layout & redisplay all data */
- layoutChanged:sender;		/* # rows, # cols or size changed */

/*
 *  Scrolling and other view methods
 */
- scrollRowToVisible:(unsigned int) row;
- scrollColumnToVisible:(unsigned int) column;
- scrollClip:aClip to:(const NXPoint *)newOrigin;
- sizeTo:(NXCoord) width:(NXCoord) height;
- (BOOL) acceptsFirstResponder;
- tile;

/*
 *  Target and Action
 */
- setAction:(SEL)aSelector;
- (SEL)action;
- setDoubleAction:(SEL)aSelector;
- (SEL)doubleAction;
- setTarget:anObject;
- target;

/*
 *  Archiving
 */
- read:(NXTypedStream *) stream;
- write:(NXTypedStream *) stream;
- finishUnarchiving;

@end

@interface Object(DBTableViewDelegate)
- tableViewDidChangeSelection:aTableView;
- (BOOL) tableViewWillChangeSelection:aTableView;
- tableView:sender movedColumnFrom:(unsigned int) old to:(unsigned int) new;
- tableView:sender movedRowFrom:(unsigned int) old to:(unsigned int) new;
@end

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