home *** CD-ROM | disk | FTP | other *** search
-
- #import "qedefs.h"
-
- id keypairview_i;
-
- @implementation KeypairView
-
- /*
- ==================
- initFrame:
- ==================
- */
- - initFrame:(const NXRect *)frameRect
- {
- [super initFrame:frameRect];
- keypairview_i = self;
- return self;
- }
-
-
- - calcViewSize
- {
- NXCoord w;
- NXCoord h;
- NXRect b;
- NXPoint pt;
- int count;
- id ent;
-
- ent = [map_i currentEntity];
- count = [ent numPairs];
-
- [superview setFlipped: YES];
-
- [superview getBounds:&b];
- w = b.size.width;
- h = LINEHEIGHT*count + SPACING;
- [self sizeTo:w :h];
- pt.x = pt.y = 0;
- [self scrollPoint: &pt];
- return self;
- }
-
- - drawSelf:(const NXRect *)rects :(int)rectCount
- {
- epair_t *pair;
- int y;
-
- PSsetgray(NXGrayComponent(NX_COLORLTGRAY));
- PSrectfill(0,0,bounds.size.width,bounds.size.height);
-
- PSselectfont("Helvetica-Bold",FONTSIZE);
- PSrotate(0);
- PSsetgray(0);
-
- pair = [[map_i currentEntity] epairs];
- y = bounds.size.height - LINEHEIGHT;
- for ( ; pair ; pair=pair->next)
- {
- PSmoveto(SPACING, y);
- PSshow(pair->key);
- PSmoveto(100, y);
- PSshow(pair->value);
- y -= LINEHEIGHT;
- }
- PSstroke();
-
- return self;
- }
-
- - mouseDown:(NXEvent *)theEvent
- {
- NXPoint loc;
- int i;
- epair_t *p;
-
- loc = theEvent->location;
- [self convertPoint:&loc fromView:NULL];
-
- i = (bounds.size.height - loc.y - 4) / LINEHEIGHT;
-
- p = [[map_i currentEntity] epairs];
- while ( i )
- {
- p=p->next;
- if (!p)
- return self;
- i--;
- }
- if (p)
- [things_i setSelectedKey: p];
-
- return self;
- }
-
- @end
-