Revision: 3461
http://skim-app.svn.sourceforge.net/skim-app/?rev=3461&view=rev
Author: hofman
Date: 2008-03-11 05:47:15 -0700 (Tue, 11 Mar 2008)
Log Message:
-----------
Make media box r/w through AppleScript.
Modified Paths:
--------------
trunk/PDFPage_SKExtensions.h
trunk/PDFPage_SKExtensions.m
trunk/Skim.sdef
Modified: trunk/PDFPage_SKExtensions.h
===================================================================
--- trunk/PDFPage_SKExtensions.h 2008-03-11 12:42:19 UTC (rev 3460)
+++ trunk/PDFPage_SKExtensions.h 2008-03-11 12:47:15 UTC (rev 3461)
@@ -73,6 +73,7 @@
- (NSData *)boundsAsQDRect;
- (void)setBoundsAsQDRect:(NSData *)inQDBoundsAsData;
- (NSData *)mediaBoundsAsQDRect;
+- (void)setMediaBoundsAsQDRect:(NSData *)inQDBoundsAsData;
- (NSData *)contentBoundsAsQDRect;
- (id)richText;
- (NSArray *)notes;
Modified: trunk/PDFPage_SKExtensions.m
===================================================================
--- trunk/PDFPage_SKExtensions.m 2008-03-11 12:42:19 UTC (rev 3460)
+++ trunk/PDFPage_SKExtensions.m 2008-03-11 12:47:15 UTC (rev 3461)
@@ -395,6 +395,27 @@
return [NSData dataWithBytes:&qdBounds length:sizeof(Rect)];
}
+- (void)setMediaBoundsAsQDRect:(NSData *)inQDBoundsAsData {
+ if ([inQDBoundsAsData length] == sizeof(Rect)) {
+ NSUndoManager *undoManager = [[self containingDocument] undoManager];
+ [[undoManager prepareWithInvocationTarget:self]
setMediaBoundsAsQDRect:[self mediaBoundsAsQDRect]];
+ [undoManager setActionName:NSLocalizedString(@"Crop Page", @"Undo
action name")];
+ // this will dirty the document, even though no saveable change has
been made
+ // but we cannot undo the document change count because there may be
real changes to the document in the script
+
+ const Rect *qdBounds = (const Rect *)[inQDBoundsAsData bytes];
+ NSRect newBounds = NSRectFromRect(*qdBounds);
+ if (NSWidth(newBounds) < 0.0)
+ newBounds.size.width = 0.0;
+ if (NSHeight(newBounds) < 0.0)
+ newBounds.size.height = 0.0;
+ [self setBounds:newBounds forBox:kPDFDisplayBoxMediaBox];
+
+ [[NSNotificationCenter defaultCenter]
postNotificationName:SKPDFDocumentPageBoundsDidChangeNotification
+ object:[self document] userInfo:[NSDictionary
dictionaryWithObjectsAndKeys:@"crop", @"action", self, @"page", nil]];
+ }
+}
+
- (NSData *)contentBoundsAsQDRect {
Rect qdBounds = RectFromNSRect([self foregroundBox]);
return [NSData dataWithBytes:&qdBounds length:sizeof(Rect)];
Modified: trunk/Skim.sdef
===================================================================
--- trunk/Skim.sdef 2008-03-11 12:42:19 UTC (rev 3460)
+++ trunk/Skim.sdef 2008-03-11 12:47:15 UTC (rev 3461)
@@ -615,7 +615,7 @@
description="The bounding rectangle for the crop box of the
page (left, top, right, bottom).">
<cocoa key="boundsAsQDRect"/>
</property>
- <property name="media bounds" code="MBnd" type="rectangle"
access="r"
+ <property name="media bounds" code="MBnd" type="rectangle"
description="The bounding rectangle for the media box of the
page (left, top, right, bottom).">
<cocoa key="mediaBoundsAsQDRect"/>
</property>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit