Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: remoting/host/continue_window_mac.mm

Issue 13461029: The continue window is owned by the desktop environment now. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/host/continue_window_mac.mm
diff --git a/remoting/host/continue_window_mac.mm b/remoting/host/continue_window_mac.mm
index e7c5144a3db8bc5e342041f4e18564fed46389ab..fe013a0a1b2cac8e88d9e6393a0185966de98b8d 100644
--- a/remoting/host/continue_window_mac.mm
+++ b/remoting/host/continue_window_mac.mm
@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "remoting/host/continue_window.h"
-
#import <Cocoa/Cocoa.h>
#include "base/compiler_specific.h"
@@ -11,22 +9,20 @@
#include "base/mac/scoped_nsautorelease_pool.h"
#include "base/memory/scoped_nsobject.h"
#include "base/strings/sys_string_conversions.h"
+#include "remoting/host/continue_window.h"
#include "remoting/host/ui_strings.h"
-typedef remoting::ContinueWindow::ContinueSessionCallback
- ContinueSessionCallback;
-
// Handles the ContinueWindow.
@interface ContinueWindowMacController : NSObject {
@private
scoped_nsobject<NSMutableArray> shades_;
scoped_nsobject<NSAlert> continue_alert_;
- ContinueSessionCallback callback_;
+ remoting::ContinueWindow* continue_window_;
const remoting::UiStrings* ui_strings_;
}
- (id)initWithUiStrings:(const remoting::UiStrings*)ui_strings
- callback:(const ContinueSessionCallback&)callback;
+ continue_window:(remoting::ContinueWindow*)continue_window;
- (void)show;
- (void)hide;
- (void)onCancel:(id)sender;
@@ -37,45 +33,54 @@ namespace remoting {
// A bridge between C++ and ObjC implementations of ContinueWindow.
// Everything important occurs in ContinueWindowMacController.
-class ContinueWindowMac : public remoting::ContinueWindow {
+class ContinueWindowMac : public ContinueWindow {
public:
- explicit ContinueWindowMac(const UiStrings* ui_strings);
+ explicit ContinueWindowMac(const UiStrings& ui_strings);
virtual ~ContinueWindowMac();
- virtual void Show(const ContinueSessionCallback& callback) OVERRIDE;
- virtual void Hide() OVERRIDE;
+ protected:
+ // ContinueWindow overrides.
+ virtual void ShowUi() OVERRIDE;
+ virtual void HideUi() OVERRIDE;
private:
scoped_nsobject<ContinueWindowMacController> controller_;
- ContinueSessionCallback callback_;
- // Points to the localized strings.
- const UiStrings* ui_strings_;
+ // Localized UI strings.
+ UiStrings ui_strings_;
DISALLOW_COPY_AND_ASSIGN(ContinueWindowMac);
};
-ContinueWindowMac::ContinueWindowMac(const UiStrings* ui_strings)
+ContinueWindowMac::ContinueWindowMac(const UiStrings& ui_strings)
: ui_strings_(ui_strings) {
}
-ContinueWindowMac::~ContinueWindowMac() {}
+ContinueWindowMac::~ContinueWindowMac() {
+ DCHECK(CalledOnValidThread());
+}
+
+void ContinueWindowMac::ShowUi() {
+ DCHECK(CalledOnValidThread());
-void ContinueWindowMac::Show(const ContinueSessionCallback& callback) {
base::mac::ScopedNSAutoreleasePool pool;
controller_.reset(
- [[ContinueWindowMacController alloc] initWithUiStrings:ui_strings_
- callback:callback]);
+ [[ContinueWindowMacController alloc] initWithUiStrings:&ui_strings_
+ continue_window:this]);
[controller_ show];
}
-void ContinueWindowMac::Hide() {
+void ContinueWindowMac::HideUi() {
+ DCHECK(CalledOnValidThread());
+
base::mac::ScopedNSAutoreleasePool pool;
[controller_ hide];
}
-scoped_ptr<ContinueWindow> ContinueWindow::Create(const UiStrings* ui_strings) {
- return scoped_ptr<ContinueWindow>(new ContinueWindowMac(ui_strings));
+// static
+scoped_ptr<HostWindow> HostWindow::CreateContinueWindow(
+ const UiStrings& ui_strings) {
+ return scoped_ptr<HostWindow>(new ContinueWindowMac(ui_strings));
}
} // namespace remoting
@@ -83,9 +88,9 @@ scoped_ptr<ContinueWindow> ContinueWindow::Create(const UiStrings* ui_strings) {
@implementation ContinueWindowMacController
- (id)initWithUiStrings:(const remoting::UiStrings*)ui_strings
- callback:(const ContinueSessionCallback&)callback {
+ continue_window:(remoting::ContinueWindow*)continue_window {
if ((self = [super init])) {
- callback_ = callback;
+ continue_window_ = continue_window;
ui_strings_ = ui_strings;
}
return self;
@@ -160,12 +165,12 @@ scoped_ptr<ContinueWindow> ContinueWindow::Create(const UiStrings* ui_strings) {
- (void)onCancel:(id)sender {
[self hide];
- callback_.Run(false);
+ continue_window_->DisconnectSession();
}
- (void)onContinue:(id)sender {
[self hide];
- callback_.Run(true);
+ continue_window_->ContinueSession();
}
@end

Powered by Google App Engine
This is Rietveld 408576698