home *** CD-ROM | disk | FTP | other *** search
-
- static char RCSId[]="$Id: TicCell.m,v 1.1.1.1 1993/03/18 03:36:23 davis Exp $";
-
-
- #import <appkit/Font.h>
- #import <appkit/Text.h> /* NXTextFontInfo() */
- #import <dpsclient/wraps.h>
- #import <strings.h>
-
- #import "TicCell.h"
- #import "TicObject.h"
-
- #define VALUE_COLUMN_END 95.0
- #define STRING_COLUMN_START 100.0
- #define DIGITS_ACCURACY 5
-
-
- @implementation TicCell
-
- - drawInside:(const NXRect *)cellFrame inView:controlView
- {
- float stringWidth;
- NXRect rectArray[2];
- char valueString[100];
-
- sprintf (valueString, "%.*f", DIGITS_ACCURACY, [subObject doubleValue]);
-
- /*
- * Find width of the string, which depends on the font, which
- * depends on whether we're printing or drawing.
- */
-
- if (NXDrawingStatus == NX_DRAWING)
- stringWidth = [[[support screenFont] set] getWidthOf:valueString];
- else
- stringWidth = [[support set] getWidthOf:valueString];
-
-
- PSsetgray(cFlags1.highlighted ? NX_WHITE : NX_LTGRAY); /* Erase cell */
- NXRectFill(cellFrame);
-
-
- PSsetgray(cFlags1.disabled? NX_DKGRAY : NX_BLACK);
-
- /*
- * TicCells draw both the double value and the string value in
- * the cell. Here's the string value ("contents"):
- */
-
- PSmoveto(NX_X(cellFrame) + STRING_COLUMN_START,
- NX_Y(cellFrame) + lineHeight - descender);
- PSshow(contents);
-
- /* ... and the double value: */
-
- PSmoveto(NX_X(cellFrame) + VALUE_COLUMN_END - stringWidth,
- NX_Y(cellFrame) + lineHeight - descender);
- PSshow(valueString);
-
-
- /* Draw the two dark gray lines above and below the cell. */
-
- PSsetgray(NX_DKGRAY);
- if (cFlags1.highlighted) {
- /*
- * Draw 1-pixel tall rectangles instead of lines (this is
- * faster than PSmoveto(); PSlineto()).
- */
- NXSetRect(&(rectArray[0]), NX_X(cellFrame), NX_Y(cellFrame),
- NX_WIDTH(cellFrame), 1.0);
- NXSetRect(&(rectArray[1]), NX_X(cellFrame), NX_MAXY(cellFrame) - 1.0,
- NX_WIDTH(cellFrame), 1.0);
-
- /*
- * Using NXRectFillList is faster than separate calls to
- * NXRectFill.
- */
- NXRectFillList(rectArray, 2);
- }
-
- return self;
- }
-
-
- // Shuts up the compiler about unused RCSId
- - (const char *) rcsid
- {
- return RCSId;
- }
-
-
- @end
-