Commit a02af5e6 authored by estade's avatar estade Committed by Commit bot

Update two chromeos system dialogs to reuse more DialogDelegateView

functionality.

Screenshots on the bug - this is so vastly better looking IMO as to not
need UI review.

BUG=658410,633986

Review-Url: https://chromiumcodereview.appspot.com/2439863004
Cr-Commit-Position: refs/heads/master@{#426934}
parent a02a2039
......@@ -5710,10 +5710,11 @@ Battery full
Multiple sign-in
</message>
<message name="IDS_MULTIPROFILES_INTRO_MESSAGE" desc="Content of the multi-profiles intro dialog shown when the user adds another user in multi-profiles mode.">
This feature allows you to access quickly any signed-in user without requiring a password.
This feature allows you to quickly access any signed-in user without requiring a password.
Only use this feature with accounts you trust.
</message>
<message name="IDS_MULTIPROFILES_INTRO_EXPLANATION" desc="Content of the multi-profiles intro dialog shown when the user adds another user in multi-profiles mode.">
Only use this feature with accounts you trust.
</message>
<message name="IDS_MULTIPROFILES_INTRO_NOSHOW_AGAIN" desc="In multi-profiles intro dialog, text for no-show-again option.">
Got it, don't show me this again.
......
......@@ -1032,9 +1032,8 @@ are declared in build/common.gypi.
</message>
<message name="IDS_VISIT_DESKTOP_WARNING_MESSAGE" desc="The message on the dialog which warns user about oddities which can be seen when a window gets moved to another user desktop.">
Moving windows to another desktop may result in unexpected behaviour.
</message>
<message name="IDS_VISIT_DESKTOP_WARNING_EXPLANATION" desc="The explanation message on the dialog which warns user about oddities which can be seen when a window gets moved to another user desktop.">
Subsequent notifications, windows and dialogs may be split between desktops.
Subsequent notifications, windows and dialogs may be split between desktops.
</message>
<message name="IDS_VISIT_DESKTOP_WARNING_SHOW_DISMISS" desc="Label for checkbox dismissing show of teleportation warning dialog.">
Got it, don't show me again.
......
......@@ -9,9 +9,11 @@
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/views/border.h"
#include "ui/views/controls/button/checkbox.h"
#include "ui/views/controls/label.h"
#include "ui/views/layout/grid_layout.h"
#include "ui/views/layout/fill_layout.h"
#include "ui/views/layout/layout_constants.h"
#include "ui/views/widget/widget.h"
#include "ui/views/window/dialog_delegate.h"
......@@ -19,14 +21,8 @@ namespace chromeos {
namespace {
// Default width/height of the dialog.
const int kDefaultWidth = 600;
const int kDefaultHeight = 250;
const int kPaddingToMessage = 20;
const int kPaddingToCheckBox = 50;
const int kInset = 40;
const int kTopInset = 10;
// Default width of the dialog.
const int kDefaultWidth = 448;
////////////////////////////////////////////////////////////////////////////////
// Dialog for multi-profiles introduction.
......@@ -39,9 +35,11 @@ class MultiprofilesIntroView : public views::DialogDelegateView {
// views::DialogDelegate overrides.
bool Accept() override;
View* CreateExtraView() override;
// views::WidgetDelegate overrides.
ui::ModalType GetModalType() const override;
base::string16 GetWindowTitle() const override;
// views::View overrides.
gfx::Size GetPreferredSize() const override;
......@@ -49,7 +47,7 @@ class MultiprofilesIntroView : public views::DialogDelegateView {
private:
void InitDialog();
std::unique_ptr<views::Checkbox> no_show_checkbox_;
views::Checkbox* no_show_checkbox_;
const base::Callback<void(bool)> on_accept_;
DISALLOW_COPY_AND_ASSIGN(MultiprofilesIntroView);
......@@ -71,9 +69,9 @@ void MultiprofilesIntroView::ShowDialog(
const base::Callback<void(bool)> on_accept) {
MultiprofilesIntroView* dialog_view =
new MultiprofilesIntroView(on_accept);
dialog_view->InitDialog();
views::DialogDelegate::CreateDialogWidget(
dialog_view, ash::Shell::GetTargetRootWindow(), NULL);
dialog_view->InitDialog();
views::Widget* widget = dialog_view->GetWidget();
DCHECK(widget);
widget->Show();
......@@ -84,69 +82,39 @@ bool MultiprofilesIntroView::Accept() {
return true;
}
views::View* MultiprofilesIntroView::CreateExtraView() {
no_show_checkbox_ = new views::Checkbox(
l10n_util::GetStringUTF16(IDS_VISIT_DESKTOP_WARNING_SHOW_DISMISS));
no_show_checkbox_->SetChecked(true);
return no_show_checkbox_;
}
ui::ModalType MultiprofilesIntroView::GetModalType() const {
return ui::MODAL_TYPE_SYSTEM;
}
base::string16 MultiprofilesIntroView::GetWindowTitle() const {
return l10n_util::GetStringUTF16(IDS_MULTIPROFILES_INTRO_HEADLINE);
}
gfx::Size MultiprofilesIntroView::GetPreferredSize() const {
return gfx::Size(kDefaultWidth, kDefaultHeight);
return gfx::Size(
kDefaultWidth,
GetLayoutManager()->GetPreferredHeightForWidth(this, kDefaultWidth));
}
void MultiprofilesIntroView::InitDialog() {
const gfx::Insets kDialogInsets(kTopInset, kInset, kInset, kInset);
// Create the views and layout manager and set them up.
views::GridLayout* grid_layout = views::GridLayout::CreatePanel(this);
grid_layout->SetInsets(kDialogInsets);
views::ColumnSet* column_set = grid_layout->AddColumnSet(0);
column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1,
views::GridLayout::USE_PREF, 0, 0);
views::Label* title_label_ = new views::Label(
l10n_util::GetStringUTF16(IDS_MULTIPROFILES_INTRO_HEADLINE));
title_label_->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList(
ui::ResourceBundle::MediumBoldFont));
title_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
grid_layout->StartRow(0, 0);
grid_layout->AddView(title_label_);
grid_layout->AddPaddingRow(0, kPaddingToMessage);
// Explanation string.
SetBorder(views::Border::CreateEmptyBorder(views::kPanelVertMargin,
views::kButtonHEdgeMarginNew, 0,
views::kButtonHEdgeMarginNew));
SetLayoutManager(new views::FillLayout());
// Explanation string
views::Label* label = new views::Label(
l10n_util::GetStringUTF16(IDS_MULTIPROFILES_INTRO_MESSAGE));
label->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList(
ui::ResourceBundle::MediumFont));
label->SetMultiLine(true);
label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
label->SetAllowCharacterBreak(true);
grid_layout->StartRow(0, 0);
grid_layout->AddView(label);
// Next explanation string.
grid_layout->AddPaddingRow(0, kPaddingToMessage);
views::Label* lower_label = new views::Label(
l10n_util::GetStringUTF16(IDS_MULTIPROFILES_INTRO_EXPLANATION));
lower_label->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList(
ui::ResourceBundle::MediumFont));
lower_label->SetMultiLine(true);
lower_label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
lower_label->SetAllowCharacterBreak(true);
grid_layout->StartRow(0, 0);
grid_layout->AddView(lower_label);
// No-show again checkbox.
grid_layout->AddPaddingRow(0, kPaddingToCheckBox);
no_show_checkbox_.reset(new views::Checkbox(
l10n_util::GetStringUTF16(IDS_MULTIPROFILES_INTRO_NOSHOW_AGAIN)));
no_show_checkbox_->SetChecked(true);
no_show_checkbox_->AdjustFontSize(ui::ResourceBundle::kMediumFontDelta);
no_show_checkbox_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
grid_layout->StartRow(0, 0);
grid_layout->AddView(no_show_checkbox_.get());
SetLayoutManager(grid_layout);
Layout();
AddChildView(label);
}
} // namespace
......
......@@ -9,9 +9,11 @@
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/views/border.h"
#include "ui/views/controls/button/checkbox.h"
#include "ui/views/controls/label.h"
#include "ui/views/layout/grid_layout.h"
#include "ui/views/layout/fill_layout.h"
#include "ui/views/layout/layout_constants.h"
#include "ui/views/widget/widget.h"
#include "ui/views/window/dialog_delegate.h"
......@@ -19,14 +21,8 @@ namespace chromeos {
namespace {
// Default width/height of the dialog.
const int kDefaultWidth = 600;
const int kDefaultHeight = 250;
const int kPaddingToMessage = 30;
const int kPaddingToCheckBox = 50;
const int kInset = 40;
const int kTopInset = 10;
// Default width of the dialog.
const int kDefaultWidth = 448;
////////////////////////////////////////////////////////////////////////////////
// Dialog for multi-profiles teleport warning.
......@@ -39,9 +35,11 @@ class TeleportWarningView : public views::DialogDelegateView {
// views::DialogDelegate overrides.
bool Accept() override;
View* CreateExtraView() override;
// views::WidgetDelegate overrides.
ui::ModalType GetModalType() const override;
base::string16 GetWindowTitle() const override;
// views::View overrides.
gfx::Size GetPreferredSize() const override;
......@@ -49,7 +47,7 @@ class TeleportWarningView : public views::DialogDelegateView {
private:
void InitDialog();
std::unique_ptr<views::Checkbox> no_show_checkbox_;
views::Checkbox* no_show_checkbox_;
const base::Callback<void(bool)> on_accept_;
DISALLOW_COPY_AND_ASSIGN(TeleportWarningView);
......@@ -71,9 +69,9 @@ void TeleportWarningView::ShowDialog(
const base::Callback<void(bool)>& on_accept) {
TeleportWarningView* dialog_view =
new TeleportWarningView(on_accept);
dialog_view->InitDialog();
views::DialogDelegate::CreateDialogWidget(
dialog_view, ash::Shell::GetTargetRootWindow(), NULL);
dialog_view->InitDialog();
views::Widget* widget = dialog_view->GetWidget();
DCHECK(widget);
widget->Show();
......@@ -84,71 +82,39 @@ bool TeleportWarningView::Accept() {
return true;
}
views::View* TeleportWarningView::CreateExtraView() {
no_show_checkbox_ = new views::Checkbox(
l10n_util::GetStringUTF16(IDS_VISIT_DESKTOP_WARNING_SHOW_DISMISS));
no_show_checkbox_->SetChecked(true);
return no_show_checkbox_;
}
ui::ModalType TeleportWarningView::GetModalType() const {
return ui::MODAL_TYPE_SYSTEM;
}
base::string16 TeleportWarningView::GetWindowTitle() const {
return l10n_util::GetStringUTF16(IDS_VISIT_DESKTOP_WARNING_TITLE);
}
gfx::Size TeleportWarningView::GetPreferredSize() const {
return gfx::Size(kDefaultWidth, kDefaultHeight);
return gfx::Size(
kDefaultWidth,
GetLayoutManager()->GetPreferredHeightForWidth(this, kDefaultWidth));
}
void TeleportWarningView::InitDialog() {
const gfx::Insets kDialogInsets(kTopInset, kInset, kInset, kInset);
// Create the views and layout manager and set them up.
views::GridLayout* grid_layout = views::GridLayout::CreatePanel(this);
grid_layout->SetInsets(kDialogInsets);
views::ColumnSet* column_set = grid_layout->AddColumnSet(0);
column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1,
views::GridLayout::USE_PREF, 0, 0);
// Title
views::Label* title_label_ = new views::Label(
l10n_util::GetStringUTF16(IDS_VISIT_DESKTOP_WARNING_TITLE));
title_label_->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList(
ui::ResourceBundle::MediumBoldFont));
title_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
grid_layout->StartRow(0, 0);
grid_layout->AddView(title_label_);
grid_layout->AddPaddingRow(0, kPaddingToMessage);
SetBorder(views::Border::CreateEmptyBorder(views::kPanelVertMargin,
views::kButtonHEdgeMarginNew, 0,
views::kButtonHEdgeMarginNew));
SetLayoutManager(new views::FillLayout());
// Explanation string
views::Label* label = new views::Label(
l10n_util::GetStringUTF16(IDS_VISIT_DESKTOP_WARNING_MESSAGE));
label->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList(
ui::ResourceBundle::MediumFont));
label->SetMultiLine(true);
label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
label->SetAllowCharacterBreak(true);
grid_layout->StartRow(0, 0);
grid_layout->AddView(label);
// Next explanation string
grid_layout->AddPaddingRow(0, kPaddingToMessage);
views::Label* lower_label = new views::Label(
l10n_util::GetStringUTF16(IDS_VISIT_DESKTOP_WARNING_EXPLANATION));
lower_label->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList(
ui::ResourceBundle::MediumFont));
lower_label->SetMultiLine(true);
lower_label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
lower_label->SetAllowCharacterBreak(true);
grid_layout->StartRow(0, 0);
grid_layout->AddView(lower_label);
// No-show again checkbox
grid_layout->AddPaddingRow(0, kPaddingToCheckBox);
no_show_checkbox_.reset(new views::Checkbox(
l10n_util::GetStringUTF16(IDS_VISIT_DESKTOP_WARNING_SHOW_DISMISS)));
no_show_checkbox_->SetChecked(true);
no_show_checkbox_->SetFontList(
ui::ResourceBundle::GetSharedInstance().GetFontList(
ui::ResourceBundle::MediumFont));
grid_layout->StartRow(0, 0);
grid_layout->AddView(no_show_checkbox_.get());
SetLayoutManager(grid_layout);
Layout();
AddChildView(label);
}
} // namespace
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment