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