• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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 #import <Cocoa/Cocoa.h>
6 
7 #include <string>
8 
9 #include "base/callback.h"
10 #include "base/gtest_prod_util.h"
11 #include "base/mac/scoped_nsobject.h"
12 #include "base/strings/string16.h"
13 #include "chrome/browser/ui/screen_capture_notification_ui.h"
14 
15 // Controller for the screen capture notification window which allows the user
16 // to quickly stop screen capturing.
17 @interface ScreenCaptureNotificationController
18     : NSWindowController<NSWindowDelegate> {
19  @private
20   base::Closure stop_callback_;
21   base::scoped_nsobject<NSButton> stopButton_;
22 }
23 
24 - (id)initWithCallback:(const base::Closure&)stop_callback
25                   text:(const base::string16&)text;
26 - (void)stopSharing:(id)sender;
27 
28 @end
29 
30 class ScreenCaptureNotificationUICocoa : public ScreenCaptureNotificationUI {
31  public:
32   explicit ScreenCaptureNotificationUICocoa(const base::string16& text);
33   virtual ~ScreenCaptureNotificationUICocoa();
34 
35   // ScreenCaptureNotificationUI interface.
36   virtual void OnStarted(const base::Closure& stop_callback) OVERRIDE;
37 
38  private:
39   friend class ScreenCaptureNotificationUICocoaTest;
40 
41   const base::string16 text_;
42   base::scoped_nsobject<ScreenCaptureNotificationController> windowController_;
43 
44   DISALLOW_COPY_AND_ASSIGN(ScreenCaptureNotificationUICocoa);
45 };
46