Home | History | Annotate | Download | only in cocoa
      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