Revision: 7283
http://skim-app.svn.sourceforge.net/skim-app/?rev=7283&view=rev
Author: hofman
Date: 2011-06-18 11:33:09 +0000 (Sat, 18 Jun 2011)
Log Message:
-----------
delegate protocol for findcontroller callback
Modified Paths:
--------------
trunk/SKFindController.h
trunk/SKFindController.m
trunk/SKMainWindowController.h
trunk/SKMainWindowController.m
trunk/SKMainWindowController_UI.m
Modified: trunk/SKFindController.h
===================================================================
--- trunk/SKFindController.h 2011-06-18 11:10:05 UTC (rev 7282)
+++ trunk/SKFindController.h 2011-06-18 11:33:09 UTC (rev 7283)
@@ -39,25 +39,25 @@
#import <Cocoa/Cocoa.h>
#import "SKViewController.h"
-@class SKMainWindowController;
+@protocol SKFindControllerDelegate;
@interface SKFindController : SKViewController {
+ id <SKFindControllerDelegate> delegate;
NSSearchField *findField;
NSButton *doneButton;
NSObjectController *ownerController;
NSString *findString;
NSInteger lastChangeCount;
NSTextView *fieldEditor;
- SKMainWindowController *mainController;
BOOL animating;
}
@property (nonatomic, retain) IBOutlet NSSearchField *findField;
@property (nonatomic, retain) IBOutlet NSButton *doneButton;
@property (nonatomic, retain) IBOutlet NSObjectController *ownerController;
+@property (nonatomic, assign) id <SKFindControllerDelegate> delegate;
@property (nonatomic, retain) NSString *findString;
@property (nonatomic, readonly) NSInteger findOptions;
-@property (nonatomic, assign) SKMainWindowController *mainController;
@property (nonatomic, readonly) NSTextView *fieldEditor;
- (void)toggleAboveView:(NSView *)view animate:(BOOL)animate;
@@ -70,3 +70,8 @@
- (IBAction)toggleCaseInsensitiveFind:(id)sender;
@end
+
+
+@protocol SKFindControllerDelegate <NSObject>
+- (void)findString:(NSString *)string options:(NSInteger)options;
+@end
Modified: trunk/SKFindController.m
===================================================================
--- trunk/SKFindController.m 2011-06-18 11:10:05 UTC (rev 7282)
+++ trunk/SKFindController.m 2011-06-18 11:33:09 UTC (rev 7283)
@@ -43,12 +43,11 @@
#import "NSGeometry_SKExtensions.h"
#import "NSSegmentedControl_SKExtensions.h"
#import "NSMenu_SKExtensions.h"
-#import "SKMainWindowController.h"
@implementation SKFindController
-@synthesize findField, doneButton, ownerController, findString, mainController;
+@synthesize delegate, findField, doneButton, ownerController, findString;
@dynamic findOptions, fieldEditor;
- (void)dealloc {
@@ -182,10 +181,10 @@
}
}
-- (void)setMainController:(SKMainWindowController *)newMainController {
- if (mainController && newMainController == nil)
+- (void)setDelegate:(id <SKFindControllerDelegate>)newDelegate {
+ if (delegate && newDelegate == nil)
[ownerController setContent:nil];
- mainController = newMainController;
+ delegate = newDelegate;
}
- (NSTextView *)fieldEditor {
@@ -200,7 +199,7 @@
[ownerController commitEditing];
if ([findString length]) {
NSInteger findOptions = [[NSUserDefaults standardUserDefaults]
boolForKey:SKCaseInsensitiveFindKey] ? NSCaseInsensitiveSearch : 0;
- [mainController findString:findString options:findOptions |
backForwardOption];
+ [delegate findString:findString options:findOptions |
backForwardOption];
[self updateFindPboard];
}
}
Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h 2011-06-18 11:10:05 UTC (rev 7282)
+++ trunk/SKMainWindowController.h 2011-06-18 11:33:09 UTC (rev 7283)
@@ -39,6 +39,7 @@
#import <Cocoa/Cocoa.h>
#import "SKSnapshotWindowController.h"
#import "SKThumbnail.h"
+#import "SKFindController.h"
#import "NSDocument_SKExtensions.h"
#import <IOKit/pwr_mgt/IOPMLib.h>
@@ -70,7 +71,7 @@
@class SKPDFView, SKSecondaryPDFView, SKStatusBar, SKFindController,
SKSplitView, SKSideWindow;
@class SKLeftSideViewController, SKRightSideViewController,
SKMainToolbarController, SKProgressController,
SKPresentationOptionsSheetController, SKNoteTypeSheetController;
-@interface SKMainWindowController : NSWindowController
<SKSnapshotWindowControllerDelegate, SKThumbnailDelegate> {
+@interface SKMainWindowController : NSWindowController
<SKSnapshotWindowControllerDelegate, SKThumbnailDelegate,
SKFindControllerDelegate> {
SKSplitView *splitView;
NSView *centerContentView;
@@ -286,7 +287,6 @@
- (void)displaySnapshotViewAnimating:(BOOL)animate;
- (PDFSelection *)findString:(NSString *)string fromSelection:(PDFSelection
*)selection withOptions:(NSInteger)options;
-- (void)findString:(NSString *)string options:(NSInteger)options;
- (void)showFindBar;
- (NSInteger)outlineRowForPageIndex:(NSUInteger)pageIndex;
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2011-06-18 11:10:05 UTC (rev 7282)
+++ trunk/SKMainWindowController.m 2011-06-18 11:33:09 UTC (rev 7283)
@@ -101,7 +101,6 @@
#import "PDFDocument_SKExtensions.h"
#import "SKPDFPage.h"
#import "NSScreen_SKExtensions.h"
-#import "SKFindController.h"
#define MULTIPLICATION_SIGN_CHARACTER 0x00d7
@@ -1717,7 +1716,7 @@
- (void)showFindBar {
if (findController == nil) {
findController = [[SKFindController alloc] init];
- [findController setMainController:self];
+ [findController setDelegate:self];
}
if ([[findController view] window] == nil)
[findController toggleAboveView:(interactionMode == SKFullScreenMode ?
pdfSplitView : splitView) animate:YES];
Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m 2011-06-18 11:10:05 UTC (rev 7282)
+++ trunk/SKMainWindowController_UI.m 2011-06-18 11:33:09 UTC (rev 7283)
@@ -240,7 +240,7 @@
[leftSideController setMainController:nil];
[rightSideController setMainController:nil];
[toolbarController setMainController:nil];
- [findController setMainController:nil];
+ [findController setDelegate:nil]; // this breaks the retain loop from
binding
}
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit