• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_base_export.h"
16 
17 UI_BASE_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_BASE_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_BASE_EXPORT base::string16 GetFindPboardText();
58 
59 #endif  // UI_BASE_COCOA_FIND_PASTEBOARD_H_
60