Revision: 13409
          http://sourceforge.net/p/skim-app/code/13409
Author:   hofman
Date:     2023-04-01 14:03:31 +0000 (Sat, 01 Apr 2023)
Log Message:
-----------
Add PDFDestination category and files, defining a destination with an actual 
point when it is defined implicitly. Use tihs for goToDestination: override, 
snapshots, and reading bar.

Modified Paths:
--------------
    trunk/SKBasePDFView.m
    trunk/SKImageToolTipContext.m
    trunk/SKPDFView.m
    trunk/SKReadingBar.m
    trunk/Skim.xcodeproj/project.pbxproj

Added Paths:
-----------
    trunk/PDFDestination_SKExtensions.h
    trunk/PDFDestination_SKExtensions.m

Added: trunk/PDFDestination_SKExtensions.h
===================================================================
--- trunk/PDFDestination_SKExtensions.h                         (rev 0)
+++ trunk/PDFDestination_SKExtensions.h 2023-04-01 14:03:31 UTC (rev 13409)
@@ -0,0 +1,46 @@
+//
+//  PDFDestination_SKExtensions.h
+//  Skim
+//
+//  Created by Christiaan Hofman on 01/04/2023.
+/*
+ This software is Copyright (c) 2023
+ 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>
+#import <Quartz/Quartz.h>
+
+@interface PDFDestination (SKExtensions)
+
+- (PDFDestination *)effectiveDestinationWithTargetRect:(NSRect)rect;
+
+@end

Added: trunk/PDFDestination_SKExtensions.m
===================================================================
--- trunk/PDFDestination_SKExtensions.m                         (rev 0)
+++ trunk/PDFDestination_SKExtensions.m 2023-04-01 14:03:31 UTC (rev 13409)
@@ -0,0 +1,114 @@
+//
+//  PDFDestination_SKExtensions.m
+//  Skim
+//
+//  Created by Christiaan Hofman on 01/04/2023.
+/*
+ This software is Copyright (c) 2023
+ 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 "PDFDestination_SKExtensions.h"
+#import "PDFPage_SKExtensions.h"
+
+@implementation PDFDestination (SKExtensions)
+
+- (PDFDestination *)effectiveDestinationWithTargetRect:(NSRect)rect {
+    NSPoint point = [self point];
+    if (point.x >= kPDFDestinationUnspecifiedValue || point.y >= 
kPDFDestinationUnspecifiedValue) {
+        PDFPage *page = [self page];
+        NSRect bounds = NSZeroRect;
+        BOOL override = YES;
+        NSInteger type = 0;
+        @try { type = [[self valueForKeyPath:RUNNING_BEFORE(10_12) ? 
@"_pdfPriv.type" : @"_private.type"] integerValue]; }
+        @catch (id e) {}
+        switch (type) {
+            case 0:
+                override = NO;
+                break;
+            case 1: // Fit
+                bounds = [page foregroundBox];
+                break;
+            case 2: // FitH
+                bounds = [page foregroundBox];
+                @try { point.y = [[self valueForKeyPath:RUNNING_BEFORE(10_12) 
? @"_pdfPriv.top" : @"_private.top"] integerValue]; }
+                @catch (id e) { override = NO; }
+                break;
+            case 3: // FitV
+                bounds = [page foregroundBox];
+                @try { point.x = [[self valueForKeyPath:RUNNING_BEFORE(10_12) 
? @"_pdfPriv.left" : @"_private.left"] integerValue]; }
+                @catch (id e) { override = NO; }
+                break;
+            case 4: // FitR
+            {
+                @try { bounds.origin.x = [[self 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.left" : @"_private.left"] 
integerValue]; }
+                @catch (id e) { override = NO; }
+                @try { bounds.origin.y = [[self 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.bottom" : 
@"_private.bottom"] integerValue]; }
+                @catch (id e) { override = NO; }
+                @try { bounds.size.width = [[self 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.right" : @"_private.right"] 
integerValue] - NSMinX(bounds); }
+                @catch (id e) { override = NO; }
+                @try { bounds.size.height = [[self 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.top" : @"_private.top"] 
integerValue] - NSMinY(bounds); }
+                @catch (id e) { override = NO; }
+                break;
+            }
+            case 5: // FitB
+                bounds = [page boundsForBox:kPDFDisplayBoxCropBox];
+                break;
+            case 6: // FitBH
+                bounds = [page boundsForBox:kPDFDisplayBoxCropBox];
+                @try { point.y = [[self valueForKeyPath:RUNNING_BEFORE(10_12) 
? @"_pdfPriv.top" : @"_private.top"] integerValue]; }
+                @catch (id e) { override = NO; }
+                break;
+            case 7: // FitBV
+                bounds = [page boundsForBox:kPDFDisplayBoxCropBox];
+                @try { point.x = [[self valueForKeyPath:RUNNING_BEFORE(10_12) 
? @"_pdfPriv.left" : @"_private.left"] integerValue]; }
+                @catch (id e) { override = NO; }
+                break;
+            default:
+                override = NO;
+                break;
+        }
+        if (override) {
+            NSRect bounds;
+            if (point.x >= kPDFDestinationUnspecifiedValue)
+                point.x = NSMinX(bounds);
+            if (point.y >= kPDFDestinationUnspecifiedValue)
+                point.y = NSMaxY(bounds);
+            PDFDestination *destination = [[[PDFDestination alloc] 
initWithPage:page atPoint:point] autorelease];
+            if (NSIsEmptyRect(rect) == NO)
+                [destination setZoom:fmin(NSWidth(rect) / NSWidth(bounds), 
NSHeight(rect) / NSHeight(bounds))];
+            return destination;
+        }
+    }
+    return self;
+}
+
+@end

Modified: trunk/SKBasePDFView.m
===================================================================
--- trunk/SKBasePDFView.m       2023-04-01 09:40:57 UTC (rev 13408)
+++ trunk/SKBasePDFView.m       2023-04-01 14:03:31 UTC (rev 13409)
@@ -46,6 +46,7 @@
 #import <SkimNotes/SkimNotes.h>
 #import "PDFAnnotation_SKExtensions.h"
 #import "PDFPage_SKExtensions.h"
+#import "PDFDestination_SKExtensions.h"
 
 static char SKBasePDFViewDefaultsObservationContext;
 
@@ -397,72 +398,7 @@
 }
 
 - (void)goToDestination:(PDFDestination *)destination {
-    NSPoint point = [destination point];
-    if (point.x >= kPDFDestinationUnspecifiedValue || point.y >= 
kPDFDestinationUnspecifiedValue) {
-        PDFPage *page = [destination page];
-        NSRect bounds = NSZeroRect;
-        BOOL override = YES;
-        NSInteger type = 0;
-        @try { type = [[destination valueForKeyPath:RUNNING_BEFORE(10_12) ? 
@"_pdfPriv.type" : @"_private.type"] integerValue]; }
-        @catch (id e) {}
-        switch (type) {
-            case 0:
-                override = NO;
-                break;
-            case 1: // Fit
-                bounds = [page foregroundBox];
-                break;
-            case 2: // FitH
-                bounds = [page foregroundBox];
-                @try { point.y = [[destination 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.top" : @"_private.top"] 
integerValue]; }
-                @catch (id e) { override = NO; }
-                break;
-            case 3: // FitV
-                bounds = [page foregroundBox];
-                @try { point.x = [[destination 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.left" : @"_private.left"] 
integerValue]; }
-                @catch (id e) { override = NO; }
-                break;
-            case 4: // FitR
-            {
-                @try { bounds.origin.x = [[destination 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.left" : @"_private.left"] 
integerValue]; }
-                @catch (id e) { override = NO; }
-                @try { bounds.origin.y = [[destination 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.bottom" : 
@"_private.bottom"] integerValue]; }
-                @catch (id e) { override = NO; }
-                @try { bounds.size.width = [[destination 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.right" : @"_private.right"] 
integerValue] - NSMinX(bounds); }
-                @catch (id e) { override = NO; }
-                @try { bounds.size.height = [[destination 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.top" : @"_private.top"] 
integerValue] - NSMinY(bounds); }
-                @catch (id e) { override = NO; }
-                break;
-            }
-            case 5: // FitB
-                bounds = [page boundsForBox:kPDFDisplayBoxCropBox];
-                break;
-            case 6: // FitBH
-                bounds = [page boundsForBox:kPDFDisplayBoxCropBox];
-                @try { point.y = [[destination 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.top" : @"_private.top"] 
integerValue]; }
-                @catch (id e) { override = NO; }
-                break;
-            case 7: // FitBV
-                bounds = [page boundsForBox:kPDFDisplayBoxCropBox];
-                @try { point.x = [[destination 
valueForKeyPath:RUNNING_BEFORE(10_12) ? @"_pdfPriv.left" : @"_private.left"] 
integerValue]; }
-                @catch (id e) { override = NO; }
-                break;
-            default:
-                override = NO;
-                break;
-        }
-        if (override) {
-            NSRect bounds, rect = [self visibleContentRect];
-            CGFloat zoom = fmin(NSWidth(rect) / NSWidth(bounds), 
NSHeight(rect) / NSHeight(bounds));
-            if (point.x >= kPDFDestinationUnspecifiedValue)
-                point.x = NSMinX(bounds);
-            if (point.y >= kPDFDestinationUnspecifiedValue)
-                point.y = NSMaxY(bounds);
-            destination = [[[PDFDestination alloc] initWithPage:page 
atPoint:point] autorelease];
-            [destination setZoom:zoom];
-        }
-    }
-    [super goToDestination:destination];
+     [super goToDestination:[destination 
effectiveDestinationWithTargetRect:[self visibleContentRect]]];
 }
 
 @end

Modified: trunk/SKImageToolTipContext.m
===================================================================
--- trunk/SKImageToolTipContext.m       2023-04-01 09:40:57 UTC (rev 13408)
+++ trunk/SKImageToolTipContext.m       2023-04-01 14:03:31 UTC (rev 13409)
@@ -47,6 +47,7 @@
 #import "NSCharacterSet_SKExtensions.h"
 #import "NSColor_SKExtensions.h"
 #import "NSAttributedString_SKExtensions.h"
+#import "PDFDestination_SKExtensions.h"
 
 #define TEXT_MARGIN_X 2.0
 #define TEXT_MARGIN_Y 2.0
@@ -106,7 +107,7 @@
     
     BOOL isScaled = fabs(scale - 1.0) > 0.01;
     PDFPage *page = [self page];
-    NSPoint point = [self point];
+    NSPoint point = [[self effectiveDestinationWithTargetRect:NSZeroRect] 
point];
     NSRect bounds = [page boundsForBox:kPDFDisplayBoxCropBox];
     CGFloat size = isScaled ? ceil(scale * fmax(NSWidth(bounds), 
NSHeight(bounds))) : 0.0;
     NSImage *pageImage = [page thumbnailWithSize:size 
forBox:kPDFDisplayBoxCropBox shadowBlurRadius:0.0 highlights:selections];
@@ -119,10 +120,6 @@
         [scaleTransform scaleBy:size / fmax(NSWidth(bounds), 
NSHeight(bounds))];
         [transform appendTransform:scaleTransform];
     }
-    if (fabs(point.x - kPDFDestinationUnspecifiedValue) <= 0.0)
-        point.x = [page rotation] < 180 ? NSMinX([page 
boundsForBox:kPDFDisplayBoxCropBox]) : NSMaxX([page 
boundsForBox:kPDFDisplayBoxCropBox]);
-    if (fabs(point.y - kPDFDestinationUnspecifiedValue) <= 0.0)
-        point.y = (([page rotation] + 90) % 360) < 180 ? NSMaxY([page 
boundsForBox:kPDFDisplayBoxCropBox]) : NSMinY([page 
boundsForBox:kPDFDisplayBoxCropBox]);
     
     sourceRect.size.width = [[NSUserDefaults standardUserDefaults] 
doubleForKey:SKToolTipWidthKey];
     sourceRect.size.height = [[NSUserDefaults standardUserDefaults] 
doubleForKey:SKToolTipHeightKey];

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2023-04-01 09:40:57 UTC (rev 13408)
+++ trunk/SKPDFView.m   2023-04-01 14:03:31 UTC (rev 13409)
@@ -79,6 +79,7 @@
 #import "SKMainWindowController_Actions.h"
 #import "NSObject_SKExtensions.h"
 #import "SKLoupeController.h"
+#import "PDFDestination_SKExtensions.h"
 
 #define ANNOTATION_MODE_COUNT 9
 #define TOOL_MODE_COUNT 5
@@ -4969,11 +4970,7 @@
             PDFDestination *destination = [annotation linkDestination];
             if ([destination page]) {
                 page = [destination page];
-                point = [destination point];
-                if (fabs(point.x - kPDFDestinationUnspecifiedValue) <= 0.0)
-                    point.x = [page rotation] < 180 ? NSMinX([page 
boundsForBox:kPDFDisplayBoxCropBox]) : NSMaxX([page 
boundsForBox:kPDFDisplayBoxCropBox]);
-                if (fabs(point.y - kPDFDestinationUnspecifiedValue) <= 0.0)
-                    point.y = (([page rotation] + 90) % 360) < 180 ? 
NSMaxY([page boundsForBox:kPDFDisplayBoxCropBox]) : NSMinY([page 
boundsForBox:kPDFDisplayBoxCropBox]);
+                point = [[destination 
effectiveDestinationWithTargetRect:NSZeroRect] point];
                 point = [self convertPoint:point fromPage:page];
                 point.y -= 0.5 * DEFAULT_SNAPSHOT_HEIGHT;
             }

Modified: trunk/SKReadingBar.m
===================================================================
--- trunk/SKReadingBar.m        2023-04-01 09:40:57 UTC (rev 13408)
+++ trunk/SKReadingBar.m        2023-04-01 14:03:31 UTC (rev 13409)
@@ -46,6 +46,7 @@
 #import "SKLine.h"
 #import "SKMainDocument.h"
 #import "PDFSelection_SKExtensions.h"
+#import "PDFDestination_SKExtensions.h"
 
 #define SKReadingBarNumberOfLinesKey @"SKReadingBarNumberOfLines"
 
@@ -311,11 +312,7 @@
         }
         if (dest) {
             aPage = [dest page];
-            point = [dest point];
-            if (fabs(point.x - kPDFDestinationUnspecifiedValue) <= 0.0)
-                point.x = [aPage rotation] < 180 ? NSMinX([aPage 
boundsForBox:kPDFDisplayBoxCropBox]) : NSMaxX([aPage 
boundsForBox:kPDFDisplayBoxCropBox]);
-            if (fabs(point.y - kPDFDestinationUnspecifiedValue) <= 0.0)
-                point.y = (([aPage rotation] + 90) % 360) < 180 ? 
NSMaxY([aPage boundsForBox:kPDFDisplayBoxCropBox]) : NSMinY([aPage 
boundsForBox:kPDFDisplayBoxCropBox]);
+            point = [[dest effectiveDestinationWithTargetRect:NSZeroRect] 
point];
         }
     } else if ([location isKindOfClass:[SKLine class]]) {
         aPage = [(SKLine *)location page];

Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj        2023-04-01 09:40:57 UTC (rev 
13408)
+++ trunk/Skim.xcodeproj/project.pbxproj        2023-04-01 14:03:31 UTC (rev 
13409)
@@ -60,6 +60,7 @@
                CE0ECD1C0DE73604006EEDDB /* NSDocument_SKExtensions.m in 
Sources */ = {isa = PBXBuildFile; fileRef = CE0ECD1B0DE73604006EEDDB /* 
NSDocument_SKExtensions.m */; };
                CE10979A161320CF00C4FA18 /* SKExportAccessoryController.m in 
Sources */ = {isa = PBXBuildFile; fileRef = CE109799161320CF00C4FA18 /* 
SKExportAccessoryController.m */; };
                CE1098F11613CFC800C4FA18 /* ExportAccessoryView.strings in 
Resources */ = {isa = PBXBuildFile; fileRef = CE1098EF1613CFC800C4FA18 /* 
ExportAccessoryView.strings */; };
+               CE11CFEC29D86E5A00C6C217 /* PDFDestination_SKExtensions.m in 
Sources */ = {isa = PBXBuildFile; fileRef = CE11CFEB29D86E5A00C6C217 /* 
PDFDestination_SKExtensions.m */; };
                CE121AC81180644A00951425 /* SKScriptMenu.m in Sources */ = {isa 
= PBXBuildFile; fileRef = CE121AC71180644A00951425 /* SKScriptMenu.m */; };
                CE121B2D1180770900951425 /* ScriptMenu.tiff in Resources */ = 
{isa = PBXBuildFile; fileRef = CE121B2C1180770900951425 /* ScriptMenu.tiff */; 
};
                CE1248C513FEDCF200FFAE20 /* SKTemplateManager.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE1248C413FEDCF200FFAE20 /* SKTemplateManager.m 
*/; };
@@ -314,6 +315,20 @@
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
+               CE11CFF329D86E5A00C6C217 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE7DC7280E09286500D6D76D /* 
SkimNotes.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = CE0C361E29A9361D0056897C;
+                       remoteInfo = "SkimNotes iOS";
+               };
+               CE11CFF529D86E5A00C6C217 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE7DC7280E09286500D6D76D /* 
SkimNotes.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = CE0C363429A9362B0056897C;
+                       remoteInfo = "SkimNotesBase iOS";
+               };
                CE1411441229B66B00C9EBA0 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = CE7DC7280E09286500D6D76D /* 
SkimNotes.xcodeproj */;
@@ -670,6 +685,8 @@
                CE1098FA1613D05A00C4FA18 /* es */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = es; path = 
