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

Unified Diff: ash/display/display_error_dialog.cc

Issue 10986087: Adds DisplayErrorDialog to show the error message of the failure of mirroring to the users. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 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: ash/display/display_error_dialog.cc
diff --git a/ash/display/display_error_dialog.cc b/ash/display/display_error_dialog.cc
new file mode 100644
index 0000000000000000000000000000000000000000..53f859b895e810fbffe923c57ffcaeafa07d8864
--- /dev/null
+++ b/ash/display/display_error_dialog.cc
@@ -0,0 +1,88 @@
+// Copyright (c) 2012 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 "ash/display/display_error_dialog.h"
+
+#include "ash/display/display_controller.h"
+#include "ash/shell.h"
+#include "ash/shell_window_ids.h"
+#include "base/utf_string_conversions.h"
+#include "grit/ash_strings.h"
+#include "ui/aura/window.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/ui_base_types.h"
+#include "ui/gfx/rect.h"
+#include "ui/views/border.h"
+#include "ui/views/controls/label.h"
+#include "ui/views/widget/widget.h"
+
+namespace ash {
+namespace internal {
+namespace {
+
+// The width of the area to show the error message.
+const int kDialogMessageWidthPixel = 300;
+
+// The margin width from the error message to the edge of the dialog.
+const int kDialogMessageMarginWidthPixel = 5;
+
+} // namespace
+
+// static
+void DisplayErrorDialog::ShowDialog() {
+ DisplayController* display_controller =
oshima 2012/10/01 21:45:20 what happens when I tried to mirror while this is
Jun Mukai 2012/10/01 23:59:34 Good point... Added a global variable to make this
+ Shell::GetInstance()->display_controller();
+ gfx::Display* secondary_display = display_controller->GetSecondaryDisplay();
oshima 2012/10/01 21:45:20 SceenAsh::GetSecondaryDisplay()
Jun Mukai 2012/10/01 23:59:34 Done.
+ aura::RootWindow* root_window =
+ display_controller->GetRootWindowForDisplayId(secondary_display->id());
+
+ DisplayErrorDialog* dialog = new DisplayErrorDialog();
+ // Need to specify bounds here since the default bounds will change the parent
+ // to the primary root. Size will be fixed in CenterWindow() below.
+ views::Widget* widget = views::Widget::CreateWindowWithParentAndBounds(
+ dialog,
+ Shell::GetContainer(root_window, kShellWindowId_AlwaysOnTopContainer),
oshima 2012/10/01 21:45:20 can you use Widget::InitParams::keep_on_top?
Jun Mukai 2012/10/01 23:59:34 Done.
+ secondary_display->bounds());
+ widget->GetNativeView()->SetName("DisplayErrorDialog");
+ widget->CenterWindow(widget->GetRootView()->GetPreferredSize());
+ widget->Show();
+}
+
+DisplayErrorDialog::DisplayErrorDialog() {
+ views::View* container = GetContentsView();
+ label_ = new views::Label(
+ l10n_util::GetStringUTF16(IDS_ASH_DISPLAY_FAILURE_ON_MIRRORING));
+ container->AddChildView(label_);
+
+ label_->SetMultiLine(true);
+ label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
+ label_->set_border(views::Border::CreateEmptyBorder(
+ kDialogMessageMarginWidthPixel,
+ kDialogMessageMarginWidthPixel,
+ kDialogMessageMarginWidthPixel,
+ kDialogMessageMarginWidthPixel));
+ label_->SizeToFit(kDialogMessageWidthPixel);
+}
+
+DisplayErrorDialog::~DisplayErrorDialog() {
+}
+
+int DisplayErrorDialog::GetDialogButtons() const {
+ return ui::DIALOG_BUTTON_OK;
+}
+
+ui::ModalType DisplayErrorDialog::GetModalType() const {
+ return ui::MODAL_TYPE_NONE;
+}
+
+views::View* DisplayErrorDialog::GetContentsView() {
+ return this;
+}
+
+gfx::Size DisplayErrorDialog::GetPreferredSize() {
+ return label_->GetPreferredSize();
+}
+
+} // namespace internal
+} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698