Revision: 12627 http://sourceforge.net/p/skim-app/code/12627 Author: hofman Date: 2021-12-16 23:02:54 +0000 (Thu, 16 Dec 2021) Log Message: ----------- Replace get...for script commands by a single obtain command that also works on 12.1. Rename preferences command to have the for as an argument keyword.
Modified Paths: -------------- trunk/SKPreferencesCommand.m trunk/Skim.sdef trunk/Skim.xcodeproj/project.pbxproj Added Paths: ----------- trunk/SKObtainCommand.h trunk/SKObtainCommand.m Removed Paths: ------------- trunk/SKBoundsCommand.h trunk/SKBoundsCommand.m trunk/SKIndexCommand.h trunk/SKIndexCommand.m trunk/SKPagesCommand.h trunk/SKPagesCommand.m trunk/SKTextCommand.h trunk/SKTextCommand.m Deleted: trunk/SKBoundsCommand.h =================================================================== --- trunk/SKBoundsCommand.h 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/SKBoundsCommand.h 2021-12-16 23:02:54 UTC (rev 12627) @@ -1,43 +0,0 @@ -// -// SKBoundsCommand.h -// Skim -// -// Created by Christiaan Hofman on 6/4/08. -/* - This software is Copyright (c) 2008-2021 - Christiaan Hofman. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Christiaan Hofman nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <Cocoa/Cocoa.h> - - -@interface SKBoundsCommand : NSScriptCommand -@end Deleted: trunk/SKBoundsCommand.m =================================================================== --- trunk/SKBoundsCommand.m 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/SKBoundsCommand.m 2021-12-16 23:02:54 UTC (rev 12627) @@ -1,87 +0,0 @@ -// -// SKBoundsCommand.m -// Skim -// -// Created by Christiaan Hofman on 6/4/08. -/* - This software is Copyright (c) 2008-2021 - Christiaan Hofman. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Christiaan Hofman nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "SKBoundsCommand.h" -#import <Quartz/Quartz.h> -#import "NSDocument_SKExtensions.h" -#import "SKMainDocument.h" -#import "PDFSelection_SKExtensions.h" -#import "NSGeometry_SKExtensions.h" - - -@implementation SKBoundsCommand - -- (id)performDefaultImplementation { - id dP = [self directParameter]; - id dPO = nil; - if ([dP isKindOfClass:[NSArray class]] == NO) - dPO = [dP objectsByEvaluatingSpecifier]; - - NSDictionary *args = [self evaluatedArguments]; - PDFPage *page = [args objectForKey:@"Page"]; - NSNumber *boxNumber = [args objectForKey:@"Box"]; - PDFDisplayBox box = boxNumber ? [boxNumber integerValue] : kPDFDisplayBoxCropBox; - NSRect bounds = NSZeroRect; - - if ([dPO isKindOfClass:[NSDocument class]]) { - if ([page isKindOfClass:[PDFPage class]] == NO) { - NSArray *pages = [dPO valueForKey:@"pages"]; - page = [pages count] ? [pages objectAtIndex:0] : nil; - } - if (page) - bounds = [page boundsForBox:box]; - } else if ([dPO isKindOfClass:[PDFPage class]]) { - if (page == nil || [page isEqual:dPO]) - bounds = [dPO boundsForBox:box]; - } else if ([dPO isKindOfClass:[PDFAnnotation class]]) { - if (page == nil || [page isEqual:[dPO page]]) - bounds = [dPO bounds]; - } else { - PDFSelection *selection = [PDFSelection selectionWithSpecifier:dP]; - if ([page isKindOfClass:[PDFPage class]] == NO) { - page = [selection safeFirstPage]; - } - if (page) - bounds = [selection hasCharacters] ? [selection boundsForPage:page] : NSZeroRect; - } - - Rect qdBounds = SKQDRectFromNSRect(bounds); - return [NSData dataWithBytes:&qdBounds length:sizeof(Rect)]; -} - -@end Deleted: trunk/SKIndexCommand.h =================================================================== --- trunk/SKIndexCommand.h 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/SKIndexCommand.h 2021-12-16 23:02:54 UTC (rev 12627) @@ -1,43 +0,0 @@ -// -// SKIndexCommand.h -// Skim -// -// Created by Christiaan Hofman on 6/4/08. -/* - This software is Copyright (c) 2008-2021 - Christiaan Hofman. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Christiaan Hofman nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <Cocoa/Cocoa.h> - - -@interface SKIndexCommand : NSScriptCommand -@end Deleted: trunk/SKIndexCommand.m =================================================================== --- trunk/SKIndexCommand.m 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/SKIndexCommand.m 2021-12-16 23:02:54 UTC (rev 12627) @@ -1,74 +0,0 @@ -// -// SKIndexCommand.m -// Skim -// -// Created by Christiaan Hofman on 6/4/08. -/* - This software is Copyright (c) 2008-2021 - Christiaan Hofman. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Christiaan Hofman nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "SKIndexCommand.h" -#import <Quartz/Quartz.h> -#import "PDFPage_SKExtensions.h" -#import "PDFSelection_SKExtensions.h" - - -@implementation SKIndexCommand - -- (id)performDefaultImplementation { - id dP = [self directParameter]; - id dPO = nil; - if ([dP isKindOfClass:[NSArray class]] == NO) - dPO = [dP objectsByEvaluatingSpecifier]; - - NSDictionary *args = [self evaluatedArguments]; - PDFPage *page = [args objectForKey:@"Page"]; - BOOL last = [[args objectForKey:@"Last"] boolValue]; - NSUInteger idx = NSNotFound; - - if ([dPO isKindOfClass:[NSDocument class]]) { - idx = [[NSApp orderedDocuments] indexOfObjectIdenticalTo:dPO]; - } else if ([dPO isKindOfClass:[PDFPage class]]) { - idx = [dPO pageIndex]; - } else if ([dPO isKindOfClass:[PDFAnnotation class]]) { - idx = [[((id)page ?: (id)[page containingDocument]) valueForKey:@"notes"] indexOfObjectIdenticalTo:dPO]; - } else { - PDFSelection *selection = [PDFSelection selectionWithSpecifier:dP onPage:page]; - page = last ? [selection safeLastPage] : [selection safeFirstPage]; - if (page) - idx = last ? [selection safeIndexOfLastCharacterOnPage:page] : [selection safeIndexOfFirstCharacterOnPage:page]; - } - - return [NSNumber numberWithInteger:idx == NSNotFound ? 0 : (NSInteger)idx + 1]; -} - -@end Added: trunk/SKObtainCommand.h =================================================================== --- trunk/SKObtainCommand.h (rev 0) +++ trunk/SKObtainCommand.h 2021-12-16 23:02:54 UTC (rev 12627) @@ -0,0 +1,43 @@ +// +// SKObtainCommand.h +// Skim +// +// Created by Christiaan Hofman on 16/12/2021. +/* + This software is Copyright (c) 2021 + Christiaan Hofman. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of Christiaan Hofman nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#import <Cocoa/Cocoa.h> + + +@interface SKObtainCommand : NSScriptCommand +@end Added: trunk/SKObtainCommand.m =================================================================== --- trunk/SKObtainCommand.m (rev 0) +++ trunk/SKObtainCommand.m 2021-12-16 23:02:54 UTC (rev 12627) @@ -0,0 +1,118 @@ +// +// SKObtainCommand.m +// Skim +// +// Created by Christiaan Hofman on 16/12/2021. +/* + This software is Copyright (c) 2021 + Christiaan Hofman. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of Christiaan Hofman nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#import "SKObtainCommand.h" +#import <Quartz/Quartz.h> +#import "PDFSelection_SKExtensions.h" +#import "NSAttributedString_SKExtensions.h" +#import "NSGeometry_SKExtensions.h" + +#define typeRichText 'ricT' +#define typeRTF 'RTF ' +#define typePage 'Page' + +@implementation SKObtainCommand + +- (id)performDefaultImplementation { + NSDictionary *args = [self evaluatedArguments]; + NSData *data = [args objectForKey:@"Object"]; + PDFSelection *selection = nil; + NSAppleEventDescriptor *desc = nil; + PDFPage *page = [args objectForKey:@"Page"]; + id typeNumber = [self directParameter]; + FourCharCode type = [typeNumber respondsToSelector:@selector(unsignedIntValue)] ? [typeNumber unsignedIntValue] : typeRichText; + + if (type == cText || type == typeText || type == typeUnicodeText || type == typeUTF8Text || type == typeCString || type == typeChar) { + type = cText; + } else if (type == typeRichText || type == 'cha ' || type == 'cpar' || type == 'cwor' || type == 'catr' || type == typeStyledText) { + type = typeRichText; + } else if (type == typeSInt32 || type == typeUInt32 || type == typeSInt16 || type == typeUInt16 || type == typeSInt64 || type == typeUInt64) { + type = typeSInt32; + } else if (type == typeQDRectangle || type == typeRectangle) { + type = typeQDRectangle; + } else if (type != typePage && type != typeRTF) { + [self setScriptErrorNumber:NSOperationNotSupportedForKeyScriptError]; + return nil; + } + + if ([data isKindOfClass:[NSData class]] == NO) { + data = nil; + selection = [PDFSelection selectionWithSpecifier:[[self arguments] objectForKey:@"Object"] onPage:page]; + } else if (type == typeSInt32 || type == typeQDRectangle || type == typePage) { + [self setScriptErrorNumber:NSOperationNotSupportedForKeyScriptError]; + return nil; + } + + if (type == cText || type == typeRichText || type == typeRTF) { + NSAttributedString *attrString = [selection attributedString]; + if (data) + attrString = [[[NSAttributedString alloc] initWithData:data options:[NSDictionary dictionary] documentAttributes:NULL error:NULL] autorelease]; + if (type == cText) + desc = [NSAppleEventDescriptor descriptorWithString:[attrString string]]; + else if (type == typeRTF) + desc = [NSAppleEventDescriptor descriptorWithDescriptorType:type data:[attrString RTFRepresentation]]; + else + desc = [[attrString richTextSpecifier] descriptor]; + } else if (type == typeQDRectangle) { + NSRect bounds = [selection hasCharacters] ? [selection boundsForPage:page ?: [selection safeFirstPage]] : NSZeroRect; + Rect qdBounds = SKQDRectFromNSRect(bounds); + desc = [NSAppleEventDescriptor descriptorWithDescriptorType:type bytes:&qdBounds length:sizeof(Rect)]; + } else if (type == typeSInt32) { + NSUInteger first = NSNotFound, last = NSNotFound; + if ((page = [selection safeFirstPage])) + first = [selection safeIndexOfFirstCharacterOnPage:page]; + if ((page = [selection safeLastPage])) + last = [selection safeIndexOfLastCharacterOnPage:page]; + desc = [NSAppleEventDescriptor listDescriptor]; + [desc insertDescriptor:[NSAppleEventDescriptor descriptorWithInt32:first == NSNotFound ? 0 : first + 1] atIndex:1]; + [desc insertDescriptor:[NSAppleEventDescriptor descriptorWithInt32:last == NSNotFound ? 0 : last + 1] atIndex:2]; + } else if (type == typePage) { + NSArray *pages = [selection pages]; + if ([pages count] == 1) { + desc = [[[pages firstObject] objectSpecifier] descriptor]; + } else { + desc = [NSAppleEventDescriptor listDescriptor]; + NSInteger i = 0; + for (PDFPage *page in pages) + [desc insertDescriptor:[[page objectSpecifier] descriptor] atIndex:++i]; + } + } + return desc; +} + +@end Deleted: trunk/SKPagesCommand.h =================================================================== --- trunk/SKPagesCommand.h 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/SKPagesCommand.h 2021-12-16 23:02:54 UTC (rev 12627) @@ -1,43 +0,0 @@ -// -// SKPagesCommand.h -// Skim -// -// Created by Christiaan Hofman on 6/4/08. -/* - This software is Copyright (c) 2008-2021 - Christiaan Hofman. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Christiaan Hofman nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <Cocoa/Cocoa.h> - - -@interface SKPagesCommand : NSScriptCommand -@end Deleted: trunk/SKPagesCommand.m =================================================================== --- trunk/SKPagesCommand.m 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/SKPagesCommand.m 2021-12-16 23:02:54 UTC (rev 12627) @@ -1,67 +0,0 @@ -// -// SKPagesCommand.m -// Skim -// -// Created by Christiaan Hofman on 6/4/08. -/* - This software is Copyright (c) 2008-2021 - Christiaan Hofman. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Christiaan Hofman nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "SKPagesCommand.h" -#import <Quartz/Quartz.h> -#import "NSDocument_SKExtensions.h" -#import "PDFSelection_SKExtensions.h" - - -@implementation SKPagesCommand - -- (id)performDefaultImplementation { - id dP = [self directParameter]; - id dPO = nil; - if ([dP isKindOfClass:[NSArray class]] == NO) - dPO = [dP objectsByEvaluatingSpecifier]; - - if ([dPO isKindOfClass:[NSDocument class]]) { - return [dPO valueForKey:@"pages"]; - } else if ([dPO isKindOfClass:[PDFPage class]]) { - return [NSArray arrayWithObjects:dPO, nil]; - } else if ([dPO isKindOfClass:[PDFAnnotation class]]) { - return [NSArray arrayWithObjects:[dPO page], nil]; - } else { - PDFSelection *selection = [PDFSelection selectionWithSpecifier:dP]; - return [selection hasCharacters] ? [selection pages] : [NSArray array]; - } - - return nil; -} - -@end Modified: trunk/SKPreferencesCommand.m =================================================================== --- trunk/SKPreferencesCommand.m 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/SKPreferencesCommand.m 2021-12-16 23:02:54 UTC (rev 12627) @@ -43,11 +43,11 @@ @implementation SKPreferencesCommand - (id)performDefaultImplementation { - id dPO = [self directParameter]; - if ([dPO isKindOfClass:[NSString class]]) { - return [[[SKNotePrefs alloc] initWithType:dPO] autorelease]; - } else if ([dPO isKindOfClass:[NSNumber class]]) { - NSInteger mode = [dPO integerValue]; + id type = [[self evaluatedArguments] objectForKey:@"Type"]; + if ([type isKindOfClass:[NSString class]]) { + return [[[SKNotePrefs alloc] initWithType:type] autorelease]; + } else if ([type isKindOfClass:[NSNumber class]]) { + NSInteger mode = [type integerValue]; if (mode == 0 || mode == 1) return [[[SKDisplayPrefs alloc] initForFullScreen:mode] autorelease]; } Deleted: trunk/SKTextCommand.h =================================================================== --- trunk/SKTextCommand.h 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/SKTextCommand.h 2021-12-16 23:02:54 UTC (rev 12627) @@ -1,43 +0,0 @@ -// -// SKTextCommand.h -// Skim -// -// Created by Christiaan Hofman on 6/4/08. -/* - This software is Copyright (c) 2008-2021 - Christiaan Hofman. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Christiaan Hofman nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <Cocoa/Cocoa.h> - - -@interface SKTextCommand : NSScriptCommand -@end Deleted: trunk/SKTextCommand.m =================================================================== --- trunk/SKTextCommand.m 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/SKTextCommand.m 2021-12-16 23:02:54 UTC (rev 12627) @@ -1,84 +0,0 @@ -// -// SKTextCommand.m -// Skim -// -// Created by Christiaan Hofman on 6/4/08. -/* - This software is Copyright (c) 2008-2021 - Christiaan Hofman. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Christiaan Hofman nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "SKTextCommand.h" -#import <Quartz/Quartz.h> -#import "NSDocument_SKExtensions.h" -#import "PDFAnnotation_SKExtensions.h" -#import "PDFSelection_SKExtensions.h" -#import "NSAttributedString_SKExtensions.h" - - -@implementation SKTextCommand - -- (id)performDefaultImplementation { - id dP = [self directParameter]; - id dPO = nil; - if ([dP respondsToSelector:@selector(objectsByEvaluatingSpecifier)]) - dPO = [dP objectsByEvaluatingSpecifier]; - - PDFPage *page = [[self evaluatedArguments] objectForKey:@"Page"]; - NSAttributedString *attributedString = nil; - id asTypeNumber = [[self evaluatedArguments] objectForKey:@"Type"]; - FourCharCode asType = [asTypeNumber respondsToSelector:@selector(unsignedIntValue)] ? [asTypeNumber unsignedIntValue] : 'ricT'; - - if ([dPO isKindOfClass:[NSDocument class]]) { - attributedString = page ? [page attributedString] : [dPO richText]; - } else if ([dPO isKindOfClass:[PDFPage class]]) { - if (page == nil || [page isEqual:dPO]) - attributedString = [dPO attributedString]; - } else if ([dPO isKindOfClass:[PDFAnnotation class]]) { - if (page == nil || [page isEqual:[dPO page]]) - attributedString = [dPO textContents]; - } else if ([dP isKindOfClass:[NSData class]]) { - attributedString = [[[NSAttributedString alloc] initWithData:dP options:[NSDictionary dictionary] documentAttributes:NULL error:NULL] autorelease]; - } else { - attributedString = [[PDFSelection selectionWithSpecifier:dP onPage:page] attributedString]; - } - - if (asType == cText || asType == typeText || asType == typeUnicodeText || asType == typeUTF8Text || asType == typeCString || asType == typeChar) { - return [attributedString string]; - } else if (asType == 'ricT' || asType == 'cha ' || asType == 'cpar' || asType == 'cwor' || asType == 'catr' || asType == typeStyledText || asType == typeObjectSpecifier) { - return [attributedString richTextSpecifier]; - } else { - [self setScriptErrorNumber:NSArgumentsWrongScriptError]; - return nil; - } -} - -@end Modified: trunk/Skim.sdef =================================================================== --- trunk/Skim.sdef 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/Skim.sdef 2021-12-16 23:02:54 UTC (rev 12627) @@ -474,84 +474,25 @@ </result> </command> - <command name="get bounds for" code="SKIMBnds" - description="Get the bounds of a page, note, or selection."> - <synonym name="bounds for"/> - <cocoa class="SKBoundsCommand"/> - <direct-parameter - description="The document, page, note, or selection."> - <type type="specifier" list="yes"/> - <type type="specifier"/> + <command name="obtain" code="SKIMObtn" + description="Get properties for a selection or raw RTF data."> + <cocoa class="SKObtainCommand"/> + <direct-parameter type="type" + description="The type of object to return. Can be (rich) text, RTF, rectangle, integer, or page."> + <cocoa key="Type"/> </direct-parameter> - <parameter name="on" type="page" code="on " optional="yes" - description="The page on which to get the bounds."> - <cocoa key="Page"/> - </parameter> - <parameter name="for" type="PDF display box" code="for " optional="yes" - description="The display box for which to take the bounds."> - <cocoa key="Box"/> - </parameter> - <result type="rectangle" - description="The bounds of the object."/> - </command> - - <command name="get text for" code="SKIMText" - description="Get the text of a document, page, note, selection, or raw RTF data."> - <synonym name="text for"/> - <cocoa class="SKTextCommand"/> - <direct-parameter - description="The document, page, note, selection, or raw RTF data."> + <parameter name="for" code="for " + description="The selection or raw RTF data."> <type type="specifier" list="yes"/> - <type type="specifier"/> <type type="RTF"/> - </direct-parameter> - <parameter name="on" type="page" code="on " optional="yes" - description="The page on which to get the text."> - <cocoa key="Page"/> + <cocoa key="Object"/> </parameter> - <parameter name="as" type="type" code="rtyp" optional="yes" - description="The type of object to return, rich text or a text type. The default is rich text."> - <cocoa key="Type"/> - </parameter> - <result description="The (rich) text of the object."> - <type type="text"/> - <type type="specifier"/> - </result> - </command> - - <command name="get index for" code="SKIMIndx" - description="Get the index of a document, page, note, or selection."> - <cocoa class="SKIndexCommand"/> - <synonym name="index for"/> - <direct-parameter - description="The document, page, note, or selection."> - <type type="specifier" list="yes"/> - <type type="specifier"/> - </direct-parameter> <parameter name="on" type="page" code="on " optional="yes" - description="The page on which to get the index."> + description="Restrict the selection to a portion on a page."> <cocoa key="Page"/> </parameter> - <parameter name="last" type="boolean" code="Last" optional="yes" - description="Gets the index of the last character of a selection."> - <cocoa key="Last"/> - </parameter> - <result type="integer" - description="The index for the object. Returns 0 if no index was found."/> - </command> - - <command name="get pages for" code="SKIMPags" - description="Get the pages of a document, page, note, or selection."> - <cocoa class="SKPagesCommand"/> - <synonym name="pages for"/> - <direct-parameter - description="The document, page, note, or selection."> - <type type="specifier" list="yes"/> - <type type="specifier"/> - </direct-parameter> - <result - description="The list of pages for the object."> - <type type="page" list="yes"/> + <result type="any" + description="The value(s) of the type to return. Returns a list for integer, and may return a list for page."> </result> </command> @@ -578,15 +519,16 @@ </result> </command> - <command name="get preferences for" code="SKIMPref" + <command name="preferences" code="SKIMPref" description="Get preferences for a note type, or for normal or full screen display."> - <synonym name="preferences for"/> + <synonym name="get preferences"/> <cocoa class="SKPreferencesCommand"/> - <direct-parameter + <parameter name="for" code="for " description="The note type or interaction mode for which to get the preferences."> <type type="note type"/> <type type="interaction mode type"/> - </direct-parameter> + <cocoa key="Type"/> + </parameter> <result description="The preferences for the note type or PDF display."> <type type="note preferences"/> @@ -676,18 +618,6 @@ <responds-to name="join"> <cocoa method=""/> </responds-to> - <responds-to name="get bounds for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get text for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get index for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get pages for"> - <cocoa method=""/> - </responds-to> </class-extension> <class-extension extends="application" @@ -815,18 +745,6 @@ <responds-to name="edit"> <cocoa method="handleEditScriptCommand:"/> </responds-to> - <responds-to name="get bounds for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get text for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get index for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get pages for"> - <cocoa method=""/> - </responds-to> <responds-to name="format"> <cocoa method=""/> </responds-to> @@ -880,18 +798,6 @@ description="The rotation of the page. Must be one of 0, 90, 180, or 270."> <cocoa key="rotationAngle"/> </property> - <responds-to name="get bounds for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get text for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get index for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get pages for"> - <cocoa method=""/> - </responds-to> <responds-to name="grab"> <cocoa method="handleGrabScriptCommand:"/> </responds-to> @@ -1002,18 +908,6 @@ <type type="point list" list="yes"/> <cocoa key="scriptingPointLists"/> </property> - <responds-to name="get bounds for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get text for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get index for"> - <cocoa method=""/> - </responds-to> - <responds-to name="get pages for"> - <cocoa method=""/> - </responds-to> <responds-to name="format"> <cocoa method=""/> </responds-to> Modified: trunk/Skim.xcodeproj/project.pbxproj =================================================================== --- trunk/Skim.xcodeproj/project.pbxproj 2021-12-14 16:50:46 UTC (rev 12626) +++ trunk/Skim.xcodeproj/project.pbxproj 2021-12-16 23:02:54 UTC (rev 12627) @@ -128,10 +128,6 @@ CE455394111DA4290060CAC9 /* SKImageToolTipContext.m in Sources */ = {isa = PBXBuildFile; fileRef = CE455393111DA4290060CAC9 /* SKImageToolTipContext.m */; }; CE4642E50DF5CBD900CFD8D2 /* PDFAnnotationText_SKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4642E40DF5CBD900CFD8D2 /* PDFAnnotationText_SKExtensions.m */; }; CE4643CF0DF6B5A400CFD8D2 /* SKJoinCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4643CE0DF6B5A400CFD8D2 /* SKJoinCommand.m */; }; - CE4643D50DF6B60500CFD8D2 /* SKPagesCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4643D40DF6B60500CFD8D2 /* SKPagesCommand.m */; }; - CE4643D80DF6B63500CFD8D2 /* SKTextCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4643D70DF6B63500CFD8D2 /* SKTextCommand.m */; }; - CE4643DB0DF6B66000CFD8D2 /* SKIndexCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4643DA0DF6B66000CFD8D2 /* SKIndexCommand.m */; }; - CE4643DE0DF6B77800CFD8D2 /* SKBoundsCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4643DD0DF6B77800CFD8D2 /* SKBoundsCommand.m */; }; CE4645910DF8140200CFD8D2 /* SKNumberArrayFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4645900DF8140200CFD8D2 /* SKNumberArrayFormatter.m */; }; CE48BAD80C089EA300A166C6 /* SKTemplateParser.m in Sources */ = {isa = PBXBuildFile; fileRef = CE48BAD60C089EA300A166C6 /* SKTemplateParser.m */; }; CE48EFB121C3DC3900249D4C /* SKDownloadsWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE48EFB021C3DC3900249D4C /* SKDownloadsWindow.m */; }; @@ -151,6 +147,7 @@ CE5347141645DD3000737191 /* SKAttachmentEmailer.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5347131645DD3000737191 /* SKAttachmentEmailer.m */; }; CE546FC40B32D5DB00F8AFB6 /* SKNoteWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE546FC30B32D5DB00F8AFB6 /* SKNoteWindowController.m */; }; CE54898F0B35D50E00F8AFB6 /* SKInfoWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE54898E0B35D50E00F8AFB6 /* SKInfoWindowController.m */; }; + CE56F2C8276BFBA7002B3717 /* SKObtainCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CE56F2C7276BFBA7002B3717 /* SKObtainCommand.m */; }; CE5BAF4410511A0F00161B87 /* PDFOutline_SKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5BAF4310511A0F00161B87 /* PDFOutline_SKExtensions.m */; }; CE5BB0CF10515CCC00161B87 /* SKPDFDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5BB0CE10515CCC00161B87 /* SKPDFDocument.m */; }; CE5BB0D310515D3100161B87 /* SKPDFPage.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5BB0D210515D3100161B87 /* SKPDFPage.m */; }; @@ -870,14 +867,6 @@ CE4642E40DF5CBD900CFD8D2 /* PDFAnnotationText_SKExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFAnnotationText_SKExtensions.m; sourceTree = "<group>"; }; CE4643CD0DF6B5A400CFD8D2 /* SKJoinCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKJoinCommand.h; sourceTree = "<group>"; }; CE4643CE0DF6B5A400CFD8D2 /* SKJoinCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKJoinCommand.m; sourceTree = "<group>"; }; - CE4643D30DF6B60500CFD8D2 /* SKPagesCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKPagesCommand.h; sourceTree = "<group>"; }; - CE4643D40DF6B60500CFD8D2 /* SKPagesCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKPagesCommand.m; sourceTree = "<group>"; }; - CE4643D60DF6B63500CFD8D2 /* SKTextCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKTextCommand.h; sourceTree = "<group>"; }; - CE4643D70DF6B63500CFD8D2 /* SKTextCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKTextCommand.m; sourceTree = "<group>"; }; - CE4643D90DF6B66000CFD8D2 /* SKIndexCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKIndexCommand.h; sourceTree = "<group>"; }; - CE4643DA0DF6B66000CFD8D2 /* SKIndexCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKIndexCommand.m; sourceTree = "<group>"; }; - CE4643DC0DF6B77800CFD8D2 /* SKBoundsCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKBoundsCommand.h; sourceTree = "<group>"; }; - CE4643DD0DF6B77800CFD8D2 /* SKBoundsCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKBoundsCommand.m; sourceTree = "<group>"; }; CE46458F0DF8140200CFD8D2 /* SKNumberArrayFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKNumberArrayFormatter.h; sourceTree = "<group>"; }; CE4645900DF8140200CFD8D2 /* SKNumberArrayFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKNumberArrayFormatter.m; sourceTree = "<group>"; }; CE485B960BC442BA00FA7109 /* nl */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = "<group>"; }; @@ -926,6 +915,8 @@ CE54AA8E0BBC037400008750 /* ReleaseNotes.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = ReleaseNotes.rtf; sourceTree = "<group>"; }; CE5545BF248DA3B000BEEAF0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = Skim.help/Contents/Resources/en.lproj/skim.texi; sourceTree = SOURCE_ROOT; }; CE5545D1248DA3C200BEEAF0 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text; name = nl; path = ../Skim.help/Contents/Resources/nl.lproj/skim.texi; sourceTree = "<group>"; }; + CE56F2C6276BFBA7002B3717 /* SKObtainCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SKObtainCommand.h; sourceTree = "<group>"; }; + CE56F2C7276BFBA7002B3717 /* SKObtainCommand.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SKObtainCommand.m; sourceTree = "<group>"; }; CE5A822E0E6C429D008C0AA9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = it; path = it.lproj/Credits.rtf; sourceTree = "<group>"; }; CE5A822F0E6C42A7008C0AA9 /* it */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = "<group>"; }; CE5A82300E6C42B1008C0AA9 /* it */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = "<group>"; }; @@ -1940,16 +1931,12 @@ CE4643F10DF6BADC00CFD8D2 /* Commands */ = { isa = PBXGroup; children = ( - CE4643DC0DF6B77800CFD8D2 /* SKBoundsCommand.h */, - CE4643DD0DF6B77800CFD8D2 /* SKBoundsCommand.m */, CEFBC968103C5CBF00535C74 /* SKFormatCommand.h */, CEFBC969103C5CBF00535C74 /* SKFormatCommand.m */, - CE4643D90DF6B66000CFD8D2 /* SKIndexCommand.h */, - CE4643DA0DF6B66000CFD8D2 /* SKIndexCommand.m */, CE4643CD0DF6B5A400CFD8D2 /* SKJoinCommand.h */, CE4643CE0DF6B5A400CFD8D2 /* SKJoinCommand.m */, - CE4643D30DF6B60500CFD8D2 /* SKPagesCommand.h */, - CE4643D40DF6B60500CFD8D2 /* SKPagesCommand.m */, + CE56F2C6276BFBA7002B3717 /* SKObtainCommand.h */, + CE56F2C7276BFBA7002B3717 /* SKObtainCommand.m */, CEC29534275A7D58000F2D4C /* SKPreferencesCommand.h */, CEC29535275A7D58000F2D4C /* SKPreferencesCommand.m */, CE12A73C134F215F003AED67 /* SKSelectCommand.h */, @@ -1956,8 +1943,6 @@ CE12A73D134F215F003AED67 /* SKSelectCommand.m */, CECE6C3D2188AE9A00F6179D /* SKSelectionCommand.h */, CECE6C3E2188AE9A00F6179D /* SKSelectionCommand.m */, - CE4643D60DF6B63500CFD8D2 /* SKTextCommand.h */, - CE4643D70DF6B63500CFD8D2 /* SKTextCommand.m */, ); name = Commands; sourceTree = "<group>"; @@ -2655,6 +2640,7 @@ CEED148C2709EE4D00A8C4AA /* SKBasePDFView.m in Sources */, CE48EFB121C3DC3900249D4C /* SKDownloadsWindow.m in Sources */, CE54898F0B35D50E00F8AFB6 /* SKInfoWindowController.m in Sources */, + CE56F2C8276BFBA7002B3717 /* SKObtainCommand.m in Sources */, F92DB5AD0B36FE1F002A26E9 /* SKSnapshotPDFView.m in Sources */, F97751630B37461000DF673B /* SKConversionProgressController.m in Sources */, CEFDF8BE0B3848C40091C61A /* SKNavigationWindow.m in Sources */, @@ -2758,10 +2744,6 @@ CE0ECD1C0DE73604006EEDDB /* NSDocument_SKExtensions.m in Sources */, CE4642E50DF5CBD900CFD8D2 /* PDFAnnotationText_SKExtensions.m in Sources */, CE4643CF0DF6B5A400CFD8D2 /* SKJoinCommand.m in Sources */, - CE4643D50DF6B60500CFD8D2 /* SKPagesCommand.m in Sources */, - CE4643D80DF6B63500CFD8D2 /* SKTextCommand.m in Sources */, - CE4643DB0DF6B66000CFD8D2 /* SKIndexCommand.m in Sources */, - CE4643DE0DF6B77800CFD8D2 /* SKBoundsCommand.m in Sources */, CE4645910DF8140200CFD8D2 /* SKNumberArrayFormatter.m in Sources */, CE34FFA80DFF58FB00A7FFE6 /* NSEvent_SKExtensions.m in Sources */, CE3400AC0E0034DF00A7FFE6 /* NSMenu_SKExtensions.m in Sources */, 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