es.lproj/ExportAccessoryView.strings; sourceTree = "<group>"; };
                CE1098FB1613D06400C4FA18 /* zh_CN */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = zh_CN; path = 
zh_CN.lproj/ExportAccessoryView.strings; sourceTree = "<group>"; };
                CE1098FC1613D06900C4FA18 /* zh_TW */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = zh_TW; path = 
zh_TW.lproj/ExportAccessoryView.strings; sourceTree = "<group>"; };
+               CE11CFEA29D86E5A00C6C217 /* PDFDestination_SKExtensions.h */ = 
{isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = 
PDFDestination_SKExtensions.h; sourceTree = "<group>"; };
+               CE11CFEB29D86E5A00C6C217 /* PDFDestination_SKExtensions.m */ = 
{isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = 
PDFDestination_SKExtensions.m; sourceTree = "<group>"; };
                CE121AC61180644A00951425 /* SKScriptMenu.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SKScriptMenu.h; sourceTree = "<group>"; };
                CE121AC71180644A00951425 /* SKScriptMenu.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= SKScriptMenu.m; sourceTree = "<group>"; };
                CE121B2C1180770900951425 /* ScriptMenu.tiff */ = {isa = 
PBXFileReference; lastKnownFileType = image.tiff; path = ScriptMenu.tiff; 
sourceTree = "<group>"; };
@@ -1985,6 +2002,8 @@
                        children = (
                                CE7DC7320E09286500D6D76D /* SkimNotes.framework 
*/,
                                CEA5F5440E2CED1100F65088 /* 
SkimNotesBase.framework */,
+                               CE11CFF429D86E5A00C6C217 /* SkimNotes.framework 
*/,
+                               CE11CFF629D86E5A00C6C217 /* 
SkimNotesBase.framework */,
                                CE7DC7340E09286500D6D76D /* skimnotes */,
                                CE1411451229B66B00C9EBA0 /* skimpdf */,
                                CEDB9AE40E2E9EA50057FD09 /* SkimNotesTest.app 
*/,
@@ -2130,6 +2149,8 @@
                                CEE7E77A24426C380034690E /* 
PDFAnnotationChoiceWidget_SKExtensions.m */,
                                CE3A3D2A0B78C0A0006B64D3 /* 
SKNPDFAnnotationNote_SKExtensions.h */,
                                CE3A3D2B0B78C0A0006B64D3 /* 
SKNPDFAnnotationNote_SKExtensions.m */,
+                               CE11CFEA29D86E5A00C6C217 /* 
PDFDestination_SKExtensions.h */,
+                               CE11CFEB29D86E5A00C6C217 /* 
PDFDestination_SKExtensions.m */,
                                CEE176E20DBD5B0C00E6C317 /* 
PDFDocumentView_SKExtensions.h */,
                                CEE176E30DBD5B0C00E6C317 /* 
PDFDocumentView_SKExtensions.m */,
                                CE6DC7B90D689138003A072F /* 
PDFDocument_SKExtensions.h */,
@@ -2295,6 +2316,20 @@
 /* End PBXProject section */
 
 /* Begin PBXReferenceProxy section */
+               CE11CFF429D86E5A00C6C217 /* SkimNotes.framework */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = wrapper.framework;
+                       path = SkimNotes.framework;
+                       remoteRef = CE11CFF329D86E5A00C6C217 /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
+               CE11CFF629D86E5A00C6C217 /* SkimNotesBase.framework */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = wrapper.framework;
+                       path = SkimNotesBase.framework;
+                       remoteRef = CE11CFF529D86E5A00C6C217 /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
                CE1411451229B66B00C9EBA0 /* skimpdf */ = {
                        isa = PBXReferenceProxy;
                        fileType = "compiled.mach-o.executable";
@@ -2698,6 +2733,7 @@
                                CE41B2CC0C08D17100E36EB7 /* 
NSValue_SKExtensions.m in Sources */,
                                CE7C20500C259A5D0059E08C /* 
NSColor_SKExtensions.m in Sources */,
                                CE8B46E90C29CA00005CE7F1 /* SKLineInspector.m 
in Sources */,
+                               CE11CFEC29D86E5A00C6C217 /* 
PDFDestination_SKExtensions.m in Sources */,
                                CE4BC1300C357A0300C2AF03 /* SKLineWell.m in 
Sources */,
                                CEBC0DDD2791C607008686E8 /* 
NSObject_SKExtensions.m in Sources */,
                                CE4D97FD0C3C2BFF002C20CB /* SKColorSwatch.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
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to