quakeforge/ruamoko/gui/Slider.r
Bill Currie e472364f51 call [self init] rather than [super init] (and variants where possible) to
ease derived class initialization (all allocation can be done in -init).
Objective-C rocks :)
2004-02-13 02:51:38 +00:00

46 lines
882 B
R

#include "draw.h"
#include "gui/Slider.h"
#include "gui/Rect.h"
@implementation Slider
- (id) initWithBounds: (Rect)aRect size: (integer) aSize
{
self = [self initWithBounds:aRect];
dir = ylen > xlen;
size = aSize;
index = 0;
return self;
}
- (void) setIndex: (integer) ind
{
index = ind;
if (index < 0)
index = 0;
if (index > size)
index = size;
}
- (void) draw
{
local integer pos, x, y;
pos = (index * ((dir ? ylen : xlen) - 24) / size) + 8;
if (dir) {
Draw_Character (xabs, yabs, 1);
for (y = 8; y < ylen - 8; y += 8)
Draw_Character (xabs, yabs + y, 2);
Draw_Character (xabs, yabs + y, 3);
Draw_Character (xabs, yabs + pos, 131);
} else {
Draw_Character (xabs, yabs, 128);
for (x = 8; x < xlen - 8; x += 8)
Draw_Character (xabs + x, yabs, 129);
Draw_Character (xabs + x, yabs, 130);
Draw_Character (xabs + pos, yabs, 131);
}
}
@end