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.
5 #ifndef UI_BASE_COCOA_FIND_PASTEBOARD_H_
6 #define UI_BASE_COCOA_FIND_PASTEBOARD_H_
8 #include "base/strings/string16.h"
12 #import <Cocoa/Cocoa.h>
14 #include "base/mac/scoped_nsobject.h"
15 #include "ui/base/ui_base_export.h"
17 UI_BASE_EXPORT
extern NSString
* kFindPasteboardChangedNotification
;
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.
25 // This is not thread-safe and must be used on the main thread.
27 // This is supposed to be a singleton.
29 @interface FindPasteboard
: NSObject
{
31 base::scoped_nsobject
<NSString
> findText_
;
34 // Returns the singleton instance of this class.
35 + (FindPasteboard
*)sharedInstance
;
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
;
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
;
47 @interface
FindPasteboard (TestingAPI
)
48 - (void)loadTextFromPasteboard
:(NSNotification
*)notification
;
50 // This methods is meant to be overridden in tests.
51 - (NSPasteboard
*)findPboard
;
56 // Also provide a c++ interface
57 UI_BASE_EXPORT
base::string16
GetFindPboardText();
59 #endif // UI_BASE_COCOA_FIND_PASTEBOARD_H_