home *** CD-ROM | disk | FTP | other *** search
- //
- // MiscMatrix.h -- a class to implement variable-sized matrices
- // Written by Mike Ferris Copyright (c) 1994 by Mike Ferris.
- // Modified from original MOKit "MOMatrix" class by Don Yacktman.
- // Version 1.0. All rights reserved.
- //
- // This notice may not be removed from this source code.
- //
- // This object is included in the MiscKit by permission from the author
- // 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.
- //
-
- // MiscMatrix is a subclass of Matrix that allows independantly sizable
- // rows and columns. Each row can have a different height and each column
- // can have a different width.
-
- #import <appkit/appkit.h>
-
- typedef struct _MiscColumnSize_ {
- NXCoord x;
- NXCoord width;
- } MiscColumnSize;
- #define MISC_COLUMNSIZE_DESC "{ff}"
-
- typedef struct _MiscRowSize_ {
- NXCoord y;
- NXCoord height;
- } MiscRowSize;
- #define MISC_ROWSIZE_DESC "{ff}"
-
-
- @interface MiscMatrix : Matrix
- {
- Storage *columnSizes, *rowSizes;
-
- }
-
- + initialize;
-
- - initFrame:(const NXRect *)frm mode:(int)aMode prototype:cellId
- numRows:(int)rowsHigh numCols:(int)colsWide;
- - initFrame:(const NXRect *)frm mode:(int)aMode cellClass:factoryId
- numRows:(int)rowsHigh numCols:(int)colsWide;
-
- - copyFromZone:(NXZone *)zone;
-
- - free;
-
- - setWidth:(NXCoord)newWidth ofCol:(int)col;
- - setHeight:(NXCoord)newHeight ofRow:(int)row;
-
- - sizeToCells;
-
- - renewRows:(int)newRows cols:(int)newCols;
-
- - addCol;
- - addRow;
- - insertColAt:(int)col;
- - insertRowAt:(int)row;
- - removeColAt:(int)col andFree:(BOOL)flag;
- - removeRowAt:(int)row andFree:(BOOL)flag;
-
- - drawSelf:(const NXRect *)rects :(int)rectCount;
-
- - getCellFrame:(NXRect *)theRect at:(int)row :(int)col;
- - getRow:(int *)row andCol:(int *)col forPoint:(const NXPoint *)aPoint;
-
- - setIntercell:(const NXSize *)aSize;
-
- - write:(NXTypedStream *)typedStream;
- - read:(NXTypedStream *)typedStream;
-
- @end
-
- @interface Storage(MiscLastElementCategory)
-
- - (void *)lastElement;
-
- @end
-
-