1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef UI_BASE_COCOA_FIND_PASTEBOARD_H_ 6 #define UI_BASE_COCOA_FIND_PASTEBOARD_H_ 7 8 #include "base/strings/string16.h" 9 10 #ifdef __OBJC__ 11 12 #import <Cocoa/Cocoa.h> 13 14 #include "base/mac/scoped_nsobject.h" 15 #include "ui/base/ui_export.h" 16 17 UI_EXPORT extern NSString* kFindPasteboardChangedNotification; 18 19 // Manages the find pasteboard. Use this to copy text to the find pasteboard, 20 // to get the text currently on the find pasteboard, and to receive 21 // notifications when the text on the find pasteboard has changed. You should 22 // always use this class instead of accessing 23 // [NSPasteboard pasteboardWithName:NSFindPboard] directly. 24 // 25 // This is not thread-safe and must be used on the main thread. 26 // 27 // This is supposed to be a singleton. 28 UI_EXPORT 29 @interface FindPasteboard : NSObject { 30 @private 31 base::scoped_nsobject<NSString> findText_; 32 } 33 34 // Returns the singleton instance of this class. 35 + (FindPasteboard*)sharedInstance; 36 37 // Returns the current find text. This is never nil; if there is no text on the 38 // find pasteboard, this returns an empty string. 39 - (NSString*)findText; 40 41 // Sets the current find text to |newText| and sends a 42 // |kFindPasteboardChangedNotification| to the default notification center if 43 // it the new text different from the current text. |newText| must not be nil. 44 - (void)setFindText:(NSString*)newText; 45 @end 46 47 @interface FindPasteboard (TestingAPI) 48 - (void)loadTextFromPasteboard:(NSNotification*)notification; 49 50 // This methods is meant to be overridden in tests. 51 - (NSPasteboard*)findPboard; 52 @end 53 54 #endif // __OBJC__ 55 56 // Also provide a c++ interface 57 UI_EXPORT string16 GetFindPboardText(); 58 59 #endif // UI_BASE_COCOA_FIND_PASTEBOARD_H_ 60