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

Reply via email to