Index: remoting/host/it2me/it2me_confirmation_dialog_chromeos.cc |
diff --git a/remoting/host/it2me/it2me_confirmation_dialog_chromeos.cc b/remoting/host/it2me/it2me_confirmation_dialog_chromeos.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d54e7a876c3f01f17a4b4c2926003db20d47e925 |
--- /dev/null |
+++ b/remoting/host/it2me/it2me_confirmation_dialog_chromeos.cc |
@@ -0,0 +1,64 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/bind.h" |
+#include "base/callback_helpers.h" |
+#include "base/location.h" |
+#include "base/memory/weak_ptr.h" |
+#include "base/single_thread_task_runner.h" |
+#include "base/thread_task_runner_handle.h" |
+#include "remoting/base/string_resources.h" |
+#include "remoting/host/chromeos/message_box.h" |
+#include "remoting/host/it2me/it2me_confirmation_dialog.h" |
+#include "ui/base/l10n/l10n_util.h" |
+ |
+namespace remoting { |
+ |
+class It2MeConfirmationDialogChromeOS : public It2MeConfirmationDialog { |
+ public: |
+ It2MeConfirmationDialogChromeOS(); |
+ ~It2MeConfirmationDialogChromeOS() override; |
+ |
+ void Show(const ResultCallback& callback) override; |
+ |
+ private: |
+ void OnMessageBoxResult(MessageBox::Result result); |
+ |
+ scoped_ptr<MessageBox> message_box_; |
+ ResultCallback callback_; |
+}; |
+ |
+It2MeConfirmationDialogChromeOS::It2MeConfirmationDialogChromeOS() {} |
+ |
+It2MeConfirmationDialogChromeOS::~It2MeConfirmationDialogChromeOS() {} |
+ |
+void It2MeConfirmationDialogChromeOS::Show(const ResultCallback& callback) { |
+ callback_ = callback; |
+ |
+ message_box_.reset(new MessageBox( |
+ l10n_util::GetStringUTF16(IDS_SHARE_CONFIRM_DIALOG_MESSAGE), |
+ base::string16(), |
+ l10n_util::GetStringUTF16(IDS_SHARE_CONFIRM_DIALOG_CONFIRM), |
+ l10n_util::GetStringUTF16(IDS_SHARE_CONFIRM_DIALOG_DECLINE), |
+ base::Bind(&It2MeConfirmationDialogChromeOS::OnMessageBoxResult, |
+ base::Unretained(this)))); |
+ |
+ message_box_->Show(); |
+} |
+ |
+void It2MeConfirmationDialogChromeOS::OnMessageBoxResult( |
+ MessageBox::Result result) { |
+ static_assert( |
+ Result::OK == static_cast<Result>(MessageBox::Result::OK) && |
+ Result::CANCEL == static_cast<Result>(MessageBox::Result::CANCEL), |
+ "MessageBox::Result and Result must declare the same values."); |
+ base::ResetAndReturn(&callback_).Run(static_cast<Result>(result)); |
+} |
+ |
+scoped_ptr<It2MeConfirmationDialog> It2MeConfirmationDialogFactory::Create() { |
+ return scoped_ptr<It2MeConfirmationDialog>( |
+ new It2MeConfirmationDialogChromeOS()); |
+} |
+ |
+} // namespace remoting |