Revision: 14452
http://sourceforge.net/p/skim-app/code/14452
Author: hofman
Date: 2024-09-05 21:43:37 +0000 (Thu, 05 Sep 2024)
Log Message:
-----------
always represent real point and real rectangle scripting types with floating
point values
Modified Paths:
--------------
trunk/NSData_SKExtensions.m
Modified: trunk/NSData_SKExtensions.m
===================================================================
--- trunk/NSData_SKExtensions.m 2024-09-01 22:49:21 UTC (rev 14451)
+++ trunk/NSData_SKExtensions.m 2024-09-05 21:43:37 UTC (rev 14452)
@@ -186,14 +186,10 @@
}
+ (NSData *)dataWithPointAsNSPoint:(NSPoint)point {
- if (floor(point.x) >= point.x && floor(point.y) >= point.y)
- return [self dataWithPointAsQDPoint:point];
return [self dataWithBytes:&point length:sizeof(NSPoint)];
}
+ (NSData *)dataWithRectAsNSRect:(NSRect)rect {
- if (floor(NSMinX(rect)) >= NSMinX(rect) && floor(NSMinY(rect)) >=
NSMinY(rect) && floor(NSMaxX(rect)) >= NSMaxX(rect) && floor(NSMaxY(rect)) >=
NSMaxY(rect))
- return [self dataWithRectAsQDRect:rect];
return [self dataWithBytes:&rect length:sizeof(NSRect)];
}
@@ -220,6 +216,9 @@
if ([self length] == sizeof(NSPoint)) {
const NSPoint *nsPoint = (const NSPoint *)[self bytes];
point = *nsPoint;
+ } else if ([self length] == sizeof(Point)) {
+ const Point *qdPoint = (const Point *)[self bytes];
+ point = SKNSPointFromQDPoint(*qdPoint);
}
return point;
}
@@ -229,6 +228,9 @@
if ([self length] == sizeof(NSRect)) {
const NSRect *nsRect = (const NSRect *)[self bytes];
rect = *nsRect;
+ } else if ([self length] == sizeof(Rect)) {
+ const Rect *qdRect = (const Rect *)[self bytes];
+ rect = SKNSRectFromQDRect(*qdRect);
}
return rect;
}
@@ -266,27 +268,19 @@
}
} else {
NSData *data = [descriptor data];
- if ([data length] == sizeof(NSPoint) || [data length] == sizeof(Point))
+ if ([data length] == sizeof(NSPoint))
return data;
+ if ([data length] == sizeof(Point))
+ point = [data pointValueAsQDPoint];
}
return [NSData dataWithPointAsNSPoint:point];
}
- (NSAppleEventDescriptor *)scriptingRealPointDescriptor {
- NSAppleEventDescriptor *descriptor;
- if ([self length] == sizeof(Point)) {
- descriptor = [NSAppleEventDescriptor
descriptorWithDescriptorType:typeQDPoint data:self];
- } else {
- NSPoint point = [self pointValueAsNSPoint];
- if (floor(point.x) >= point.x && floor(point.y) >= point.y) {
- Point qdPoint = SKQDPointFromNSPoint(point);
- descriptor = [NSAppleEventDescriptor
descriptorWithDescriptorType:typeQDPoint bytes:&qdPoint length:sizeof(Point)];
- } else {
- descriptor = [NSAppleEventDescriptor listDescriptor];
- [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:point.x] atIndex:1];
- [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:point.y] atIndex:2];
- }
- }
+ NSPoint point = [self pointValueAsNSPoint];
+ NSAppleEventDescriptor *descriptor = [NSAppleEventDescriptor
listDescriptor];
+ [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:point.x] atIndex:1];
+ [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:point.y] atIndex:2];
return descriptor;
}
@@ -301,29 +295,21 @@
}
} else {
NSData *data = [descriptor data];
- if ([data length] == sizeof(NSRect) || [data length] == sizeof(Rect))
+ if ([data length] == sizeof(NSRect))
return data;
+ if ([data length] == sizeof(Rect))
+ rect = [data rectValueAsQDRect];
}
return [NSData dataWithRectAsNSRect:rect];
}
- (NSAppleEventDescriptor *)scriptingRealRectangleDescriptor {
- NSAppleEventDescriptor *descriptor;
- if ([self length] == sizeof(Rect)) {
- descriptor = [NSAppleEventDescriptor
descriptorWithDescriptorType:typeQDRectangle data:self];
- } else {
- NSRect rect = [self rectValueAsNSRect];
- if (floor(NSMinX(rect)) >= NSMinX(rect) && floor(NSMinY(rect)) >=
NSMinY(rect) && floor(NSMaxX(rect)) >= NSMaxX(rect) && floor(NSMaxY(rect)) >=
NSMaxY(rect)) {
- Rect qdRect = SKQDRectFromNSRect(rect);
- descriptor = [NSAppleEventDescriptor
descriptorWithDescriptorType:typeQDRectangle bytes:&qdRect length:sizeof(Rect)];
- } else {
- descriptor = [NSAppleEventDescriptor listDescriptor];
- [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:NSMinX(rect)] atIndex:1];
- [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:NSMaxY(rect)] atIndex:2];
- [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:NSMaxX(rect)] atIndex:3];
- [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:NSMinY(rect)] atIndex:4];
- }
- }
+ NSRect rect = [self rectValueAsNSRect];
+ NSAppleEventDescriptor *descriptor = [NSAppleEventDescriptor
listDescriptor];
+ [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:NSMinX(rect)] atIndex:1];
+ [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:NSMaxY(rect)] atIndex:2];
+ [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:NSMaxX(rect)] atIndex:3];
+ [descriptor insertDescriptor:[NSAppleEventDescriptor
descriptorWithDouble:NSMinY(rect)] atIndex:4];
return descriptor;
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit