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

Unified Diff: remoting/host/chromeos/message_box.cc

Issue 689093004: Revert of Remote assistance on Chrome OS Part V - It2MeHost Continue Window (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
« no previous file with comments | « remoting/host/chromeos/message_box.h ('k') | remoting/host/continue_window_chromeos.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/chromeos/message_box.cc
diff --git a/remoting/host/chromeos/message_box.cc b/remoting/host/chromeos/message_box.cc
deleted file mode 100644
index e4f8da5274420c6eb2721b7712ab52bc1081b85f..0000000000000000000000000000000000000000
--- a/remoting/host/chromeos/message_box.cc
+++ /dev/null
@@ -1,194 +0,0 @@
-// 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 "remoting/host/chromeos/message_box.h"
-
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/views/controls/message_box_view.h"
-#include "ui/views/widget/widget.h"
-#include "ui/views/window/dialog_delegate.h"
-
-namespace remoting {
-
-// MessageBox::Core creates the dialog using the views::DialogWidget. The
-// DialogWidget is created by the caller but its lifetime is managed by the
-// NativeWidget. The DialogWidget communicates with the caller using the
-//.DialogDelegateView interface, which must remain valid until DeleteDelegate()
-// is called, at which the DialogDelegateView deletes itself.
-//
-// The Core class is introduced to abstract this awkward ownership model. The
-// Core and the MessageBox hold a raw references to each other, which is
-// invalidated when either side are destroyed.
-class MessageBox::Core : public views::DialogDelegateView {
- public:
- Core(const base::string16& title_label,
- const base::string16& message_label,
- const base::string16& ok_label,
- const base::string16& cancel_label,
- ResultCallback result_callback,
- MessageBox* message_box);
-
- // Mirrors the public MessageBox interface.
- void Show();
- void Hide();
-
- // views::DialogDelegateView interface.
- bool Accept() override;
- bool Cancel() override;
- ui::ModalType GetModalType() const override;
- base::string16 GetWindowTitle() const override;
- base::string16 GetDialogButtonLabel(ui::DialogButton button) const override;
-
- // views::WidgetDelegate interface.
- views::View* GetContentsView() override;
- views::Widget* GetWidget() override;
- const views::Widget* GetWidget() const override;
- void DeleteDelegate() override;
-
- // Called by MessageBox::Core when it is destroyed.
- void OnMessageBoxDestroyed();
-
- private:
- const base::string16 title_label_;
- const base::string16 ok_label_;
- const base::string16 cancel_label_;
- ResultCallback result_callback_;
- MessageBox* message_box_;
-
- // Owned by the native widget hierarchy.
- views::MessageBoxView* message_box_view_;
-
- DISALLOW_COPY_AND_ASSIGN(Core);
-};
-
-MessageBox::Core::Core(const base::string16& title_label,
- const base::string16& message_label,
- const base::string16& ok_label,
- const base::string16& cancel_label,
- ResultCallback result_callback,
- MessageBox* message_box)
- : title_label_(title_label),
- ok_label_(ok_label),
- cancel_label_(cancel_label),
- result_callback_(result_callback),
- message_box_(message_box),
- message_box_view_(new views::MessageBoxView(
- views::MessageBoxView::InitParams(message_label))) {
- DCHECK(message_box_);
-}
-
-void MessageBox::Core::Show() {
- // The widget is owned by the NativeWidget. See comments in widget.h.
- views::Widget* widget =
- CreateDialogWidget(this, /* delegate */
- nullptr /* parent window*/,
- nullptr /* parent view */);
-
- if (widget) {
- widget->Show();
- }
-}
-
-void MessageBox::Core::Hide() {
- if (GetWidget()) {
- GetWidget()->Close();
- }
-}
-
-bool MessageBox::Core::Accept() {
- if (!result_callback_.is_null()) {
- base::ResetAndReturn(&result_callback_).Run(OK);
- }
- return true /* close the window*/;
-}
-
-bool MessageBox::Core::Cancel() {
- if (!result_callback_.is_null()) {
- base::ResetAndReturn(&result_callback_).Run(CANCEL);
- }
- return true /* close the window*/;
-}
-
-ui::ModalType MessageBox::Core::GetModalType() const {
- return ui::MODAL_TYPE_SYSTEM;
-}
-
-base::string16 MessageBox::Core::GetWindowTitle() const {
- return title_label_;
-}
-
-base::string16 MessageBox::Core::GetDialogButtonLabel(
- ui::DialogButton button) const {
- switch (button) {
- case ui::DIALOG_BUTTON_OK:
- return ok_label_;
- case ui::DIALOG_BUTTON_CANCEL:
- return cancel_label_;
- default:
- NOTREACHED();
- return base::string16();
- }
-}
-
-views::View* MessageBox::Core::GetContentsView() {
- return message_box_view_;
-}
-
-views::Widget* MessageBox::Core::GetWidget() {
- return message_box_view_->GetWidget();
-}
-
-const views::Widget* MessageBox::Core::GetWidget() const {
- return message_box_view_->GetWidget();
-}
-
-void MessageBox::Core::DeleteDelegate() {
- if (message_box_) {
- message_box_->core_ = nullptr;
- }
- delete this;
-}
-
-void MessageBox::Core::OnMessageBoxDestroyed() {
- DCHECK(message_box_);
- message_box_ = nullptr;
- // The callback should not be invoked after MessageBox is destroyed.
- result_callback_.Reset();
-}
-
-MessageBox::MessageBox(const base::string16& title_label,
- const base::string16& message_label,
- const base::string16& ok_label,
- const base::string16& cancel_label,
- ResultCallback result_callback)
- : core_(new Core(title_label,
- message_label,
- ok_label,
- cancel_label,
- result_callback,
- this)) {
- thread_checker_.DetachFromThread();
-}
-
-MessageBox::~MessageBox() {
- if (core_) {
- core_->OnMessageBoxDestroyed();
- core_->Hide();
- core_ = nullptr;
- }
-}
-
-void MessageBox::Show() {
- DCHECK(thread_checker_.CalledOnValidThread());
- core_->Show();
-}
-
-void MessageBox::Hide() {
- DCHECK(thread_checker_.CalledOnValidThread());
- if (core_) {
- core_->Hide();
- }
-}
-
-} // namespace remoting
« no previous file with comments | « remoting/host/chromeos/message_box.h ('k') | remoting/host/continue_window_chromeos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698