mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-24 12:42:32 +00:00
[cl_menu] Add CvarIntRange for integer sliders
Fixes viewsize not working (sort of: the slider now works, but the cvar itself does not, but that's an engine issue).
This commit is contained in:
parent
fc6c426241
commit
3dd7678962
3 changed files with 52 additions and 2 deletions
|
@ -14,4 +14,15 @@
|
|||
-(int)percentage;
|
||||
@end
|
||||
|
||||
@interface CvarIntRange : CvarObject
|
||||
{
|
||||
int min, max, step;
|
||||
}
|
||||
-(id)initWithCvar:(string)cvname min:(int)_min max:(int)_max step:(int)_step;
|
||||
-(void)inc;
|
||||
-(void)dec;
|
||||
-(float)value;
|
||||
-(int)percentage;
|
||||
@end
|
||||
|
||||
#endif//__CvarRange_h
|
||||
|
|
|
@ -41,3 +41,42 @@
|
|||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation CvarIntRange
|
||||
|
||||
-(id)initWithCvar:(string)cvname min:(int)_min max:(int)_max step:(int)_step
|
||||
{
|
||||
self = [super initWithCvar: cvname];
|
||||
|
||||
min = _min;
|
||||
max = _max;
|
||||
step = _step;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
-(void)inc
|
||||
{
|
||||
local int val = Cvar_GetInteger (name);
|
||||
val = min_max_cnt (min, max, step, val, 1);
|
||||
Cvar_SetInteger (name, val);
|
||||
}
|
||||
|
||||
-(void)dec
|
||||
{
|
||||
local int val = Cvar_GetInteger (name);
|
||||
val = min_max_cnt (min, max, step, val, 0);
|
||||
Cvar_SetInteger (name, val);
|
||||
}
|
||||
|
||||
-(float)value
|
||||
{
|
||||
return Cvar_GetInteger (name);
|
||||
}
|
||||
|
||||
-(int)percentage
|
||||
{
|
||||
return to_percentage(min, max, Cvar_GetInteger (name));
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -282,10 +282,10 @@
|
|||
);
|
||||
rect = "[70, 110, 224, 8]";
|
||||
range = {
|
||||
Class = CvarRange;
|
||||
Class = CvarIntRange;
|
||||
Messages = (
|
||||
(initWithCvar:min:max:step:,
|
||||
"\"viewsize\"", 30.0, 120.0, 10.0)
|
||||
"\"viewsize\"", 30, 120, 10)
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue