quakeforge/ruamoko/cl_menu/MenuGroup.r
Bill Currie 6d494bfcdf Fix a slew of warnings found by -Wall.
-Wall still isn't used yet due to a missing method in Array, and
overzealous warnings in qfcc, but this covers the necessary fixes.
2010-12-16 20:01:49 +09:00

66 lines
1,022 B
R

#include "key.h"
#include "sound.h"
#include "Array.h"
#include "options_util.h"
#include "MenuGroup.h"
@implementation MenuGroup
-(id) init
{
if ((self = [super init]))
current = base = 0;
}
-(void)setBase:(integer)b
{
if (b >= [views count])
b = [views count] - 1;
if (b < 0)
b = 0;
current = base = b;
}
- (integer) keyEvent:(integer)key unicode:(integer)unicode down:(integer)down
{
switch (key) {
case QFK_DOWN:
case QFM_WHEEL_DOWN:
[self next];
return 1;
case QFK_UP:
case QFM_WHEEL_UP:
[self prev];
return 1;
default:
return [[views objectAtIndex: current]
keyEvent: key
unicode: unicode
down: down];
}
}
-(void) next
{
if (++current >= [views count])
current = base;
S_LocalSound ("misc/menu1.wav");
}
-(void) prev
{
if (--current < base)
current = [views count] - 1;
S_LocalSound ("misc/menu1.wav");
}
- (void) draw
{
local View cur;
[super draw];
cur = (View) [views objectAtIndex:current];
opt_cursor (cur.xabs - 8, cur.yabs);
}
@end