This is MiscTableScroll.h in view mode; [Download] [Up]
#ifndef __MiscTableScroll_h
#define __MiscTableScroll_h
//=============================================================================
//
// Copyright (C) 1995-1997 by Paul S. McCarthy and Eric Sunshine.
// Written by Paul S. McCarthy and Eric Sunshine.
// All Rights Reserved.
//
// This notice may not be removed from this source code.
//
// This object is included in the MiscKit by permission from the authors
// and its use is governed by the MiscKit license, found in the file
// "License.rtf" in the MiscKit distribution. Please refer to that file
// for a list of all applicable permissions and restrictions.
//
//=============================================================================
//-----------------------------------------------------------------------------
// <MiscTableScroll.h>
//
// ScrollView class that displays a 2-D table of cells.
//
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// $Id: MiscTableScroll.h,v 1.27 97/06/18 10:13:41 sunshine Exp $
// $Log: MiscTableScroll.h,v $
// Revision 1.27 97/06/18 10:13:41 sunshine
// v125.9: Worked around Objective-C++ compiler crash in OPENSTEP 4.2 for NT
// when sending message to 'super' from within a category.
// Cleaned up more method names:
// numSelected... --> numberOfSelected...
// numVisible... --> numberOfVisible...
// cellIsSelected:: --> cellIsSelectedAtRow:column:
// borderClickedSlot: --> clickedSlot:
// borderTitlesSize: --> slotTitlesSize:
// scrollSelToVisible --> scrollSelectionToVisible
// buffCount --> bufferCount (and related delegate method)
// Color-related methods: "highlight" --> "selected" (and delegate methods)
// Removed duplicate pasteboard related declaration.
//
// Revision 1.26 97/04/15 09:07:19 sunshine
// v0.125.8: Added "MiscTableScroll/" prefix to #import to facilitate new
// framework organization.
//
// Revision 1.25 97/03/20 19:17:43 sunshine
// v123.1: Added new ...:byExtension: variations to all selection methods.
// Added deselection methods. Published -selectedCell.
//-----------------------------------------------------------------------------
#import <MiscTableScroll/MiscTableTypes.h>
MISC_TS_EXTERN_BEGIN( "Objective-C" )
#import <AppKit/NSScrollView.h>
MISC_TS_EXTERN_END
MISC_TS_CLASS_DEF( MiscTableBorder );
MISC_TS_CLASS_DEF( MiscDelegateFlags );
@class MiscTableScroll, MiscTableView, MiscBorderView, MiscNullView;
@class NSCell, NSClipView, NSFont, NSText;
#define MISC_TS_VERSION_0 0 // Initial version
#define MISC_TS_VERSION_1 1 // MiscSortType was 0..8, now 0..12
#define MISC_TS_VERSION_1000 1000 // First OpenStep version (4.0 PR2)
#define MISC_TS_VERSION_1001 1001 // Sort vector: (int*) ->> (NSArray)
#define MISC_TS_VERSION MISC_TS_VERSION_1001
typedef struct MiscCellEditInfo
{
BOOL editing; // Is editing in progress?
MiscCoord_P row; // Coords of edited cell.
MiscCoord_P col;
NSText* editor; // Field editor.
id cell; // Temporary editing cell.
} MiscCellEditInfo;
typedef struct MiscBorderInfo
{
MiscTableBorder* border;
MiscBorderView* view;
NSClipView* clip;
NSArray* sort_vector;
BOOL isOn;
BOOL autoSort;
BOOL constrain_min;
BOOL constrain_max;
} MiscBorderInfo;
@interface MiscTableScroll : NSScrollView <NSCoding>
{
@private
MiscTableView* tableView;
MiscBorderInfo* info[2]; // { &colInfo, &rowInfo }
MiscBorderInfo colInfo;
MiscBorderInfo rowInfo;
MiscNullView* nullView;
NSFont* font;
NSColor* textColor;
NSColor* backgroundColor;
NSColor* selectedTextColor;
NSColor* selectedBackgroundColor;
id delegate;
id dataDelegate;
MiscDelegateFlags* delegateFlags;
MiscDelegateFlags* dataDelegateFlags;
id target;
id doubleTarget;
SEL action;
SEL doubleAction;
int tag;
MiscCompareEntryFunc sort_entry_func;
MiscCompareSlotFunc sort_slot_func;
BOOL enabled;
BOOL lazy;
MiscSelectionMode mode;
int num_cols; // Currently active number of
int num_rows; // columns and rows.
int max_rows; // Highwater mark for Cell allocations.
int max_cells;
id* cells;
id pageHeader;
id pageFooter;
MiscCellEditInfo editInfo;
BOOL tracking;
}
- (id)initWithFrame:(NSRect)frameRect;
- (void)dealloc;
- (id)initWithCoder:(NSCoder*)decoder;
- (void)encodeWithCoder:(NSCoder*)encoder;
// DELEGATE -------------------------------------------------------------------
- (id)delegate;
- (void)setDelegate:(id)obj;
- (id)dataDelegate;
- (void)setDataDelegate:(id)obj;
// TARGET / ACTION ------------------------------------------------------------
- (id)target;
- (void)setTarget:(id)obj;
- (id)doubleTarget;
- (void)setDoubleTarget:(id)obj;
- (SEL)action;
- (void)setAction:(SEL)new_sel;
- (SEL)doubleAction;
- (void)setDoubleAction:(SEL)new_sel;
- (BOOL)isEnabled;
- (void)setEnabled:(BOOL)flag;
- (BOOL)sendAction:(SEL)theAction to:(id)theTarget;
- (BOOL)sendAction;
- (BOOL)sendActionIfEnabled;
- (BOOL)sendDoubleAction;
- (BOOL)sendDoubleActionIfEnabled;
- (int)tag;
- (void)setTag:(int)x;
- (BOOL)tracking;
- (MiscCoord_P)clickedSlot:(MiscBorderType)b;
- (MiscCoord_P)clickedRow;
- (MiscCoord_P)clickedColumn;
- (id)clickedCell;
// FONT -----------------------------------------------------------------------
- (NSFont*)font;
- (void)setFont:(NSFont*)newFont;
- (void)changeFont:(id)sender;
+ (NSFont*)defaultFont;
// COLOR ----------------------------------------------------------------------
- (NSColor*)backgroundColor;
- (void)setBackgroundColor:(NSColor*)value; // Sent to all cells.
- (NSColor*)textColor;
- (void)setTextColor:(NSColor*)value; // Sent to all cells.
- (NSColor*)selectedBackgroundColor;
- (void)setSelectedBackgroundColor:(NSColor*)value; // Sent to all cells.
- (NSColor*)selectedTextColor;
- (void)setSelectedTextColor:(NSColor*)value; // Sent to all cells.
- (void)setColor:(NSColor*)value; // Alias for -setBackgroundColor:
- (NSColor*)color; // Alias for -backgroundColor
+ (NSColor*)defaultBackgroundColor;
+ (NSColor*)defaultTextColor;
+ (NSColor*)defaultSelectedBackgroundColor;
+ (NSColor*)defaultSelectedTextColor;
// SLOT ORDER -----------------------------------------------------------------
- (NSArray*)slotOrder:(MiscBorderType)b;
- (NSArray*)columnOrder;
- (NSArray*)rowOrder;
- (BOOL)border:(MiscBorderType)b setSlotOrder:(NSArray*)list;
- (BOOL)setColumnOrder:(NSArray*)list;
- (BOOL)setRowOrder:(NSArray*)list;
- (NSString*)slotOrderAsString:(MiscBorderType)b;
- (NSString*)columnOrderAsString;
- (NSString*)rowOrderAsString;
- (BOOL)border:(MiscBorderType)b setSlotOrderFromString:(NSString*)s;
- (BOOL)setColumnOrderFromString:(NSString*)s;
- (BOOL)setRowOrderFromString:(NSString*)s;
// SLOT SIZES -----------------------------------------------------------------
- (NSArray*)slotSizes:(MiscBorderType)b;
- (NSArray*)columnSizes;
- (NSArray*)rowSizes;
- (BOOL)border:(MiscBorderType)b setSlotSizes:(NSArray*)list;
- (BOOL)setColumnSizes:(NSArray*)list;
- (BOOL)setRowSizes:(NSArray*)list;
- (NSString*)slotSizesAsString:(MiscBorderType)b;
- (NSString*)columnSizesAsString;
- (NSString*)rowSizesAsString;
- (BOOL)border:(MiscBorderType)b setSlotSizesFromString:(NSString*)s;
- (BOOL)setColumnSizesFromString:(NSString*)s;
- (BOOL)setRowSizesFromString:(NSString*)s;
// MULTICAST MESSAGES ---------------------------------------------------------
- (void)sendAction:(SEL)aSelector to:(id)anObject forAllCells:(BOOL)flag;
- (int)makeCellsPerform:(SEL)aSel selectedOnly:(BOOL)flag;
- (int)makeCellsPerform:(SEL)aSel with:(id)arg1 selectedOnly:(BOOL)flag;
- (int)makeCellsPerform:(SEL)aSel with:(id)arg1 with:(id)arg2
selectedOnly:(BOOL)flag;
- (int)makeCellsPerform:(SEL)aSel;
- (int)makeCellsPerform:(SEL)aSel with:(id)arg1;
- (int)makeCellsPerform:(SEL)aSel with:(id)arg1 with:(id)arg2;
// FINDING CELLS --------------------------------------------------------------
- (int)border:(MiscBorderType)b slotWithTag:(int)x;
- (int)columnWithTag:(int)x;
- (int)rowWithTag:(int)x;
- (id)cellWithTag:(int)x;
- (BOOL)getRow:(int*)row column:(int*)col ofCellWithTag:(int)x;
- (BOOL)getRow:(int*)row column:(int*)col ofCell:(NSCell*)cell;
// SELECTION ------------------------------------------------------------------
- (MiscSelectionMode)selectionMode;
- (void)setSelectionMode:(MiscSelectionMode)x;
- (BOOL)hasSlotSelection:(MiscBorderType)b;
- (BOOL)hasRowSelection;
- (BOOL)hasColumnSelection;
- (BOOL)hasMultipleSlotSelection:(MiscBorderType)b;
- (BOOL)hasMultipleRowSelection;
- (BOOL)hasMultipleColumnSelection;
- (unsigned int)numberOfSelectedSlots:(MiscBorderType)b;
- (unsigned int)numberOfSelectedRows;
- (unsigned int)numberOfSelectedColumns;
- (BOOL)border:(MiscBorderType)b slotIsSelected:(MiscCoord_P)slot;
- (BOOL)rowIsSelected:(MiscCoord_P)row;
- (BOOL)columnIsSelected:(MiscCoord_P)col;
- (BOOL)cellIsSelectedAtRow:(MiscCoord_P)row column:(MiscCoord_P)col;
- (MiscCoord_P)selectedSlot:(MiscBorderType)b;
- (MiscCoord_P)selectedRow;
- (MiscCoord_P)selectedColumn;
- (id)selectedCell;
- (NSArray*)selectedSlotTags:(MiscBorderType)b;
- (NSArray*)selectedRowTags;
- (NSArray*)selectedColumnTags;
- (NSArray*)selectedSlots:(MiscBorderType)b;
- (NSArray*)selectedRows;
- (NSArray*)selectedColumns;
- (void)border:(MiscBorderType)b selectSlot:(MiscCoord_P)slot
byExtension:(BOOL)flag;
- (void)border:(MiscBorderType)b selectSlot:(MiscCoord_P)slot;
- (void)selectRow:(MiscCoord_P)row byExtension:(BOOL)flag;
- (void)selectRow:(MiscCoord_P)row;
- (void)selectColumn:(MiscCoord_P)col byExtension:(BOOL)flag;
- (void)selectColumn:(MiscCoord_P)col;
- (void)border:(MiscBorderType)b selectSlotTags:(NSArray*)tags
byExtension:(BOOL)flag;
- (void)border:(MiscBorderType)b selectSlotTags:(NSArray*)tags;
- (void)selectRowTags:(NSArray*)tags byExtension:(BOOL)flag;
- (void)selectRowTags:(NSArray*)tags;
- (void)selectColumnTags:(NSArray*)tags byExtension:(BOOL)flag;
- (void)selectColumnTags:(NSArray*)tags;
- (void)border:(MiscBorderType)b selectSlots:(NSArray*)slots
byExtension:(BOOL)flag;
- (void)border:(MiscBorderType)b selectSlots:(NSArray*)slots;
- (void)selectRows:(NSArray*)rows byExtension:(BOOL)flag;
- (void)selectRows:(NSArray*)rows;
- (void)selectColumns:(NSArray*)cols byExtension:(BOOL)flag;
- (void)selectColumns:(NSArray*)cols;
- (void)selectAllSlots:(MiscBorderType)b;
- (void)selectAllRows;
- (void)selectAllColumns;
- (void)selectAll:(id)sender; // -selectAllRows and sends action to target.
- (void)border:(MiscBorderType)b deselectSlot:(MiscCoord_P)slot;
- (void)deselectRow:(MiscCoord_P)row;
- (void)deselectColumn:(MiscCoord_P)col;
- (void)border:(MiscBorderType)b deselectSlotTags:(NSArray*)tags;
- (void)deselectRowTags:(NSArray*)tags;
- (void)deselectColumnTags:(NSArray*)tags;
- (void)border:(MiscBorderType)b deselectSlots:(NSArray*)slots;
- (void)deselectRows:(NSArray*)rows;
- (void)deselectColumns:(NSArray*)cols;
- (void)clearSlotSelection:(MiscBorderType)b;
- (void)clearRowSelection;
- (void)clearColumnSelection;
- (void)clearSelection;
- (void)deselectAll:(id)sender; // -clearSelection and sends action to target.
// MOUSE & KEYBOARD TRACKING (SELECTION ORIENTATION) --------------------------
- (void)trackBy:(MiscBorderType)b;
- (MiscBorderType)trackingBy;
// KEYBOARD CURSOR ------------------------------------------------------------
- (MiscCoord_P)cursorSlot:(MiscBorderType)b;
- (MiscCoord_P)cursorRow;
- (MiscCoord_P)cursorColumn;
- (void)border:(MiscBorderType)b setCursorSlot:(MiscCoord_P)slot;
- (void)setCursorRow:(MiscCoord_P)row;
- (void)setCursorColumn:(MiscCoord_P)col;
- (void)clearCursorSlot:(MiscBorderType)b;
- (void)clearCursorRow;
- (void)clearCursorColumn;
- (void)clearCursor;
- (BOOL)hasValidCursorSlot:(MiscBorderType)b;
- (BOOL)hasValidCursorRow;
- (BOOL)hasValidCursorColumn;
- (void)disableCursor; // Can nest.
- (void)enableCursor;
- (BOOL)isCursorEnabled;
// GLOBAL SIZE LIMITS ---------------------------------------------------------
- (float)totalSize:(MiscBorderType)b;
- (float)totalWidth;
- (float)totalHeight;
- (float)minTotalSize:(MiscBorderType)b;
- (float)maxTotalSize:(MiscBorderType)b;
- (float)minTotalWidth;
- (float)maxTotalWidth;
- (float)minTotalHeight;
- (float)maxTotalHeight;
- (void)border:(MiscBorderType)b setMinTotalSize:(float)size;
- (void)border:(MiscBorderType)b setMaxTotalSize:(float)size;
- (void)setMinTotalWidth:(float)size;
- (void)setMaxTotalWidth:(float)size;
- (void)setMinTotalHeight:(float)size;
- (void)setMaxTotalHeight:(float)size;
- (void)constrainSize; // Applies constraints, updates views.
- (BOOL)minTotalSizeIsConstrained:(MiscBorderType)b;
- (BOOL)maxTotalSizeIsConstrained:(MiscBorderType)b;
- (BOOL)minTotalWidthIsConstrained;
- (BOOL)maxTotalWidthIsConstrained;
- (BOOL)minTotalHeightIsConstrained;
- (BOOL)maxTotalHeightIsConstrained;
- (void)border:(MiscBorderType)b constrainMinTotalSize:(BOOL)flag;
- (void)border:(MiscBorderType)b constrainMaxTotalSize:(BOOL)flag;
- (void)constrainMinTotalWidth:(BOOL)flag;
- (void)constrainMaxTotalWidth:(BOOL)flag;
- (void)constrainMinTotalHeight:(BOOL)flag;
- (void)constrainMaxTotalHeight:(BOOL)flag;
// SLOTS ----------------------------------------------------------------------
- (MiscTableBorder*)border:(MiscBorderType)b;
- (BOOL)slotTitlesOn:(MiscBorderType)b;
- (BOOL)border:(MiscBorderType)b setSlotTitlesOn:(BOOL)on_off;
// -border:setTitlesOn: Returns YES if changed.
- (MiscTableTitleMode)slotTitleMode:(MiscBorderType)b;
- (void)border:(MiscBorderType)b setSlotTitleMode:(MiscTableTitleMode)x;
- (float)slotTitlesSize:(MiscBorderType)b;
- (void)border:(MiscBorderType)b setSlotTitlesSize:(float)x;
- (void)border:(MiscBorderType)b moveSlotFrom:(int)pos to:(int)pos;
- (int)border:(MiscBorderType)b slotPosition:(int)slot;
- (int)border:(MiscBorderType)b slotAtPosition:(int)pos;
- (NSArray*)border:(MiscBorderType)b physicalToVisual:(NSArray*)list;
- (NSArray*)border:(MiscBorderType)b visualToPhysical:(NSArray*)list;
- (BOOL)sizeableSlots:(MiscBorderType)b;
- (BOOL)draggableSlots:(MiscBorderType)b;
- (BOOL)modifierDragSlots:(MiscBorderType)b;
- (float)uniformSizeSlots:(MiscBorderType)b;
- (float)border:(MiscBorderType)b slotAdjustedSize:(int)slot;
- (float)border:(MiscBorderType)b slotSize:(int)slot;
- (float)border:(MiscBorderType)b slotMinSize:(int)slot;
- (float)border:(MiscBorderType)b slotMaxSize:(int)slot;
- (float)border:(MiscBorderType)b slotDataSize:(int)slot;
- (BOOL)border:(MiscBorderType)b slotIsSizeable:(int)slot;
- (BOOL)border:(MiscBorderType)b slotExpandsToData:(int)slot;
- (BOOL)border:(MiscBorderType)b slotIsAutosize:(int)slot;
- (NSString*)border:(MiscBorderType)b slotTitle:(int)slot;
- (int)border:(MiscBorderType)b slotTag:(int)slot;
- (MiscTableCellStyle)border:(MiscBorderType)b slotCellType:(int)slot;
- (id)border:(MiscBorderType)b slotCellPrototype:(int)slot;
- (void)border:(MiscBorderType)b setSizeableSlots:(BOOL)flag;
- (void)border:(MiscBorderType)b setDraggableSlots:(BOOL)flag;
- (void)border:(MiscBorderType)b setModifierDragSlots:(BOOL)flag;
- (void)border:(MiscBorderType)b setUniformSizeSlots:(float)uniform_size;
- (void)border:(MiscBorderType)b setSlot:(int)n size:(float)size;
- (void)border:(MiscBorderType)b setSlot:(int)n minSize:(float)size;
- (void)border:(MiscBorderType)b setSlot:(int)n maxSize:(float)size;
- (void)border:(MiscBorderType)b setSlot:(int)n dataSize:(float)size;
- (void)border:(MiscBorderType)b setSlot:(int)n sizeable:(BOOL)flag;
- (void)border:(MiscBorderType)b setSlot:(int)n expandsToData:(BOOL)flag;
- (void)border:(MiscBorderType)b setSlot:(int)n autosize:(BOOL)flag;
- (void)border:(MiscBorderType)b setSlot:(int)n title:(NSString*)title;
- (void)border:(MiscBorderType)b setSlot:(int)n tag:(int)tag;
- (void)border:(MiscBorderType)b setSlot:(int)n
cellType:(MiscTableCellStyle)t;
- (void)border:(MiscBorderType)b setSlot:(int)n cellPrototype:(id)cell;
// COLS -----------------------------------------------------------------------
- (MiscTableBorder*)columnBorder;
- (BOOL)columnTitlesOn;
- (BOOL)setColumnTitlesOn:(BOOL)on_off; // Returns YES if changed.
- (MiscTableTitleMode)columnTitleMode;
- (void)setColumnTitleMode:(MiscTableTitleMode)x;
- (float)columnTitlesHeight;
- (void)setColumnTitlesHeight:(float)x;
- (void)moveColumnFrom:(int)pos to:(int)pos;
- (int)columnPosition:(int)col;
- (int)columnAtPosition:(int)pos;
- (float)uniformSizeColumns;
- (BOOL)sizeableColumns;
- (BOOL)draggableColumns;
- (BOOL)modifierDragColumns;
- (float)columnAdjustedSize:(int)col;
- (float)columnSize:(int)col;
- (float)columnMinSize:(int)col;
- (float)columnMaxSize:(int)col;
- (float)columnDataSize:(int)col;
- (BOOL)columnIsSizeable:(int)col;
- (BOOL)columnExpandsToData:(int)col;
- (BOOL)columnIsAutosize:(int)col;
- (NSString*)columnTitle:(int)col;
- (int)columnTag:(int)col;
- (MiscTableCellStyle)columnCellType:(int)col;
- (id)columnCellPrototype:(int)col;
- (void)setSizeableColumns:(BOOL)flag;
- (void)setDraggableColumns:(BOOL)flag;
- (void)setModifierDragColumns:(BOOL)flag;
- (void)setUniformSizeColumns:(float)uniform_size;
- (void)setColumn:(int)col size:(float)size;
- (void)setColumn:(int)col minSize:(float)size;
- (void)setColumn:(int)col maxSize:(float)size;
- (void)setColumn:(int)col dataSize:(float)size;
- (void)setColumn:(int)col sizeable:(BOOL)flag;
- (void)setColumn:(int)col expandsToData:(BOOL)flag;
- (void)setColumn:(int)col autosize:(BOOL)flag;
- (void)setColumn:(int)col title:(NSString*)title;
- (void)setColumn:(int)col tag:(int)tag;
- (void)setColumn:(int)col cellType:(MiscTableCellStyle)type;
- (void)setColumn:(int)col cellPrototype:(id)cell;
- (int)numberOfVisibleColumns;
- (int)firstVisibleColumn;
- (int)lastVisibleColumn;
- (BOOL)columnIsVisible:(int)n;
- (void)setFirstVisibleColumn:(int)n;
- (void)setLastVisibleColumn:(int)n;
// ROWS -----------------------------------------------------------------------
- (MiscTableBorder*)rowBorder;
- (BOOL)rowTitlesOn;
- (BOOL)setRowTitlesOn:(BOOL)on_off;
- (MiscTableTitleMode)rowTitleMode;
- (void)setRowTitleMode:(MiscTableTitleMode)x;
- (float)rowTitlesWidth;
- (void)setRowTitlesWidth:(float)x;
- (void)moveRowFrom:(int)fromPos to:(int)toPos;
- (int)rowPosition:(int)row;
- (int)rowAtPosition:(int)pos;
- (BOOL)sizeableRows;
- (BOOL)draggableRows;
- (BOOL)modifierDragRows;
- (float)uniformSizeRows;
- (float)rowAdjustedSize:(int)row;
- (float)rowSize:(int)row;
- (float)rowMinSize:(int)row;
- (float)rowMaxSize:(int)row;
- (float)rowDataSize:(int)row;
- (BOOL)rowIsSizeable:(int)row;
- (BOOL)rowExpandsToData:(int)row;
- (BOOL)rowIsAutosize:(int)row;
- (NSString*)rowTitle:(int)row;
- (int)rowTag:(int)row;
- (MiscTableCellStyle)rowCellType:(int)row;
- (id)rowCellPrototype:(int)row;
- (void)setSizeableRows:(BOOL)flag;
- (void)setDraggableRows:(BOOL)flag;
- (void)setModifierDragRows:(BOOL)flag;
- (void)setUniformSizeRows:(float)uniform_size;
- (void)setRow:(int)row size:(float)size;
- (void)setRow:(int)row minSize:(float)size;
- (void)setRow:(int)row maxSize:(float)size;
- (void)setRow:(int)row dataSize:(float)size;
- (void)setRow:(int)row sizeable:(BOOL)flag;
- (void)setRow:(int)row expandsToData:(BOOL)flag;
- (void)setRow:(int)row autosize:(BOOL)flag;
- (void)setRow:(int)row title:(NSString*)title;
- (void)setRow:(int)row tag:(int)tag;
- (void)setRow:(int)row cellType:(MiscTableCellStyle)type;
- (void)setRow:(int)row cellPrototype:(id)cell;
- (int)numberOfVisibleRows;
- (int)firstVisibleRow;
- (int)lastVisibleRow;
- (BOOL)rowIsVisible:(int)n;
- (void)setFirstVisibleRow:(int)n;
- (void)setLastVisibleRow:(int)n;
// DRAWING --------------------------------------------------------------------
- (NSRect)documentClipRect;
- (void)drawCellAtRow:(int)row column:(int)col; // Physical coords
- (void)drawRow:(int)row; // Physical coords
- (void)drawColumn:(int)col; // Physical coords
- (void)border:(MiscBorderType)b drawSlot:(int)n;
- (int)numberOfVisibleSlots:(MiscBorderType)b;
- (int)firstVisibleSlot:(MiscBorderType)b;
- (int)lastVisibleSlot:(MiscBorderType)b;
- (BOOL)border:(MiscBorderType)b slotIsVisible:(int)n;
- (void)border:(MiscBorderType)b setFirstVisibleSlot:(int)n;
- (void)border:(MiscBorderType)b setLastVisibleSlot:(int)n;
- (void)scrollCellToVisibleAtRow:(int)row column:(int)col; // Physical coords
- (void)scrollRowToVisible:(int)row; // Physical coord
- (void)scrollColumnToVisible:(int)col; // Physical coord
- (void)scrollSelectionToVisible;
- (void)border:(MiscBorderType)b drawSlotTitle:(int)n;
- (void)drawRowTitle:(int)n;
- (void)drawColumnTitle:(int)n;
- (void)selectionChanged;
- (void)sizeToCells;
// INTERNAL COMMUNICATIONS ON USER-ACTIONS FOR SUBCLASSES ONLY ----------------
// Private: BorderView -> TableScroll
- (void)border:(MiscBorderType)b slotDraggedFrom:(int)fromPos to:(int)toPos;
- (void)border:(MiscBorderType)b slotSortReversed:(int)n;
- (void)border:(MiscBorderType)b slotResized:(int)n;
// See implementation for explanation of the following methods.
- (void)superKeyDown:(NSEvent*)p;
- (id)superValidRequestorForSendType:(NSString*)s returnType:(NSString*)r;
@end
// SORTING --------------------------------------------------------------------
@interface MiscTableScroll(Sort)
- (MiscCompareSlotFunc)compareSlotFunction;
- (void)setCompareSlotFunction:(MiscCompareSlotFunc)f;
- (void)sortInfoInit:(MiscSlotSortInfo*)ip border:(MiscBorderType)b;
- (void)sortInfoDone:(MiscSlotSortInfo*)ip;
// Slots
- (BOOL)autoSortSlots:(MiscBorderType)b;
- (void)border:(MiscBorderType)b setAutoSortSlots:(BOOL)flag;
- (NSArray*)slotSortVector:(MiscBorderType)b;
- (void)border:(MiscBorderType)b setSlotSortVector:(NSArray*)v;
- (void)sortSlots:(MiscBorderType)b;
- (BOOL)slotsAreSorted:(MiscBorderType)b;
- (BOOL)border:(MiscBorderType)b sortSlot:(int)n;
- (BOOL)border:(MiscBorderType)b slotIsSorted:(int)n;
- (int)border:(MiscBorderType)b compareSlots:(int)slot1 :(int)slot2
info:(MiscSlotSortInfo*)ip;
- (int)border:(MiscBorderType)b compareSlots:(int)slot1 :(int)slot2;
- (MiscCompareEntryFunc)border:(MiscBorderType)b slotSortFunction:(int)n;
- (MiscSortDirection)border:(MiscBorderType)b slotSortDirection:(int)n;
- (MiscSortType)border:(MiscBorderType)b slotSortType:(int)n;
- (void)border:(MiscBorderType)b setSlot:(int)n
sortFunction:(MiscCompareEntryFunc)x;
- (void)border:(MiscBorderType)b setSlot:(int)n
sortDirection:(MiscSortDirection)x;
- (void)border:(MiscBorderType)b setSlot:(int)n
sortType:(MiscSortType)x;
// Cols
- (BOOL)autoSortColumns;
- (void)setAutoSortColumns:(BOOL)flag;
- (NSArray*)columnSortVector;
- (void)setColumnSortVector:(NSArray*)v;
- (void)sortColumns;
- (BOOL)columnsAreSorted;
- (BOOL)sortColumn:(int)n;
- (BOOL)columnIsSorted:(int)n;
- (int)compareColumns:(int)c1 :(int)c2 info:(MiscSlotSortInfo*)ip;
- (int)compareColumns:(int)c1 :(int)c2;
- (MiscCompareEntryFunc)columnSortFunction:(int)n;
- (MiscSortDirection)columnSortDirection:(int)n;
- (MiscSortType)columnSortType:(int)n;
- (void)setColumn:(int)n sortFunction:(MiscCompareEntryFunc)x;
- (void)setColumn:(int)n sortDirection:(MiscSortDirection)x;
- (void)setColumn:(int)n sortType:(MiscSortType)x;
// Rows
- (BOOL)autoSortRows;
- (void)setAutoSortRows:(BOOL)flag;
- (NSArray*)rowSortVector;
- (void)setRowSortVector:(NSArray*)v;
- (void)sortRows;
- (BOOL)rowsAreSorted;
- (BOOL)sortRow:(int)n;
- (BOOL)rowIsSorted:(int)n;
- (int)compareRows:(int)r1 :(int)r2 info:(MiscSlotSortInfo*)ip;
- (int)compareRows:(int)r1 :(int)r2;
- (MiscCompareEntryFunc)rowSortFunction:(int)n;
- (MiscSortDirection)rowSortDirection:(int)n;
- (MiscSortType)rowSortType:(int)n;
- (void)setRow:(int)n sortFunction:(MiscCompareEntryFunc)x;
- (void)setRow:(int)n sortDirection:(MiscSortDirection)x;
- (void)setRow:(int)n sortType:(MiscSortType)x;
@end
// DATA MANIPULATION ----------------------------------------------------------
@interface MiscTableScroll(Data)
- (BOOL)isLazy;
- (void)setLazy:(BOOL)flag;
- (id)cellAtRow:(int)row column:(int)col;
// Lazy mode tables that perform multiple-buffering:
- (int)bufferCount;
// Lazy mode asks delegate/dataDelegate first then uses cellAtRow:column:
// Eager mode goes straight to cellAtRow:column:
- (int)tagAtRow:(int)row column:(int)col;
- (int)intValueAtRow:(int)row column:(int)col;
- (float)floatValueAtRow:(int)row column:(int)col;
- (double)doubleValueAtRow:(int)row column:(int)col;
- (NSString*)stringValueAtRow:(int)row column:(int)col;
// For ButtonCells.
- (NSString*)titleAtRow:(int)row column:(int)col;
- (int)stateAtRow:(int)row column:(int)col;
// Invoke delegate methods if possible.
- (id)reviveCell:(id)cell atRow:(int)row column:(int)col;
- (id)retireCell:(id)cell atRow:(int)row column:(int)col;
// Builtin default implementation.
- (id)doReviveCell:(id)cell atRow:(int)row column:(int)col;
- (id)doRetireCell:(id)cell atRow:(int)row column:(int)col;
- (void)addSlot:(MiscBorderType)b;
- (void)border:(MiscBorderType)b insertSlot:(int)pos;
- (void)border:(MiscBorderType)b removeSlot:(int)pos;
- (int)numberOfSlots:(MiscBorderType)b;
- (void)addColumn;
- (void)insertColumn:(int)pos;
- (void)removeColumn:(int)pos;
- (int)numberOfColumns;
- (void)addRow;
- (void)insertRow:(int)pos;
- (void)removeRow:(int)pos;
- (int)numberOfRows;
- (void)renewRows:(int)count;
- (void)empty; // [self renewRows:0];
- (void)emptyAndReleaseCells;
@end
// PASTEBOARD SUPPORT ---------------------------------------------------------
@interface MiscTableScroll(Pasteboard)
- (void)copy:(id)sender;
- (void)cut:(id)sender;
- (id)validRequestorForSendType:(NSString*)t_send
returnType:(NSString*)t_return;
- (id)builtinValidRequestorForSendType:(NSString*)t_send
returnType:(NSString*)t_return;
- (BOOL)canWritePboardType:(NSString*)type;
- (BOOL)builtinCanWritePboardType:(NSString*)type;
- (BOOL)writeSelectionToPasteboard:(NSPasteboard*)pboard types:(NSArray*)types;
- (BOOL)builtinWriteSelectionToPasteboard:(NSPasteboard*)pboard
types:(NSArray*)types;
- (NSString*)stringForPboardType:(NSString*)type;
- (NSString*)builtinStringForPboardType:(NSString*)type;
- (NSString*)stringForNSStringPboardType;
- (NSString*)stringForNSTabularTextPBoardType;
- (BOOL)readSelectionFromPasteboard:(NSPasteboard*)pboard;
- (BOOL)builtinReadSelectionFromPasteboard:(NSPasteboard*)pboard;
- (void)builtinRegisterServicesTypes;
- (void)registerServicesTypes;
@end
// INCREMENTAL SEARCH ---------------------------------------------------------
@interface MiscTableScroll(IncrementalSearch)
- (BOOL)incrementalSearch:(NSEvent*)p;
- (BOOL)doIncrementalSearch:(NSEvent*)p column:(int)col;
- (BOOL)getISearchColumn:(int*)col;
- (BOOL)doGetISearchColumn:(int*)col;
@end
// KEYBOARD EVENTS ------------------------------------------------------------
@interface MiscTableScroll(Keyboard)
- (void)keyDown:(NSEvent*)event;
@end
// EDITING --------------------------------------------------------------------
@interface MiscTableScroll(Edit)
- (NSRect)cellFrameAtRow:(int)row column:(int)col; // Physical coords
- (BOOL)getRow:(int*)row column:(int*)col forPoint:(NSPoint)point; // Physical.
- (BOOL)getPreviousEditRow:(MiscCoord_P*)p_row column:(MiscCoord_P*)p_col;
- (BOOL)getNextEditRow:(MiscCoord_P*)p_row column:(MiscCoord_P*)p_col;
- (BOOL)getNext:(BOOL)foreward
editRow:(MiscCoord_P*)p_row column:(MiscCoord_P*)p_col;
- (BOOL)isEditing;
- (BOOL)finishEditing; // Normal, conditional termination.
- (BOOL)abortEditing; // Forcibly abort the editing session.
- (void)textDidEndEditing:(NSNotification*)notification;
- (void)textDidBeginEditing:(NSNotification*)notification;
- (void)textDidChange:(NSNotification*)notification;
- (BOOL)textShouldBeginEditing:(NSText*)sender;
- (BOOL)textShouldEndEditing:(NSText*)sender;
- (void)edit:(NSEvent*)ev atRow:(MiscCoord_P)row column:(MiscCoord_P)col;
- (BOOL)canEdit:(NSEvent*)ev atRow:(MiscCoord_P)row column:(MiscCoord_P)col;
- (BOOL)editIfAble:(NSEvent*)ev atRow:(MiscCoord_P)row column:(MiscCoord_P)col;
- (void)editCellAtRow:(MiscCoord_P)row column:(MiscCoord_P)col;
@end
// PRINTING -------------------------------------------------------------------
@interface MiscTableScroll(Print)
- (void)print:(id)sender;
- (MiscTablePrintInfo const*)getPrintInfo;
- (id)getPageHeader;
- (id)getPageFooter;
- (void)setPageHeader:(id)obj;
- (void)setPageFooter:(id)obj;
@end
// DELEGATE PROTOCOL ----------------------------------------------------------
@interface MiscTableScroll(Delegate)
- (void)tableScroll:(MiscTableScroll*)scroll border:(MiscBorderType)b
slotDraggedFrom:(int)fromPos to:(int)toPos;
- (void)tableScroll:(MiscTableScroll*)scroll border:(MiscBorderType)b
slotSortReversed:(int)n;
- (void)tableScroll:(MiscTableScroll*)scroll border:(MiscBorderType)b
slotResized:(int)n;
- (void)tableScroll:(MiscTableScroll*)scroll
changeFont:(NSFont*)oldFont to:(NSFont*)newFont;
- (void)tableScroll:(MiscTableScroll*)scroll
fontChangedFrom:(NSFont*)oldFont to:(NSFont*)newFont;
- (void)tableScroll:(MiscTableScroll*)scroll
backgroundColorChangedTo:(NSColor*)x;
- (void)tableScroll:(MiscTableScroll*)scroll
selectedBackgroundColorChangedTo:(NSColor*)x;
- (void)tableScroll:(MiscTableScroll*)scroll
selectedTextColorChangedTo:(NSColor*)x;
- (void)tableScroll:(MiscTableScroll*)scroll
textColorChangedTo:(NSColor*)x;
- (BOOL)tableScroll:(MiscTableScroll*)scroll getISearchColumn:(int*)col;
- (int)tableScrollBufferCount:(MiscTableScroll*)scroll;
- (id)tableScroll:(MiscTableScroll*)scroll
border:(MiscBorderType)b slotPrototype:(int)slot;
- (NSString*)tableScroll:(MiscTableScroll*)scroll
border:(MiscBorderType)b slotTitle:(int)slot;
- (id)tableScroll:(MiscTableScroll*)scroll cellAtRow:(int)row column:(int)col;
- (id)tableScroll:(MiscTableScroll*)scroll reviveCell:(id)cell
atRow:(int)row column:(int)col;
- (id)tableScroll:(MiscTableScroll*)scroll retireCell:(id)cell
atRow:(int)row column:(int)col;
- (int)tableScroll:(MiscTableScroll*)scroll
tagAtRow:(int)row column:(int)col;
- (int)tableScroll:(MiscTableScroll*)scroll
intValueAtRow:(int)row column:(int)col;
- (float)tableScroll:(MiscTableScroll*)scroll
floatValueAtRow:(int)row column:(int)col;
- (double)tableScroll:(MiscTableScroll*)scroll
doubleValueAtRow:(int)row column:(int)col;
- (NSString*)tableScroll:(MiscTableScroll*)scroll
stringValueAtRow:(int)row column:(int)col;
- (NSString*)tableScroll:(MiscTableScroll*)scroll
titleAtRow:(int)row column:(int)col;
- (int)tableScroll:(MiscTableScroll*)scroll
stateAtRow:(int)row column:(int)col;
- (BOOL)tableScroll:(MiscTableScroll*)scroll
allowDragOperationAtRow:(int)row column:(int)col;
- (void)tableScroll:(MiscTableScroll*)scroll
preparePasteboard:(NSPasteboard*)pb
forDragOperationAtRow:(int)row column:(int)col;
- (NSImage*)tableScroll:(MiscTableScroll*)scroll
imageForDragOperationAtRow:(int)row column:(int)col;
- (unsigned int)tableScroll:(MiscTableScroll*)scroll
draggingSourceOperationMaskForLocal:(BOOL)isLocal;
- (BOOL)tableScrollIgnoreModifierKeysWhileDragging:(MiscTableScroll*)scroll;
- (void)tableScrollRegisterServicesTypes:(MiscTableScroll*)scroll;
- (id)tableScroll:(MiscTableScroll*)scroll
validRequestorForSendType:(NSString*)t_write
returnType:(NSString*)t_read;
- (BOOL)tableScroll:(MiscTableScroll*)scroll
canWritePboardType:(NSString*)type;
- (NSString*)tableScroll:(MiscTableScroll*)scroll
stringForPboardType:(NSString*)type;
- (BOOL)tableScroll:(MiscTableScroll*)scroll
writeSelectionToPasteboard:(NSPasteboard*)pboard types:(NSArray*)types;
- (BOOL)tableScroll:(MiscTableScroll*)scroll
readSelectionFromPasteboard:(NSPasteboard*)pboard;
- (void)tableScrollWillPrint:(MiscTableScroll*)scroll;
- (void)tableScrollDidPrint:(MiscTableScroll*)scroll;
- (void)tableScroll:(MiscTableScroll*)scroll
willPrintPageHeader:(id)pageHeader
info:(MiscTablePrintInfo const*)info;
- (void)tableScroll:(MiscTableScroll*)scroll
willPrintPageFooter:(id)pageFooter
info:(MiscTablePrintInfo const*)info;
- (BOOL)tableScroll:(MiscTableScroll*)scroll
canEdit:(NSEvent*)ev atRow:(int)row column:(int)col;
- (void)tableScroll:(MiscTableScroll*)scroll
edit:(NSEvent*)ev atRow:(int)row column:(int)col;
- (BOOL)tableScroll:(MiscTableScroll*)scroll
setStringValue:(NSString*)s atRow:(int)row column:(int)col;
- (void)tableScroll:(MiscTableScroll*)scroll
abortEditAtRow:(int)row column:(int)col;
- (void)tableScroll:(MiscTableScroll*)scroll
willEditAtRow:(int)row column:(int)col;
- (void)tableScroll:(MiscTableScroll*)scroll
didEdit:(BOOL)changed atRow:(int)row column:(int)col;
@end
// DATA CELL PROTOCOL ---------------------------------------------------------
@interface MiscTableScroll(DataCell)
- (id)tableScroll:(MiscTableScroll*)scroll
reviveAtRow:(int)row column:(int)col;
- (id)tableScroll:(MiscTableScroll*)scroll
retireAtRow:(int)row column:(int)col;
@end
#endif // __MiscTableScroll_h
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.