home *** CD-ROM | disk | FTP | other *** search
- #ifndef __MiscTableScroll_h
- #define __MiscTableScroll_h
- //=============================================================================
- //
- // Copyright (C) 1995, 1996 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.
- //
- //=============================================================================
- //-----------------------------------------------------------------------------
- // <misckit/MiscTableScroll.h>
- //
- // ScrollView class that displays a 2-D table of cells.
- //
- //-----------------------------------------------------------------------------
- //-----------------------------------------------------------------------------
- // $Id: MiscTableScroll.h,v 1.10 96/01/17 02:19:12 sunshine Exp $
- // $Log: MiscTableScroll.h,v $
- // Revision 1.10 96/01/17 02:19:12 sunshine
- // Published -changeFont:
- //
- // Revision 1.9 96/01/16 19:51:55 zarnuk
- // Published -selectionChanged.
- //
- // Revision 1.8 96/01/13 23:35:32 zarnuk
- // New (Sort) category.
- // New data-access methods -intValueAt::, etc.
- // New color-change notification messages.
- // New font-change notification message.
- //-----------------------------------------------------------------------------
- #import <misckit/MiscTableTypes.h>
- #import <misckit/MiscIntList.h>
-
- MISC_TS_EXTERN_BEGIN( "Objective-C" )
- #import <appkit/ScrollView.h>
- MISC_TS_EXTERN_END
-
- MISC_TS_CLASS_DEF( MiscTableBorder );
- @class MiscTableScroll, MiscTableView, MiscBorderView, MiscNullView;
- @class ClipView, Font, Storage;
-
-
- typedef struct MiscBorderInfo
- {
- MiscTableBorder* border;
- MiscBorderView* view;
- ClipView* clip;
- int sort_vector_len;
- int* sort_vector;
- BOOL isOn;
- BOOL autoSort;
- BOOL constrain_min;
- BOOL constrain_max;
- } MiscBorderInfo;
-
-
- @interface MiscTableScroll : ScrollView
- {
- @private
- MiscTableView* tableView;
- MiscBorderInfo* info[2]; // { &colInfo, &rowInfo }
- MiscBorderInfo colInfo;
- MiscBorderInfo rowInfo;
- MiscNullView* nullView;
- Font* font;
- NXColor textColor;
- NXColor backgroundColor;
- NXColor highlightTextColor;
- NXColor highlightBackgroundColor;
- id nextText;
- id previousText;
- id delegate;
- id dataDelegate;
- 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;
- }
-
- - initFrame: (NXRect const*) frameRect;
- - free;
-
-
- // DELEGATE -------------------------------------------------------------------
- - delegate;
- - setDelegate:obj;
- - dataDelegate;
- - setDataDelegate:obj;
-
- // Private: border -> scroll
- - (char const*) border:(MiscBorderType)b getDelegateSlotTitle:(int)slot;
- - border:(MiscBorderType)b getDelegateSlotPrototype:(int)s;
-
-
- // TARGET / ACTION ------------------------------------------------------------
- - target;
- - setTarget:obj;
- - doubleTarget;
- - setDoubleTarget:obj;
- - (SEL) action;
- - setAction:(SEL)new_sel;
- - (SEL) doubleAction;
- - setDoubleAction:(SEL)new_sel;
-
- - sendAction:(SEL)theAction to:theTarget;
- - sendAction;
- - sendActionIfEnabled;
- - sendDoubleAction;
- - sendDoubleActionIfEnabled;
-
- - (int) tag;
- - setTag:(int)x;
-
-
- // NEXT-TEXT CHAIN ------------------------------------------------------------
- - nextText;
- - previousText;
- - setNextText:obj;
- - setPreviousText:obj;
- - selectText:sender;
- - (BOOL) isEnabled;
- - setEnabled:(BOOL)flag;
- - (BOOL) isSelectable;
-
-
- // FONT -----------------------------------------------------------------------
- - font;
- - setFont:newFont;
- - changeFont:sender;
- + (Font*) defaultFont;
-
-
- // COLOR ----------------------------------------------------------------------
- - (NXColor) backgroundColor;
- - setBackgroundColor: (NXColor) value; // Sent to all cells.
- - (NXColor) textColor;
- - setTextColor: (NXColor) value; // Sent to all cells.
- - (NXColor) highlightBackgroundColor;
- - setHighlightBackgroundColor: (NXColor) value; // Send to all cells.
- - (NXColor) highlightTextColor;
- - setHighlightTextColor: (NXColor) value; // Sent to all cells.
-
- - (float) backgroundGray; // Gray values are converted
- - setBackgroundGray: (float) value; // to/from color values.
- - (float) textGray;
- - setTextGray: (float) value;
- - (float) highlightBackgroundGray;
- - setHighlightBackgroundGray: (float) value;
- - (float) highlightTextGray;
- - setHighlightTextGray: (float) value;
-
- - setColor:(NXColor) value; // Alias for -setBackgroundColor:
- - (NXColor) color; // Alias for -backgroundColor
-
- + (NXColor) defaultBackgroundColor;
- + (NXColor) defaultTextColor;
- + (NXColor) defaultHighlightBackgroundColor;
- + (NXColor) defaultHighlightTextColor;
-
-
- // SLOT ORDER -----------------------------------------------------------------
- - border:(MiscBorderType)b slotOrder:(MiscIntList*)list;
- - colOrder:(MiscIntList*)list;
- - rowOrder:(MiscIntList*)list;
-
- - border:(MiscBorderType)b setSlotOrder:(MiscIntList*)list;
- - setColOrder:(MiscIntList*)list;
- - setRowOrder:(MiscIntList*)list;
-
- - (char*) border:(MiscBorderType)b slotOrderAsString:(char*)buff
- size:(int)buff_size canExpand:(BOOL)canExpand;
- - (char*) colOrderAsString:(char*)buff
- size:(int)buff_size canExpand:(BOOL)canExpand;
- - (char*) rowOrderAsString:(char*)buff
- size:(int)buff_size canExpand:(BOOL)canExpand;
-
- - border:(MiscBorderType)b setSlotOrderFromString:(char const*)s;
- - setColOrderFromString:(char const*)s;
- - setRowOrderFromString:(char const*)s;
-
-
- // SLOT SIZES -----------------------------------------------------------------
- - border:(MiscBorderType)b slotSizes:(MiscIntList*)list;
- - colSizes:(MiscIntList*)list;
- - rowSizes:(MiscIntList*)list;
-
- - border:(MiscBorderType)b setSlotSizes:(MiscIntList*)list;
- - setColSizes:(MiscIntList*)list;
- - setRowSizes:(MiscIntList*)list;
-
- - (char*) border:(MiscBorderType)b slotSizesAsString:(char*)buff
- size:(int)buff_size canExpand:(BOOL)canExpand;
- - (char*) colSizesAsString:(char*)buff
- size:(int)buff_size canExpand:(BOOL)canExpand;
- - (char*) rowSizesAsString:(char*)buff
- size:(int)buff_size canExpand:(BOOL)canExpand;
-
- - border:(MiscBorderType)b setSlotSizesFromString:(char const*)s;
- - setColSizesFromString:(char const*)s;
- - setRowSizesFromString:(char const*)s;
-
-
- // MULTICAST MESSAGES ---------------------------------------------------------
- - sendAction:(SEL)aSelector to:anObject forAllCells:(BOOL)flag;
-
- - (int) makeCellsPerform:(SEL)aSel selectedOnly:(BOOL)flag;
- - (int) makeCellsPerform:(SEL)aSel with:arg1 selectedOnly:(BOOL)flag;
- - (int) makeCellsPerform:(SEL)aSel with:arg1 with:arg2 selectedOnly:(BOOL)flag;
-
- - (int) makeCellsPerform:(SEL)aSel;
- - (int) makeCellsPerform:(SEL)aSel with:arg1;
- - (int) makeCellsPerform:(SEL)aSel with:arg1 with:arg2;
-
-
- // FINDING CELLS --------------------------------------------------------------
- - (int) border:(MiscBorderType)b findSlotWithTag:(int)x;
- - (int) findColWithTag:(int)x;
- - (int) findRowWithTag:(int)x;
- - findCellWithTag:(int)x;
- - findCellWithTag:(int)x row:(int*)row col:(int*)col;
- - findCell:cell row:(int*)row col:(int*)col;
-
-
- // SELECTION ------------------------------------------------------------------
- - (MiscSelectionMode) selectionMode;
- - (void) setSelectionMode: (MiscSelectionMode)x;
- - (BOOL) borderHasSelection: (MiscBorderType)b;
- - (BOOL) hasRowSelection;
- - (BOOL) hasColSelection;
- - (BOOL) borderHasMultipleSelection: (MiscBorderType)b;
- - (BOOL) hasMultipleRowSelection;
- - (BOOL) hasMultipleColSelection;
- - (unsigned int) borderNumSelectedSlots: (MiscBorderType)b;
- - (unsigned int) numSelectedRows;
- - (unsigned int) numSelectedCols;
- - (BOOL) cellIsSelected: (MiscCoord_P)row : (MiscCoord_P)col;
- - (BOOL) border: (MiscBorderType)b slotIsSelected: (MiscCoord_P)slot;
- - (BOOL) rowIsSelected: (MiscCoord_P)row;
- - (BOOL) colIsSelected: (MiscCoord_P)col;
- - (MiscCoord_P) borderSelectedSlot: (MiscBorderType)b;
- - (MiscCoord_P) selectedRow;
- - (MiscCoord_P) selectedCol;
- - (void) border: (MiscBorderType)b selectedTags: (MiscIntList*)tags;
- - (void) selectedRowTags: (MiscIntList*)tags;
- - (void) selectedColTags: (MiscIntList*)tags;
- - (void) border: (MiscBorderType)b selectedSlots: (MiscIntList*)slots;
- - (void) selectedRows: (MiscIntList*)rows;
- - (void) selectedCols: (MiscIntList*)cols;
- - (void) border: (MiscBorderType)b selectSlot: (MiscCoord_P)slot;
- - (void) selectRow: (MiscCoord_P)row;
- - (void) selectCol: (MiscCoord_P)col;
- - (void) border: (MiscBorderType)b selectTags: (MiscIntList*)tags;
- - (void) selectRowTags: (MiscIntList*)tags;
- - (void) selectColTags: (MiscIntList*)tags;
- - (void) border: (MiscBorderType)b selectSlots: (MiscIntList*)slots;
- - (void) selectRows: (MiscIntList*)rows;
- - (void) selectCols: (MiscIntList*)cols;
- - (void) borderSelectAll: (MiscBorderType)b;
- - (void) selectAllRows;
- - (void) selectAllCols;
- - selectAll: sender; // -selectAllRows and sends action to target.
- - (void) borderClearSelection: (MiscBorderType)b;
- - (void) clearRowSelection;
- - (void) clearColSelection;
- - (void) clearSelection;
-
-
- // MOUSE & KEYBOARD TRACKING --------------------------------------------------
- - (void) trackBy: (MiscBorderType)b;
- - (MiscBorderType) trackingBy;
-
-
- // KEYBOARD CURSOR ------------------------------------------------------------
- - (MiscCoord_P) borderCursor: (MiscBorderType)b;
- - (MiscCoord_P) cursorRow;
- - (MiscCoord_P) cursorCol;
- - (void) border: (MiscBorderType)b setCursor: (MiscCoord_P) slot;
- - (void) setCursorRow: (MiscCoord_P) row;
- - (void) setCursorCol: (MiscCoord_P) col;
- - (void) borderClearCursor: (MiscBorderType)b;
- - (void) clearCursorRow;
- - (void) clearCursorCol;
- - (void) clearCursor;
- - (BOOL) borderHasValidCursor: (MiscBorderType)b;
- - (BOOL) hasValidCursorRow;
- - (BOOL) hasValidCursorCol;
-
-
- // GLOBAL SIZE LIMITS ---------------------------------------------------------
- - (NXCoord) totalSize:(MiscBorderType)b;
- - (NXCoord) totalWidth;
- - (NXCoord) totalHeight;
-
- - (NXCoord) minTotalSize:(MiscBorderType)b;
- - (NXCoord) maxTotalSize:(MiscBorderType)b;
- - (NXCoord) minTotalWidth;
- - (NXCoord) maxTotalWidth;
- - (NXCoord) minTotalHeight;
- - (NXCoord) maxTotalHeight;
-
- - (void) border:(MiscBorderType)b setMinTotalSize:(NXCoord)size;
- - (void) border:(MiscBorderType)b setMaxTotalSize:(NXCoord)size;
- - (void) setMinTotalWidth:(NXCoord)size;
- - (void) setMaxTotalWidth:(NXCoord)size;
- - (void) setMinTotalHeight:(NXCoord)size;
- - (void) setMaxTotalHeight:(NXCoord)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) borderTitlesOn:(MiscBorderType)b;
- - (BOOL) border:(MiscBorderType)b setTitlesOn: (BOOL) on_off;
- // -border:setTitlesOn: Returns YES if changed.
- - (MiscTableTitleMode) borderTitleMode:(MiscBorderType)b;
- - (void) border:(MiscBorderType)b setTitleMode:(MiscTableTitleMode)x;
-
- - border:(MiscBorderType)b moveSlotFrom:(int)pos to:(int)pos;
- - (int) border:(MiscBorderType)b slotPosition:(int)slot;
- - (int) border:(MiscBorderType)b slotAtPosition:(int)pos;
- - (void) border:(MiscBorderType)b physicalToVisual:(MiscIntList*)list;
- - (void) border:(MiscBorderType)b visualToPhysical:(MiscIntList*)list;
-
- - (BOOL) sizeableSlots:(MiscBorderType)b;
- - (BOOL) draggableSlots:(MiscBorderType)b;
- - (BOOL) modifierDragSlots:(MiscBorderType)b;
- - (NXCoord) uniformSizeSlots:(MiscBorderType)b;
-
- - (NXCoord) border:(MiscBorderType)b slotAdjustedSize:(int)slot;
- - (NXCoord) border:(MiscBorderType)b slotSize:(int)slot;
- - (NXCoord) border:(MiscBorderType)b slotMinSize:(int)slot;
- - (NXCoord) border:(MiscBorderType)b slotMaxSize:(int)slot;
- - (NXCoord) 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;
- - (char const*) border:(MiscBorderType)b slotTitle:(int)slot;
- - (int) border:(MiscBorderType)b slotTag:(int)slot;
- - (MiscTableCellStyle) border:(MiscBorderType)b slotCellType:(int)slot;
- - 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:(NXCoord)uniform_size;
-
- - (void) border:(MiscBorderType)b setSlot:(int)n size:(NXCoord)size;
- - (void) border:(MiscBorderType)b setSlot:(int)n minSize:(NXCoord)size;
- - (void) border:(MiscBorderType)b setSlot:(int)n maxSize:(NXCoord)size;
- - (void) border:(MiscBorderType)b setSlot:(int)n dataSize:(NXCoord)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:(char const*)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:cell;
-
- // COLS -----------------------------------------------------------------------
- - (MiscTableBorder*) colBorder;
- - (BOOL) colTitlesOn;
- - (BOOL) setColTitlesOn: (BOOL) on_off; // Returns YES if changed.
- - (MiscTableTitleMode) colTitleMode;
- - (void) setColTitleMode:(MiscTableTitleMode)x;
-
- - moveColFrom:(int)pos to:(int)pos;
- - (int) colPosition:(int)col;
- - (int) colAtPosition:(int)pos;
-
- - (NXCoord) uniformSizeCols;
- - (BOOL) sizeableCols;
- - (BOOL) draggableCols;
- - (BOOL) modifierDragCols;
- - (NXCoord) colAdjustedSize:(int)col;
- - (NXCoord) colSize:(int)col;
- - (NXCoord) colMinSize:(int)col;
- - (NXCoord) colMaxSize:(int)col;
- - (NXCoord) colDataSize:(int)col;
- - (BOOL) colIsSizeable:(int)col;
- - (BOOL) colExpandsToData:(int)col;
- - (BOOL) colIsAutosize:(int)col;
- - (char const*) colTitle:(int)col;
- - (int) colTag:(int)col;
- - (MiscTableCellStyle) colCellType:(int)col;
- - colCellPrototype:(int)col;
-
- - (void) setSizeableCols:(BOOL)flag;
- - (void) setDraggableCols:(BOOL)flag;
- - (void) setModifierDragCols:(BOOL)flag;
- - (void) setUniformSizeCols:(NXCoord)uniform_size;
-
- - (void) setCol:(int)col size:(NXCoord)size;
- - (void) setCol:(int)col minSize:(NXCoord)size;
- - (void) setCol:(int)col maxSize:(NXCoord)size;
- - (void) setCol:(int)col dataSize:(NXCoord)size;
- - (void) setCol:(int)col sizeable:(BOOL)flag;
- - (void) setCol:(int)col expandsToData:(BOOL)flag;
- - (void) setCol:(int)col autosize:(BOOL)flag;
- - (void) setCol:(int)col title:(char const*)title;
- - (void) setCol:(int)col tag:(int)tag;
- - (void) setCol:(int)col cellType:(MiscTableCellStyle)type;
- - (void) setCol:(int)col cellPrototype:cell;
-
-
- // ROWS -----------------------------------------------------------------------
- - (MiscTableBorder*) rowBorder;
- - (BOOL) rowTitlesOn;
- - (BOOL) setRowTitlesOn: (BOOL) on_off;
- - (MiscTableTitleMode) rowTitleMode;
- - (void) setRowTitleMode:(MiscTableTitleMode)x;
-
- - moveRowFrom:(int)fromPos to:(int)toPos;
- - (int) rowPosition:(int)row;
- - (int) rowAtPosition:(int)pos;
-
- - (BOOL) sizeableRows;
- - (BOOL) draggableRows;
- - (BOOL) modifierDragRows;
- - (NXCoord) uniformSizeRows;
- - (NXCoord) rowAdjustedSize:(int)row;
- - (NXCoord) rowSize:(int)row;
- - (NXCoord) rowMinSize:(int)row;
- - (NXCoord) rowMaxSize:(int)row;
- - (NXCoord) rowDataSize:(int)row;
- - (BOOL) rowIsSizeable:(int)row;
- - (BOOL) rowExpandsToData:(int)row;
- - (BOOL) rowIsAutosize:(int)row;
- - (char const*) rowTitle:(int)row;
- - (int) rowTag:(int)row;
- - (MiscTableCellStyle) rowCellType:(int)row;
- - rowCellPrototype:(int)row;
-
- - (void) setSizeableRows:(BOOL)flag;
- - (void) setDraggableRows:(BOOL)flag;
- - (void) setModifierDragRows:(BOOL)flag;
- - (void) setUniformSizeRows:(NXCoord)uniform_size;
-
- - (void) setRow:(int)row size:(NXCoord)size;
- - (void) setRow:(int)row minSize:(NXCoord)size;
- - (void) setRow:(int)row maxSize:(NXCoord)size;
- - (void) setRow:(int)row dataSize:(NXCoord)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:(char const*)title;
- - (void) setRow:(int)row tag:(int)tag;
- - (void) setRow:(int)row cellType:(MiscTableCellStyle)type;
- - (void) setRow:(int)row cellPrototype:cell;
-
- // DRAWING --------------------------------------------------------------------
- - (void) getDocClipFrame:(NXRect*)rect;
-
- - drawCellAt: (int)row : (int)col; // Physical coords
-
- - drawRow: (int)row; // Physical coords
- - drawCol: (int)col; // Physical coords
- - border:(MiscBorderType)b drawSlot:(int)n;
-
- - (void) scrollCellToVisible: (int)row : (int) col; // Physical coords
- - (void) scrollRowToVisible: (int)row; // Physical coord
- - (void) scrollColToVisible: (int)col; // Physical coord
- - scrollSelToVisible;
-
- - border:(MiscBorderType)b drawSlotTitle:(int)n;
- - drawRowTitle:(int)n;
- - drawColTitle:(int)n;
-
- - (void) selectionChanged; // Checks isAutodisplay.
- - (void) reflectSelection; // Does not check isAutodisplay.
- - setAutodisplay:(BOOL) x;
-
- - sizeToCells;
-
- // Private: BorderView -> TableScroll
- - (void) border:(MiscBorderType)b slotDraggedFrom:(int)fromPos to:(int)toPos;
- - (void) border:(MiscBorderType)b slotResized:(int)n;
-
- @end
-
-
- // SORTING --------------------------------------------------------------------
- @interface MiscTableScroll(Sort)
-
- - (MiscCompareSlotFunc) compareSlotFunc;
- - (void) setCompareSlotFunc: (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;
- - (int const*) slotSortVector:(MiscBorderType)b len:(int*)len;
- - (void) border:(MiscBorderType)b setSlotSortVector:(int const*)v len:(int)n;
-
- - (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 slotSortFunc:(int)n;
- - (MiscSortDirection) border:(MiscBorderType)b slotSortDirection:(int)n;
- - (MiscSortType) border:(MiscBorderType)b slotSortType:(int)n;
- - (void) border:(MiscBorderType)b setSlot:(int)n
- sortFunc:(MiscCompareEntryFunc)x;
- - (void) border:(MiscBorderType)b setSlot:(int)n
- sortDirection:(MiscSortDirection)x;
- - (void) border:(MiscBorderType)b setSlot:(int)n
- sortType:(MiscSortType)x;
-
- // Cols
- - (BOOL) autoSortCols;
- - (void) setAutoSortCols:(BOOL)flag;
- - (int const*) colSortVectorLen:(int*)len;
- - (void) setColSortVector:(int const*)v len:(int)n;
-
- - (void) sortCols;
- - (BOOL) colsAreSorted;
- - (BOOL) sortCol:(int)n;
- - (BOOL) colIsSorted:(int)n;
- - (int) compareCols:(int)c1 :(int)c2 info:(MiscSlotSortInfo*)ip;
- - (int) compareCols:(int)c1 :(int)c2;
-
- - (MiscCompareEntryFunc) colSortFunc:(int)n;
- - (MiscSortDirection) colSortDirection:(int)n;
- - (MiscSortType) colSortType:(int)n;
- - (void) setCol:(int)n sortFunc:(MiscCompareEntryFunc)x;
- - (void) setCol:(int)n sortDirection:(MiscSortDirection)x;
- - (void) setCol:(int)n sortType:(MiscSortType)x;
-
- // Rows
- - (BOOL) autoSortRows;
- - (void) setAutoSortRows:(BOOL)flag;
- - (int const*) rowSortVectorLen:(int*)len;
- - (void) setRowSortVector:(int const*)v len:(int)n;
-
- - (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) rowSortFunc:(int)n;
- - (MiscSortDirection) rowSortDirection:(int)n;
- - (MiscSortType) rowSortType:(int)n;
- - (void) setRow:(int)n sortFunc:(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;
-
- - cellAt:(int)row :(int)col;
-
- // Lazy mode tables that perform multiple-buffering:
- - (int) buffCount;
-
- // Lazy mode asks delegate/dataDelegate first then uses cellAt::
- // Eager mode goes straight to cellAt::
- - (int) tagAt:(int)row :(int)col;
- - (int) intValueAt:(int)row :(int)col;
- - (float) floatValueAt:(int)row :(int)col;
- - (double) doubleValueAt:(int)row :(int)col;
- - (char const*) stringValueAt:(int)row :(int)col;
- // For ButtonCells.
- - (char const*) titleAt:(int)row :(int)col;
- - (int) stateAt:(int)row :(int)col;
-
- // Invoke delegate methods if possible.
- - reviveCell:cell at:(int)row :(int)col;
- - retireCell:cell at:(int)row :(int)col;
-
- // Builtin default implementation.
- - doReviveCell:cell at:(int)row:(int)col;
- - doRetireCell:cell at:(int)row:(int)col;
-
- - addSlot:(MiscBorderType)b;
- - border:(MiscBorderType)b insertSlotAt:(int)pos;
- - border:(MiscBorderType)b deleteSlotAt:(int)pos;
- - (int) numSlots:(MiscBorderType)b;
-
- - addCol;
- - insertColAt:(int)pos;
- - deleteColAt:(int)pos;
- - (int) numCols;
-
- - addRow;
- - insertRowAt:(int)pos;
- - deleteRowAt:(int)pos;
- - (int) numRows;
-
- - renewRows:(int)count;
- - empty; // [self renewRows:0];
- - emptyAndFreeCells;
- @end
-
-
- // PASTEBOARD SUPPORT ---------------------------------------------------------
- @interface MiscTableScroll(Pasteboard)
- - copy:sender;
- - cut:sender;
- - validRequestorForSendType:(NXAtom)t_write andReturnType:(NXAtom)t_read;
- - builtinValidRequestorForSendType:(NXAtom)t_write
- andReturnType:(NXAtom)t_read;
- - (BOOL) canWritePboardType:(NXAtom)type;
- - (BOOL) builtinCanWritePboardType:(NXAtom)type;
- - (BOOL) writeSelectionToPasteboard:pboard types:(NXAtom*)types;
- - (BOOL) builtinWriteSelectionToPasteboard:pboard types:(NXAtom*)types;
- - (void) writePboard:pboard type:(NXAtom)type toStream:(NXStream*)stream;
- - (void) builtinWritePboard:pb type:(NXAtom)type toStream:(NXStream*)stream;
- - (void) writeNXAsciiPboardTypeToStream:(NXStream*)stream;
- - (void) writeNXTabularTextPboardTypeToStream:(NXStream*)stream;
- - readSelectionFromPasteboard:pboard;
- - builtinReadSelectionFromPasteboard:pboard;
- - (void) builtinRegisterServicesTypes;
- - (void) registerServicesTypes;
- @end
-
-
- // DELEGATE PROTOCOL ----------------------------------------------------------
- @interface MiscTableScroll(Delegate)
- - tableScroll:(MiscTableScroll*)scroll border:(MiscBorderType)b
- slotDraggedFrom:(int)fromPos to:(int)toPos;
- - tableScroll:(MiscTableScroll*)scroll border:(MiscBorderType)b
- slotResized:(int)n;
-
- - tableScroll:(MiscTableScroll*)scroll
- changeFont:(Font*)oldFont to:(Font*)newFont;
- - tableScroll:(MiscTableScroll*)scroll
- fontChangedFrom:(Font*)oldFont to:(Font*)newFont;
-
- - tableScroll:(MiscTableScroll*)scroll
- backgroundColorChangedTo:(NXColor)x;
- - tableScroll:(MiscTableScroll*)scroll
- highlightBackgroundColorChangedTo:(NXColor)x;
- - tableScroll:(MiscTableScroll*)scroll
- highlightTextColorChangedTo:(NXColor)x;
- - tableScroll:(MiscTableScroll*)scroll
- textColorChangedTo:(NXColor)x;
-
- - tableScroll:(MiscTableScroll*)scroll cellAt:(int)row :(int)col;
- - tableScroll:(MiscTableScroll*)scroll reviveCell:cell at:(int)row :(int)col;
- - tableScroll:(MiscTableScroll*)scroll retireCell:cell at:(int)row :(int)col;
-
- - (int) tableScrollBuffCount:(MiscTableScroll*)scroll;
-
- - (int) tableScroll:(MiscTableScroll*)scroll tagAt:(int)row :(int)col;
- - (int) tableScroll:(MiscTableScroll*)scroll intValueAt:(int)row :(int)col;
- - (float) tableScroll:(MiscTableScroll*)scroll floatValueAt:(int)row :(int)col;
- - (double) tableScroll:(MiscTableScroll*)scroll
- doubleValueAt:(int)row :(int)col;
- - (char const*) tableScroll:(MiscTableScroll*)scroll
- stringValueAt:(int)row :(int)col;
- - (char const*) tableScroll:(MiscTableScroll*)scroll titleAt:(int)row :(int)col;
- - (int) tableScroll:(MiscTableScroll*)scroll stateAt:(int)row :(int)col;
-
- - (void) tableScrollRegisterServicesTypes: (MiscTableScroll*) scroll;
- - tableScroll:(MiscTableScroll*)scroll
- validRequestorForSendType:(NXAtom)t_write
- andReturnType:(NXAtom)t_read;
- - (BOOL) tableScroll:(MiscTableScroll*)scroll
- canWritePboardType:(NXAtom)type;
- - (void) tableScroll:(MiscTableScroll*)scroll
- writePboard:pboard type:(NXAtom)type toStream:(NXStream*)stream;
- - (BOOL) tableScroll:(MiscTableScroll*)scroll
- writeSelectionToPasteboard:pboard types:(NXAtom*)types;
- - tableScroll:(MiscTableScroll*)scroll
- readSelectionFromPasteboard:pboard;
- @end
-
-
- // DATA DELEGATE PROTOCOL -----------------------------------------------------
- @interface MiscTableScroll(DataDelegate)
- - tableScroll:(MiscTableScroll*)scroll cellAt:(int)row :(int)col;
- - tableScroll:(MiscTableScroll*)scroll
- border:(MiscBorderType)b slotPrototype:(int)slot;
- - (char const*) tableScroll:(MiscTableScroll*)scroll
- border:(MiscBorderType)b slotTitle:(int)slot;
- - tableScroll:(MiscTableScroll*)scroll reviveCell:cell at:(int)row :(int)col;
- - tableScroll:(MiscTableScroll*)scroll retireCell:cell at:(int)row :(int)col;
- - (void) tableScrollRegisterServicesTypes: (MiscTableScroll*) scroll;
- - tableScroll:(MiscTableScroll*)scroll
- validRequestorForSendType:(NXAtom)t_write
- andReturnType:(NXAtom)t_read;
- - (BOOL) tableScroll:(MiscTableScroll*)scroll
- canWritePboardType:(NXAtom)type;
- - (void) tableScroll:(MiscTableScroll*)scroll
- writePboard:pboard type:(NXAtom)type toStream:(NXStream*)stream;
- - (BOOL) tableScroll:(MiscTableScroll*)scroll
- writeSelectionToPasteboard:pboard types:(NXAtom*)types;
- - tableScroll:(MiscTableScroll*)scroll
- readSelectionFromPasteboard:pboard;
- @end
-
-
- // DATA CELL PROTOCOL ---------------------------------------------------------
- @interface MiscTableScroll(DataCell)
- - tableScroll:(MiscTableScroll*)scroll reviveAt:(int)row :(int)col;
- - tableScroll:(MiscTableScroll*)scroll retireAt:(int)row :(int)col;
- @end
-
- #endif // __MiscTableScroll_h
-