Better constructor for Config.
[enjoyable.git] / TargetMouseScroll.m
index a1cca9c..4d6f409 100644 (file)
 
 @implementation TargetMouseScroll
 
-@synthesize howMuch;
+@synthesize amount;
 
--(NSString*) stringify {
-       return [[NSString alloc] initWithFormat: @"mscroll~%d", howMuch];
++ (NSString *)serializationCode {
+    return @"mscroll";
 }
 
-+(TargetMouseScroll*) unstringifyImpl: (NSArray*) comps {
-       NSParameterAssert([comps count] == 2);
-       TargetMouseScroll* target = [[TargetMouseScroll alloc] init];
-       [target setHowMuch: [[comps objectAtIndex:1] integerValue]];
-       return target;
+- (NSDictionary *)serialize {
+    return @{ @"type": @"mscroll", @"amount": @(self.amount) };
 }
 
--(void) trigger: (JoystickController *)jc {
++ (Target *)targetDeserialize:(NSDictionary *)serialization
+                  withConfigs:(NSArray *)configs {
+       TargetMouseScroll *target = [[TargetMouseScroll alloc] init];
+    target.amount = [serialization[@"amount"] intValue];
+       return target;
+}
+-(void) trigger {
     CGEventRef scroll = CGEventCreateScrollWheelEvent(NULL,
                                                       kCGScrollEventUnitLine,
                                                       1,
-                                                      [self howMuch]);
+                                                      self.amount);
     CGEventPost(kCGHIDEventTap, scroll);
     CFRelease(scroll);
 }