foundation_fluttify/ios/Classes/CGRectHandler.m

79 lines
3.3 KiB
Objective-C

//
// CGRectHandler.m
// foundation_fluttify
//
// Created by Yohom Bao on 2020/4/20.
//
#import "CGRectHandler.h"
extern BOOL enableLog;
void CGRectHandler(NSString* method, id rawArgs, FlutterResult methodResult) {
if ([@"CGRect::create" isEqualToString:method]) {
NSDictionary<NSString*, id>* args = (NSDictionary<NSString*, id>*) rawArgs;
CGFloat x = [(NSNumber*) args[@"x"] floatValue];
CGFloat y = [(NSNumber*) args[@"y"] floatValue];
CGFloat width = [(NSNumber*) args[@"width"] floatValue];
CGFloat height = [(NSNumber*) args[@"height"] floatValue];
CGRect rect = CGRectMake(x, y, width, height);
NSValue* result = [NSValue valueWithCGRect:rect];
methodResult(result);
} else if ([@"CGRect::getX" isEqualToString:method]) {
NSDictionary<NSString*, id>* args = (NSDictionary<NSString*, id>*) rawArgs;
NSValue *value = (NSValue *) args[@"__this__"];
if (value != nil && (NSNull*) value != [NSNull null]) {
CGRect cgRect = value.CGRectValue;
methodResult(@(cgRect.origin.x));
} else {
methodResult([FlutterError errorWithCode:@"目标对象为nul"
message:@"目标对象为nul"
details:@"目标对象为nul"]);
}
} else if ([@"CGRect::getY" isEqualToString:method]) {
NSDictionary<NSString*, id>* args = (NSDictionary<NSString*, id>*) rawArgs;
NSValue *value = (NSValue *) args[@"__this__"];
if (value != nil && (NSNull*) value != [NSNull null]) {
CGRect cgRect = value.CGRectValue;
methodResult(@(cgRect.origin.y));
} else {
methodResult([FlutterError errorWithCode:@"目标对象为nul"
message:@"目标对象为nul"
details:@"目标对象为nul"]);
}
} else if ([@"CGRect::getWidth" isEqualToString:method]) {
NSDictionary<NSString*, id>* args = (NSDictionary<NSString*, id>*) rawArgs;
NSValue *value = (NSValue *) args[@"__this__"];
if (value != nil && (NSNull*) value != [NSNull null]) {
CGRect cgRect = value.CGRectValue;
methodResult(@(cgRect.size.width));
} else {
methodResult([FlutterError errorWithCode:@"目标对象为nul"
message:@"目标对象为nul"
details:@"目标对象为nul"]);
}
} else if ([@"CGRect::getHeight" isEqualToString:method]) {
NSDictionary<NSString*, id>* args = (NSDictionary<NSString*, id>*) rawArgs;
NSValue *value = (NSValue *) args[@"__this__"];
if (value != nil && (NSNull*) value != [NSNull null]) {
CGRect cgRect = value.CGRectValue;
methodResult(@(cgRect.size.height));
} else {
methodResult([FlutterError errorWithCode:@"目标对象为nul"
message:@"目标对象为nul"
details:@"目标对象为nul"]);
}
} else {
methodResult(FlutterMethodNotImplemented);
}
}