quakeforge/ruamoko/cl_menu/MenuGroup.r
Bill Currie 92f68844f5 [ruamoko] Remove keys.h and keys.r
The functions haven't existed for two years now. And in the interest of
"throw one away", the controls_o.r has been gutted.
2023-12-21 08:40:09 +09:00

67 lines
1 KiB
R

#include <QF/keys.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;
return self;
}
-(void)setBase:(unsigned)b
{
if (b >= [views count])
b = [views count] - 1;
if (b < 0)
b = 0;
current = base = b;
}
- (int) keyEvent:(int)key unicode:(int)unicode down:(int)down
{
View *cur = [views objectAtIndex: current];
int ret = [cur keyEvent: key unicode: unicode down: down];
if (!ret) {
switch (key) {
case QFK_DOWN:
//case QFM_WHEEL_DOWN:
[self next];
return 1;
case QFK_UP:
//case QFM_WHEEL_UP:
[self prev];
return 1;
}
}
return ret;
}
-(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 = [views objectAtIndex:current];
opt_cursor (cur.xabs - 8, cur.yabs);
}
@end