Commit 715211d8 authored by Olya Kalitova's avatar Olya Kalitova Committed by Commit Bot

Add images to the PluginVm launcher dialog

Adds images to the PluginVm launcher dialog:
* Add logo image
* Add FPO image
* Add error image

Renames a few of the images so the naming is consistent.
Also replaces title with a big message label as logo image is supposed to be above it.
Proper layout would be added in further CLs.

Test: browser_tests --gtest_filter="PluginVm*"
Bug: 931700
Change-Id: I6fb5e60909a6da50913d5cca96b725a4351748a1
Reviewed-on: https://chromium-review.googlesource.com/c/1477690Reviewed-by: default avatarMitsuru Oshima <oshima@chromium.org>
Reviewed-by: default avatarTimothy Loh <timloh@chromium.org>
Commit-Queue: Olya Kalitova <okalitova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#635460}
parent 4f9317ce
...@@ -131,7 +131,10 @@ ...@@ -131,7 +131,10 @@
<include name="IDR_CROSTINI_MASCOT" file="crostini/crostini_mascot_1x.svg" type="BINDATA" /> <include name="IDR_CROSTINI_MASCOT" file="crostini/crostini_mascot_1x.svg" type="BINDATA" />
<include name="IDR_LINUX_ILLUSTRATION" file="crostini/linux_illustration_2x.png" type="BINDATA" /> <include name="IDR_LINUX_ILLUSTRATION" file="crostini/linux_illustration_2x.png" type="BINDATA" />
<!-- PluginVm icons --> <!-- PluginVm icons -->
<include name="IDR_LOGO_PLUGIN_VM_LAUNCHER" file="plugin_vm/logo_plugin_vm_launcher.png" type="BINDATA" /> <include name="IDR_LOGO_PLUGIN_VM_DEFAULT_32" file="plugin_vm/logo_plugin_vm_default_32.png" type="BINDATA" />
<include name="IDR_LOGO_PLUGIN_VM_DEFAULT_192" file="plugin_vm/logo_plugin_vm_default_192.png" type="BINDATA" />
<include name="IDR_PLUGIN_VM_LAUNCHER" file="plugin_vm/plugin_vm_launcher.png" type="BINDATA" />
<include name="IDR_PLUGIN_VM_LAUNCHER_ERROR" file="plugin_vm/plugin_vm_launcher_error.png" type="BINDATA" />
</if> </if>
</includes> </includes>
</release> </release>
......
...@@ -28,5 +28,5 @@ void PluginVmAppModelBuilder::BuildModel() { ...@@ -28,5 +28,5 @@ void PluginVmAppModelBuilder::BuildModel() {
profile(), model_updater(), GetSyncItem(*kPluginVmTerminalId), profile(), model_updater(), GetSyncItem(*kPluginVmTerminalId),
*kPluginVmTerminalId, kPluginVmTerminalAppName, *kPluginVmTerminalId, kPluginVmTerminalAppName,
ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
IDR_LOGO_PLUGIN_VM_LAUNCHER))); IDR_LOGO_PLUGIN_VM_DEFAULT_192)));
} }
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "chrome/browser/chromeos/plugin_vm/plugin_vm_image_manager_factory.h" #include "chrome/browser/chromeos/plugin_vm/plugin_vm_image_manager_factory.h"
#include "chrome/browser/chromeos/plugin_vm/plugin_vm_util.h" #include "chrome/browser/chromeos/plugin_vm/plugin_vm_util.h"
#include "chrome/browser/ui/views/chrome_layout_provider.h" #include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "chrome/grit/chrome_unscaled_resources.h"
#include "chrome/grit/generated_resources.h" #include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/resource_bundle.h"
...@@ -18,6 +19,7 @@ ...@@ -18,6 +19,7 @@
#include "ui/chromeos/devicetype_utils.h" #include "ui/chromeos/devicetype_utils.h"
#include "ui/strings/grit/ui_strings.h" #include "ui/strings/grit/ui_strings.h"
#include "ui/views/border.h" #include "ui/views/border.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/controls/label.h" #include "ui/views/controls/label.h"
#include "ui/views/controls/progress_bar.h" #include "ui/views/controls/progress_bar.h"
#include "ui/views/layout/box_layout.h" #include "ui/views/layout/box_layout.h"
...@@ -40,11 +42,27 @@ void plugin_vm::ShowPluginVmLauncherView(Profile* profile) { ...@@ -40,11 +42,27 @@ void plugin_vm::ShowPluginVmLauncherView(Profile* profile) {
PluginVmLauncherView::PluginVmLauncherView(Profile* profile) PluginVmLauncherView::PluginVmLauncherView(Profile* profile)
: plugin_vm_image_manager_( : plugin_vm_image_manager_(
plugin_vm::PluginVmImageManagerFactory::GetForProfile(profile)) { plugin_vm::PluginVmImageManagerFactory::GetForProfile(profile)) {
constexpr gfx::Size kLogoImageSize(32, 32);
const ChromeLayoutProvider* provider = ChromeLayoutProvider::Get(); const ChromeLayoutProvider* provider = ChromeLayoutProvider::Get();
SetLayoutManager(std::make_unique<views::BoxLayout>( SetLayoutManager(std::make_unique<views::BoxLayout>(
views::BoxLayout::kVertical, views::BoxLayout::kVertical,
provider->GetInsetsMetric(views::InsetsMetric::INSETS_DIALOG))); provider->GetInsetsMetric(views::InsetsMetric::INSETS_DIALOG)));
views::ImageView* logo_image = new views::ImageView();
logo_image->SetImageSize(kLogoImageSize);
logo_image->SetImage(
ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
IDR_LOGO_PLUGIN_VM_DEFAULT_32));
logo_image->SetHorizontalAlignment(views::ImageView::LEADING);
AddChildView(logo_image);
big_message_label_ =
new views::Label(GetBigMessage(), views::style::CONTEXT_DIALOG_TITLE);
big_message_label_->SetMultiLine(true);
big_message_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
AddChildView(big_message_label_);
message_label_ = new views::Label(); message_label_ = new views::Label();
message_label_->SetMultiLine(true); message_label_->SetMultiLine(true);
message_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); message_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
...@@ -53,6 +71,13 @@ PluginVmLauncherView::PluginVmLauncherView(Profile* profile) ...@@ -53,6 +71,13 @@ PluginVmLauncherView::PluginVmLauncherView(Profile* profile)
progress_bar_ = new views::ProgressBar(); progress_bar_ = new views::ProgressBar();
progress_bar_->SetVisible(false); progress_bar_->SetVisible(false);
AddChildView(progress_bar_); AddChildView(progress_bar_);
big_image_ = new views::ImageView();
big_image_->SetImage(
ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
IDR_PLUGIN_VM_LAUNCHER));
big_image_->SetHorizontalAlignment(views::ImageView::CENTER);
AddChildView(big_image_);
} }
int PluginVmLauncherView::GetDialogButtons() const { int PluginVmLauncherView::GetDialogButtons() const {
...@@ -89,18 +114,8 @@ base::string16 PluginVmLauncherView::GetDialogButtonLabel( ...@@ -89,18 +114,8 @@ base::string16 PluginVmLauncherView::GetDialogButtonLabel(
} }
} }
base::string16 PluginVmLauncherView::GetWindowTitle() const { bool PluginVmLauncherView::ShouldShowWindowTitle() const {
switch (state_) { return false;
case State::START_DOWNLOADING:
case State::DOWNLOADING:
case State::UNZIPPING:
return l10n_util::GetStringUTF16(
IDS_PLUGIN_VM_LAUNCHER_ENVIRONMENT_SETTING_TITLE);
case State::FINISHED:
return l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_FINISHED_TITLE);
case State::ERROR:
return l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_ERROR_TITLE);
}
} }
bool PluginVmLauncherView::Accept() { bool PluginVmLauncherView::Accept() {
...@@ -126,7 +141,7 @@ bool PluginVmLauncherView::Cancel() { ...@@ -126,7 +141,7 @@ bool PluginVmLauncherView::Cancel() {
gfx::Size PluginVmLauncherView::CalculatePreferredSize() const { gfx::Size PluginVmLauncherView::CalculatePreferredSize() const {
const int width = ChromeLayoutProvider::Get()->GetDistanceMetric( const int width = ChromeLayoutProvider::Get()->GetDistanceMetric(
DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH); DISTANCE_LARGE_MODAL_DIALOG_PREFERRED_WIDTH);
return gfx::Size(width, return gfx::Size(width,
GetLayoutManager()->GetPreferredHeightForWidth(this, width)); GetLayoutManager()->GetPreferredHeightForWidth(this, width));
} }
...@@ -178,6 +193,20 @@ PluginVmLauncherView::GetPluginVmImageManagerForTesting() { ...@@ -178,6 +193,20 @@ PluginVmLauncherView::GetPluginVmImageManagerForTesting() {
return plugin_vm_image_manager_; return plugin_vm_image_manager_;
} }
base::string16 PluginVmLauncherView::GetBigMessage() {
switch (state_) {
case State::START_DOWNLOADING:
case State::DOWNLOADING:
case State::UNZIPPING:
return l10n_util::GetStringUTF16(
IDS_PLUGIN_VM_LAUNCHER_ENVIRONMENT_SETTING_TITLE);
case State::FINISHED:
return l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_FINISHED_TITLE);
case State::ERROR:
return l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_ERROR_TITLE);
}
}
void PluginVmLauncherView::AddedToWidget() { void PluginVmLauncherView::AddedToWidget() {
StartPluginVmImageDownload(); StartPluginVmImageDownload();
} }
...@@ -198,14 +227,35 @@ base::string16 PluginVmLauncherView::GetMessage() const { ...@@ -198,14 +227,35 @@ base::string16 PluginVmLauncherView::GetMessage() const {
} }
} }
void PluginVmLauncherView::OnStateUpdated() { void PluginVmLauncherView::SetBigMessageLabel() {
DialogModelChanged(); big_message_label_->SetText(GetBigMessage());
GetWidget()->UpdateWindowTitle(); big_message_label_->SetVisible(true);
}
void PluginVmLauncherView::SetMessageLabel() {
base::string16 message = GetMessage(); base::string16 message = GetMessage();
const bool message_visible = !message.empty(); const bool message_visible = !message.empty();
message_label_->SetVisible(message_visible); message_label_->SetVisible(message_visible);
message_label_->SetText(message); message_label_->SetText(message);
}
void PluginVmLauncherView::SetBigImage() {
if (state_ == State::ERROR) {
big_image_->SetImage(
ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
IDR_PLUGIN_VM_LAUNCHER_ERROR));
return;
}
big_image_->SetImage(
ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
IDR_PLUGIN_VM_LAUNCHER));
}
void PluginVmLauncherView::OnStateUpdated() {
DialogModelChanged();
SetBigMessageLabel();
SetMessageLabel();
SetBigImage();
const bool progress_bar_visible = const bool progress_bar_visible =
state_ == State::DOWNLOADING || state_ == State::UNZIPPING; state_ == State::DOWNLOADING || state_ == State::UNZIPPING;
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "ui/views/bubble/bubble_dialog_delegate_view.h" #include "ui/views/bubble/bubble_dialog_delegate_view.h"
namespace views { namespace views {
class ImageView;
class Label; class Label;
class ProgressBar; class ProgressBar;
} // namespace views } // namespace views
...@@ -28,7 +29,7 @@ class PluginVmLauncherView : public views::BubbleDialogDelegateView, ...@@ -28,7 +29,7 @@ class PluginVmLauncherView : public views::BubbleDialogDelegateView,
// views::BubbleDialogDelegateView implementation. // views::BubbleDialogDelegateView implementation.
int GetDialogButtons() const override; int GetDialogButtons() const override;
base::string16 GetDialogButtonLabel(ui::DialogButton button) const override; base::string16 GetDialogButtonLabel(ui::DialogButton button) const override;
base::string16 GetWindowTitle() const override; bool ShouldShowWindowTitle() const override;
bool Accept() override; bool Accept() override;
bool Cancel() override; bool Cancel() override;
gfx::Size CalculatePreferredSize() const override; gfx::Size CalculatePreferredSize() const override;
...@@ -42,7 +43,9 @@ class PluginVmLauncherView : public views::BubbleDialogDelegateView, ...@@ -42,7 +43,9 @@ class PluginVmLauncherView : public views::BubbleDialogDelegateView,
void OnUnzipped() override; void OnUnzipped() override;
void OnUnzippingFailed() override; void OnUnzippingFailed() override;
// Public for testing purposes.
plugin_vm::PluginVmImageManager* GetPluginVmImageManagerForTesting(); plugin_vm::PluginVmImageManager* GetPluginVmImageManagerForTesting();
base::string16 GetBigMessage();
protected: protected:
// views::BubbleDialogDelegateView implementation. // views::BubbleDialogDelegateView implementation.
...@@ -52,6 +55,9 @@ class PluginVmLauncherView : public views::BubbleDialogDelegateView, ...@@ -52,6 +55,9 @@ class PluginVmLauncherView : public views::BubbleDialogDelegateView,
~PluginVmLauncherView() override; ~PluginVmLauncherView() override;
base::string16 GetMessage() const; base::string16 GetMessage() const;
void SetBigMessageLabel();
void SetMessageLabel();
void SetBigImage();
void OnStateUpdated(); void OnStateUpdated();
void StartPluginVmImageDownload(); void StartPluginVmImageDownload();
...@@ -65,9 +71,11 @@ class PluginVmLauncherView : public views::BubbleDialogDelegateView, ...@@ -65,9 +71,11 @@ class PluginVmLauncherView : public views::BubbleDialogDelegateView,
}; };
State state_ = State::START_DOWNLOADING; State state_ = State::START_DOWNLOADING;
plugin_vm::PluginVmImageManager* plugin_vm_image_manager_ = nullptr;
views::Label* big_message_label_ = nullptr;
views::Label* message_label_ = nullptr; views::Label* message_label_ = nullptr;
views::ProgressBar* progress_bar_ = nullptr; views::ProgressBar* progress_bar_ = nullptr;
plugin_vm::PluginVmImageManager* plugin_vm_image_manager_ = nullptr; views::ImageView* big_image_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(PluginVmLauncherView); DISALLOW_COPY_AND_ASSIGN(PluginVmLauncherView);
}; };
......
...@@ -34,7 +34,7 @@ class PluginVmLauncherViewBrowserTest : public DialogBrowserTest { ...@@ -34,7 +34,7 @@ class PluginVmLauncherViewBrowserTest : public DialogBrowserTest {
void CheckSetupIsInProgress() { void CheckSetupIsInProgress() {
EXPECT_TRUE(HasCancelButton()); EXPECT_TRUE(HasCancelButton());
EXPECT_FALSE(HasAcceptButton()); EXPECT_FALSE(HasAcceptButton());
EXPECT_EQ(view_->GetWindowTitle(), EXPECT_EQ(view_->GetBigMessage(),
l10n_util::GetStringUTF16( l10n_util::GetStringUTF16(
IDS_PLUGIN_VM_LAUNCHER_ENVIRONMENT_SETTING_TITLE)); IDS_PLUGIN_VM_LAUNCHER_ENVIRONMENT_SETTING_TITLE));
} }
...@@ -44,7 +44,7 @@ class PluginVmLauncherViewBrowserTest : public DialogBrowserTest { ...@@ -44,7 +44,7 @@ class PluginVmLauncherViewBrowserTest : public DialogBrowserTest {
EXPECT_TRUE(HasCancelButton()); EXPECT_TRUE(HasCancelButton());
EXPECT_EQ(view_->GetDialogButtonLabel(ui::DIALOG_BUTTON_OK), EXPECT_EQ(view_->GetDialogButtonLabel(ui::DIALOG_BUTTON_OK),
l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_RETRY_BUTTON)); l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_RETRY_BUTTON));
EXPECT_EQ(view_->GetWindowTitle(), EXPECT_EQ(view_->GetBigMessage(),
l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_ERROR_TITLE)); l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_ERROR_TITLE));
} }
...@@ -53,7 +53,7 @@ class PluginVmLauncherViewBrowserTest : public DialogBrowserTest { ...@@ -53,7 +53,7 @@ class PluginVmLauncherViewBrowserTest : public DialogBrowserTest {
EXPECT_FALSE(HasCancelButton()); EXPECT_FALSE(HasCancelButton());
EXPECT_EQ(view_->GetDialogButtonLabel(ui::DIALOG_BUTTON_OK), EXPECT_EQ(view_->GetDialogButtonLabel(ui::DIALOG_BUTTON_OK),
l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_LAUNCH_BUTTON)); l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_LAUNCH_BUTTON));
EXPECT_EQ(view_->GetWindowTitle(), EXPECT_EQ(view_->GetBigMessage(),
l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_FINISHED_TITLE)); l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_FINISHED_TITLE));
} }
......
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