Revision: 12578
          http://sourceforge.net/p/skim-app/code/12578
Author:   hofman
Date:     2021-11-27 19:37:51 +0000 (Sat, 27 Nov 2021)
Log Message:
-----------
Implement descriptor conversion for TeX line to be sure, scripting is 
unpredictable

Modified Paths:
--------------
    trunk/NSNumber_SKExtensions.m

Modified: trunk/NSNumber_SKExtensions.m
===================================================================
--- trunk/NSNumber_SKExtensions.m       2021-11-27 14:54:01 UTC (rev 12577)
+++ trunk/NSNumber_SKExtensions.m       2021-11-27 19:37:51 UTC (rev 12578)
@@ -112,6 +112,23 @@
     return string;
 }
 
++ (NSNumber *)scriptingTexLineWithDescriptor:(NSAppleEventDescriptor 
*)descriptor {
+    if ([descriptor descriptorType] != typeObjectSpecifier || [[descriptor 
descriptorForKeyword:keyAEDesiredClass] typeCodeValue]!= 'Line')
+        return nil;
+    NSInteger i = [[descriptor descriptorForKeyword:keyAEKeyData] int32Value];
+    return [NSNumber numberWithInteger:MAX(0, i - 1)];
+}
+
+- (NSAppleEventDescriptor *)scriptingTexLineDescriptor {
+    NSScriptClassDescription *containerClassDescription = 
[NSScriptClassDescription classDescriptionForClass:[NSApp class]];
+    return [[[[NSIndexSpecifier alloc] 
initWithContainerClassDescription:containerClassDescription 
containerSpecifier:nil key:@"texLines" index:[self integerValue]] autorelease] 
descriptor];
+    AEDesc desc;
+    if (noErr == CreateObjSpecifier('Line', (AEDesc *)[[NSAppleEventDescriptor 
nullDescriptor] aeDesc], formAbsolutePosition, (AEDesc 
*)[[NSAppleEventDescriptor descriptorWithInt32:[self intValue] + 1] aeDesc], 
YES, &desc)) {
+        return [[[NSAppleEventDescriptor alloc] initWithAEDescNoCopy:&desc] 
autorelease];
+    }
+    return nil;
+}
+
 @end
 
 @implementation NSObject (SKExtensions)

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to