Revision: 2574
http://skim-app.svn.sourceforge.net/skim-app/?rev=2574&view=rev
Author: hofman
Date: 2007-07-27 09:46:32 -0700 (Fri, 27 Jul 2007)
Log Message:
-----------
Add a temporary annotation for the pdfsync location. make sure the pref flag is
checked before showing a temporary annotation.
Modified Paths:
--------------
trunk/SKDocument.m
trunk/SKMainWindowController.h
trunk/SKMainWindowController.m
Modified: trunk/SKDocument.m
===================================================================
--- trunk/SKDocument.m 2007-07-27 15:14:29 UTC (rev 2573)
+++ trunk/SKDocument.m 2007-07-27 16:46:32 UTC (rev 2574)
@@ -948,7 +948,9 @@
}
- (void)synchronizer:(SKPDFSynchronizer *)synchronizer
foundLocation:(NSPoint)point atPageIndex:(unsigned int)pageIndex {
- [[self pdfView] displayLineAtPoint:point inPageAtIndex:pageIndex];
+ if ([[NSUserDefaults standardUserDefaults]
boolForKey:SKShouldHighlightSearchResultsKey])
+ [[self mainWindowController] addTemporaryAnnotationForPoint:point
onPage:[[self pdfDocument] pageAtIndex:pageIndex]];
+ [[self pdfView] displayLineAtPoint:point inPageAtIndex:pageIndex];
}
Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h 2007-07-27 15:14:29 UTC (rev 2573)
+++ trunk/SKMainWindowController.h 2007-07-27 16:46:32 UTC (rev 2574)
@@ -119,7 +119,7 @@
NSMutableArray *searchResults;
BOOL findPanelFind;
CFMutableSetRef temporaryAnnotations;
- NSTimer *findTimer;
+ NSTimer *temporaryAnnotationTimer;
IBOutlet NSArrayController *noteArrayController;
IBOutlet SKNoteOutlineView *noteOutlineView;
@@ -319,6 +319,7 @@
- (void)displaySnapshotView;
- (void)removeTemporaryAnnotations;
+- (void)addTemporaryAnnotationForPoint:(NSPoint)point onPage:(PDFPage *)page;
- (PDFSelection *)findString:(NSString *)string fromSelection:(PDFSelection
*)selection withOptions:(int)options;
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2007-07-27 15:14:29 UTC (rev 2573)
+++ trunk/SKMainWindowController.m 2007-07-27 16:46:32 UTC (rev 2574)
@@ -626,10 +626,10 @@
[snapshotTimer release];
snapshotTimer = nil;
}
- if (findTimer) {
- [findTimer invalidate];
- [findTimer release];
- findTimer = nil;
+ if (temporaryAnnotationTimer) {
+ [temporaryAnnotationTimer invalidate];
+ [temporaryAnnotationTimer release];
+ temporaryAnnotationTimer = nil;
}
[ownerController setContent:nil];
@@ -2338,6 +2338,10 @@
}
}
+- (void)temporaryAnnotationTimerFired:(NSTimer *)timer {
+ [self removeTemporaryAnnotations];
+}
+
- (void)addAnnotationsForSelection:(PDFSelection *)sel {
NSArray *pages = [sel pages];
int i, iMax = [pages count];
@@ -2365,6 +2369,21 @@
}
}
+- (void)addTemporaryAnnotationForPoint:(NSPoint)point onPage:(PDFPage *)page {
+ NSRect bounds = NSMakeRect(point.x - 2.0, point.y - 2.0, 4.0, 4.0);
+ SKPDFAnnotationTemporary *circle = [[SKPDFAnnotationTemporary alloc]
initWithBounds:bounds];
+ NSColor *color = [[NSUserDefaults standardUserDefaults]
colorForKey:SKSearchHighlightColorKey];
+
+ [self removeTemporaryAnnotations];
+ [circle setColor:color];
+ [circle setInteriorColor:color];
+ [page addAnnotation:circle];
+ [pdfView setNeedsDisplayForAnnotation:circle];
+ [circle release];
+ CFSetAddValue(temporaryAnnotations, (void *)circle);
+ temporaryAnnotationTimer = [[NSTimer scheduledTimerWithTimeInterval:10
target:self selector:@selector(temporaryAnnotationTimerFired:) userInfo:NULL
repeats:NO] retain];
+}
+
static void removeTemporaryAnnotations(const void *annotation, void *context)
{
SKMainWindowController *wc = (SKMainWindowController *)context;
@@ -2375,18 +2394,14 @@
}
- (void)removeTemporaryAnnotations {
- [findTimer invalidate];
- [findTimer release];
- findTimer = nil;
+ [temporaryAnnotationTimer invalidate];
+ [temporaryAnnotationTimer release];
+ temporaryAnnotationTimer = nil;
// for long documents, this is much faster than iterating all pages and
sending -isTemporaryAnnotation to each one
CFSetApplyFunction(temporaryAnnotations, removeTemporaryAnnotations, self);
CFSetRemoveAllValues(temporaryAnnotations);
}
-- (void)findTimerFired:(NSTimer *)timer {
- [self removeTemporaryAnnotations];
-}
-
- (void)displaySearchResultsForString:(NSString *)string {
if (NSWidth([leftSideContentBox frame]) <= 0.0)
[self toggleLeftSidePane:self];
@@ -2435,9 +2450,11 @@
[pdfView setCurrentSelection:selection];
[pdfView scrollSelectionToVisible:self];
[findTableView deselectAll:self];
- [self removeTemporaryAnnotations];
- [self addAnnotationsForSelection:selection];
- findTimer = [[NSTimer scheduledTimerWithTimeInterval:10 target:self
selector:@selector(findTimerFired:) userInfo:NULL repeats:NO] retain];
+ if ([[NSUserDefaults standardUserDefaults]
boolForKey:SKShouldHighlightSearchResultsKey]) {
+ [self removeTemporaryAnnotations];
+ [self addAnnotationsForSelection:selection];
+ temporaryAnnotationTimer = [[NSTimer
scheduledTimerWithTimeInterval:10 target:self
selector:@selector(temporaryAnnotationTimerFired:) userInfo:NULL repeats:NO]
retain];
+ }
} else {
NSBeep();
}
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: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit