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 @@ ...@@ -55,6 +55,15 @@
-(UISwitch *)getCheckbox; -(UISwitch *)getCheckbox;
@end @end
@interface ParameterNumberStepper : Parameter
{
@protected
UIStepper *stepper;
}
-(id)initWithNumber:(onelab::number)number;
-(UIStepper *)getStepper;
@end
@interface ParameterNumberRange : Parameter @interface ParameterNumberRange : Parameter
{ {
@protected @protected
......
...@@ -230,6 +230,56 @@ ...@@ -230,6 +230,56 @@
} }
@end @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 @implementation ParameterNumberRange
-(id) initWithNumber:(onelab::number) number -(id) initWithNumber:(onelab::number) number
{ {
......
...@@ -82,6 +82,10 @@ ...@@ -82,6 +82,10 @@
ParameterNumberTextbox *param = [[ParameterNumberTextbox alloc] initWithNumber:p]; ParameterNumberTextbox *param = [[ParameterNumberTextbox alloc] initWithNumber:p];
[section addObject:param]; [section addObject:param];
} }
else if(p.getStep() == 1) { // stepper
ParameterNumberStepper *param = [[ParameterNumberStepper alloc] initWithNumber:p];
[section addObject:param];
}
else else
{ {
ParameterNumberRange *param = [[ParameterNumberRange alloc] initWithNumber:p]; ParameterNumberRange *param = [[ParameterNumberRange alloc] initWithNumber:p];
...@@ -289,6 +293,11 @@ ...@@ -289,6 +293,11 @@
[param setLabelFrame:CGRectMake(100, 5, cell.frame.size.width - 110, cell.frame.size.height)]; [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)]; [param setFrame:CGRectMake(20, 5, cell.frame.size.width - 40, cell.frame.size.height)];
[cell addSubview:[param getCheckbox]]; [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]]) { else if([tmp isKindOfClass:[ParameterNumberRange class]]) {
ParameterNumberRange *param = (ParameterNumberRange *)tmp; ParameterNumberRange *param = (ParameterNumberRange *)tmp;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment