Revision: 2708 http://skim-app.svn.sourceforge.net/skim-app/?rev=2708&view=rev Author: hofman Date: 2007-08-22 16:42:16 -0700 (Wed, 22 Aug 2007)
Log Message: ----------- Add type-select helper to pdfview to quickly switch pages. Share the one from the thumbnail table, as it does exactly the same thing, and cannot be used at the same time. Modified Paths: -------------- trunk/SKMainWindowController.m trunk/SKPDFView.h trunk/SKPDFView.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2007-08-22 22:40:31 UTC (rev 2707) +++ trunk/SKMainWindowController.m 2007-08-22 23:42:16 UTC (rev 2708) @@ -380,6 +380,7 @@ [typeSelectHelper setMatchOption:SKFullStringMatch]; [typeSelectHelper setDataSource:self]; [thumbnailTableView setTypeSelectHelper:typeSelectHelper]; + [pdfView setTypeSelectHelper:typeSelectHelper]; typeSelectHelper = [[[SKTypeSelectHelper alloc] init] autorelease]; [typeSelectHelper setMatchOption:SKSubstringMatch]; @@ -3527,7 +3528,7 @@ #pragma mark SKTypeSelectHelper datasource protocol - (NSArray *)typeSelectHelperSelectionItems:(SKTypeSelectHelper *)typeSelectHelper { - if ([typeSelectHelper isEqual:[thumbnailTableView typeSelectHelper]]) { + if ([typeSelectHelper isEqual:[thumbnailTableView typeSelectHelper]] || [typeSelectHelper isEqual:[pdfView typeSelectHelper]]) { return pageLabels; } else if ([typeSelectHelper isEqual:[noteOutlineView typeSelectHelper]]) { return [[noteArrayController arrangedObjects] valueForKey:@"contents"]; @@ -3542,7 +3543,7 @@ } - (unsigned int)typeSelectHelperCurrentlySelectedIndex:(SKTypeSelectHelper *)typeSelectHelper { - if ([typeSelectHelper isEqual:[thumbnailTableView typeSelectHelper]]) { + if ([typeSelectHelper isEqual:[thumbnailTableView typeSelectHelper]] || [typeSelectHelper isEqual:[pdfView typeSelectHelper]]) { return [[thumbnailTableView selectedRowIndexes] lastIndex]; } else if ([typeSelectHelper isEqual:[noteOutlineView typeSelectHelper]]) { return [[noteArrayController arrangedObjects] indexOfObject:[self selectedNote]]; @@ -3554,7 +3555,7 @@ } - (void)typeSelectHelper:(SKTypeSelectHelper *)typeSelectHelper selectItemAtIndex:(unsigned int)itemIndex { - if ([typeSelectHelper isEqual:[thumbnailTableView typeSelectHelper]]) { + if ([typeSelectHelper isEqual:[thumbnailTableView typeSelectHelper]] || [typeSelectHelper isEqual:[pdfView typeSelectHelper]]) { [self setPageNumber:itemIndex + 1]; } else if ([typeSelectHelper isEqual:[noteOutlineView typeSelectHelper]]) { int row = [noteOutlineView rowForItem:[[noteArrayController arrangedObjects] objectAtIndex:itemIndex]]; @@ -3565,7 +3566,7 @@ } - (void)typeSelectHelper:(SKTypeSelectHelper *)typeSelectHelper updateSearchString:(NSString *)searchString { - if ([typeSelectHelper isEqual:[thumbnailTableView typeSelectHelper]]) { + if ([typeSelectHelper isEqual:[thumbnailTableView typeSelectHelper]] || [typeSelectHelper isEqual:[pdfView typeSelectHelper]]) { if (searchString) [statusBar setLeftStringValue:[NSString stringWithFormat:NSLocalizedString(@"Go to page: %@", @"Status message"), searchString]]; else Modified: trunk/SKPDFView.h =================================================================== --- trunk/SKPDFView.h 2007-08-22 22:40:31 UTC (rev 2707) +++ trunk/SKPDFView.h 2007-08-22 23:42:16 UTC (rev 2708) @@ -73,7 +73,7 @@ SKLineNote } SKNoteType; [EMAIL PROTECTED] SKReadingBar, SKTransitionController; [EMAIL PROTECTED] SKReadingBar, SKTransitionController, SKTypeSelectHelper; @interface SKPDFView : PDFView { SKToolMode toolMode; @@ -91,6 +91,8 @@ SKTransitionController *transitionController; + SKTypeSelectHelper *typeSelectHelper; + PDFAnnotation *activeAnnotation; PDFAnnotation *highlightAnnotation; PDFAnnotationTextWidget *editAnnotation; @@ -149,6 +151,9 @@ - (BOOL)transitionShouldRestrict; - (void)setTransitionShouldRestrict:(BOOL)flag; +- (SKTypeSelectHelper *)typeSelectHelper; +- (void)setTypeSelectHelper:(SKTypeSelectHelper *)newTypeSelectHelper; + - (IBAction)delete:(id)sender; - (IBAction)autoSelectContent:(id)sender; Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2007-08-22 22:40:31 UTC (rev 2707) +++ trunk/SKPDFView.m 2007-08-22 23:42:16 UTC (rev 2708) @@ -55,6 +55,7 @@ #import "SKLineWell.h" #import <Carbon/Carbon.h> #import "NSGeometry_SKExtensions.h" +#import "SKTypeSelectHelper.h" NSString *SKPDFViewToolModeChangedNotification = @"SKPDFViewToolModeChangedNotification"; NSString *SKPDFViewAnnotationModeChangedNotification = @"SKPDFViewAnnotationModeChangedNotification"; @@ -162,6 +163,8 @@ transitionController = nil; + typeSelectHelper = nil; + spellingTag = [NSSpellChecker uniqueSpellDocumentTag]; hideNotes = NO; @@ -229,6 +232,8 @@ [[SKPDFHoverWindow sharedHoverWindow] orderOut:self]; [self removeHoverRects]; [hoverRects release]; + [typeSelectHelper setDataSource:nil]; + [typeSelectHelper release]; [transitionController release]; [navWindow release]; [readingBar release]; @@ -577,6 +582,17 @@ [[self transitionController] setShouldRestrict:flag]; } +- (SKTypeSelectHelper *)typeSelectHelper { + return typeSelectHelper; +} + +- (void)setTypeSelectHelper:(SKTypeSelectHelper *)newTypeSelectHelper { + if (typeSelectHelper != newTypeSelectHelper) { + [typeSelectHelper release]; + typeSelectHelper = [newTypeSelectHelper retain]; + } +} + #pragma mark Reading bar - (BOOL)hasReadingBar { @@ -922,6 +938,10 @@ [self setAnnotationMode:SKStrikeOutNote]; } else if (isPresentation == NO && [self toolMode] == SKNoteToolMode && modifiers == 0 && eventChar == 'l') { [self setAnnotationMode:SKLineNote]; + } else if (isPresentation == NO && typeSelectHelper && modifiers == 0 && [[NSCharacterSet alphanumericCharacterSet] characterIsMember:eventChar]) { + [typeSelectHelper processKeyDownCharacter:eventChar]; + } else if (isPresentation == NO && [typeSelectHelper cyclesSimilarResults] && modifiers == 0 && eventChar == '/') { + [typeSelectHelper repeatSearch]; } else { [super keyDown:theEvent]; } 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 Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit