Skip to content
Snippets Groups Projects
Commit aba60dee authored by Maxime Graulich's avatar Maxime Graulich
Browse files

iOS: use stepper if step equals 1

parent 3b56c909
No related branches found
No related tags found
No related merge requests found
......@@ -55,6 +55,15 @@
-(UISwitch *)getCheckbox;
@end
@interface ParameterNumberStepper : Parameter
{
@protected
UIStepper *stepper;
}
-(id)initWithNumber:(onelab::number)number;
-(UIStepper *)getStepper;
@end
@interface ParameterNumberRange : Parameter
{
@protected
......
......@@ -230,6 +230,56 @@
}
@end
@implementation ParameterNumberStepper
-(id) initWithNumber:(onelab::number) number
{
self = [super init];
if(self)
{
name = [NSString stringWithCString:number.getName().c_str() encoding:[NSString defaultCStringEncoding]];
label.alpha = (number.getReadOnly())? 0.439216f : 1.0f;
stepper = [[UIStepper alloc] init];
[stepper setValue:number.getValue()];
[stepper setStepValue:1];
[stepper setMaximumValue:number.getMax()];
[stepper setMinimumValue:number.getMin()];
[stepper addTarget:self action:@selector(stepperValueChanged:) forControlEvents:UIControlEventValueChanged];
[label setText:[NSString stringWithFormat:@"%s %d" ,number.getShortName().c_str(), (int)number.getValue()]];
}
return self;
}
-(void)stepperValueChanged:(UIStepper *)sender
{
std::vector<onelab::number> number;
onelab::server::instance()->get(number,[name UTF8String]);
if(number.size() < 1) return;
number[0].setValue(sender.value);
onelab::server::instance()->set(number[0]);
[label setText:[NSString stringWithFormat:@"%s %d" ,number[0].getShortName().c_str(), (int)number[0].getValue()]];
if(onelab_cb("check") == 1)
[[NSNotificationCenter defaultCenter] postNotificationName:@"requestRender" object:nil];
}
-(void)refresh
{
std::vector<onelab::number> number;
onelab::server::instance()->get(number,[name UTF8String]);
if(number.size() < 1) return;
[stepper setValue:number[0].getValue()];
}
-(void)setFrame:(CGRect)frame
{
[stepper setFrame:frame];
}
-(UIStepper *)getStepper
{
return stepper;
}
+(double)getHeight
{
return 60.0f;
}
@end
@implementation ParameterNumberRange
-(id) initWithNumber:(onelab::number) number
{
......
......@@ -82,6 +82,10 @@
ParameterNumberTextbox *param = [[ParameterNumberTextbox alloc] initWithNumber:p];
[section addObject:param];
}
else if(p.getStep() == 1) { // stepper
ParameterNumberStepper *param = [[ParameterNumberStepper alloc] initWithNumber:p];
[section addObject:param];
}
else
{
ParameterNumberRange *param = [[ParameterNumberRange alloc] initWithNumber:p];
......@@ -289,6 +293,11 @@
[param setLabelFrame:CGRectMake(100, 5, cell.frame.size.width - 110, cell.frame.size.height)];
[param setFrame:CGRectMake(20, 5, cell.frame.size.width - 40, cell.frame.size.height)];
[cell addSubview:[param getCheckbox]];
}
else if([tmp isKindOfClass:[ParameterNumberStepper class]]) {
ParameterNumberStepper *param = (ParameterNumberStepper *)tmp;
[param setFrame:CGRectMake(20, cell.frame.size.height/2+5, cell.frame.size.width - 40, cell.frame.size.height/2)];
[cell addSubview:[param getStepper]];
}
else if([tmp isKindOfClass:[ParameterNumberRange class]]) {
ParameterNumberRange *param = (ParameterNumberRange *)tmp;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment