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

Unified Diff: chrome/browser/ui/views/exclusive_access_bubble_views.cc

Issue 1413523003: Made fullscreen bubble text non-transparent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix temporary constant. Created 5 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/exclusive_access_bubble_views.cc
diff --git a/chrome/browser/ui/views/exclusive_access_bubble_views.cc b/chrome/browser/ui/views/exclusive_access_bubble_views.cc
index f8d5fe5ab87b49753b97943c201b0493de1f8198..46a38c9e44316b20cb3fd5ed04bed5ba8280c5fe 100644
--- a/chrome/browser/ui/views/exclusive_access_bubble_views.cc
+++ b/chrome/browser/ui/views/exclusive_access_bubble_views.cc
@@ -44,9 +44,8 @@ namespace {
// Space between the site info label and the buttons / link.
const int kMiddlePaddingPx = 30;
-// Gets the opacity of the bubble when not animating.
-int GetMaximumOpacity() {
- return ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled() ? 180 : 255;
+float GetBackgroundOpacity() {
+ return ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled() ? 0.7 : 1.0;
}
class ButtonView : public views::View {
@@ -109,11 +108,20 @@ class ExclusiveAccessBubbleViews::ExclusiveAccessView
// views::LinkListener
void LinkClicked(views::Link* source, int event_flags) override;
+ // views::View
+ gfx::Size GetPreferredSize() const override;
+ void Layout() override;
+
void UpdateContent(const GURL& url, ExclusiveAccessBubbleType bubble_type);
private:
ExclusiveAccessBubbleViews* bubble_;
+ // Background and border (semi-transparent).
+ views::View* background_;
msw 2015/10/22 22:03:44 Why do we need new container views to set the opac
Matt Giuca 2015/10/26 03:10:38 O_o why didn't I think of that? Thanks, fixed. A
+ // Container for all text, button and link views.
+ views::View* contents_;
+
// Clickable hint text for exiting fullscreen mode.
views::Link* link_;
// Instruction for exiting mouse lock.
@@ -152,25 +160,31 @@ ExclusiveAccessBubbleViews::ExclusiveAccessView::ExclusiveAccessView(
ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()
? SK_ColorBLACK
: theme->GetSystemColor(ui::NativeTheme::kColorId_BubbleBackground);
+ SkColor label_background_color =
+ ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()
+ ? SK_ColorTRANSPARENT
+ : background_color;
SkColor foreground_color =
ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()
? SK_ColorWHITE
: theme->GetSystemColor(ui::NativeTheme::kColorId_LabelEnabledColor);
- scoped_ptr<views::BubbleBorder> bubble_border(new views::BubbleBorder(
- views::BubbleBorder::NONE, shadow_type, background_color));
- set_background(new views::BubbleBackground(bubble_border.get()));
- SetBorder(bubble_border.Pass());
SetFocusable(false);
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
const gfx::FontList& medium_font_list =
rb.GetFontList(ui::ResourceBundle::MediumFont);
+ background_ = new views::View();
+ scoped_ptr<views::BubbleBorder> bubble_border(new views::BubbleBorder(
+ views::BubbleBorder::NONE, shadow_type, background_color));
+ background_->set_background(new views::BubbleBackground(bubble_border.get()));
+ background_->SetBorder(bubble_border.Pass());
+
if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) {
message_label_ = new views::Label(base::string16(), medium_font_list);
message_label_->SetEnabledColor(foreground_color);
- message_label_->SetBackgroundColor(background_color);
+ message_label_->SetBackgroundColor(label_background_color);
}
mouse_lock_exit_instruction_ =
@@ -178,7 +192,7 @@ ExclusiveAccessBubbleViews::ExclusiveAccessView::ExclusiveAccessView(
mouse_lock_exit_instruction_->set_collapse_when_hidden(true);
mouse_lock_exit_instruction_->SetEnabledColor(foreground_color);
- mouse_lock_exit_instruction_->SetBackgroundColor(background_color);
+ mouse_lock_exit_instruction_->SetBackgroundColor(label_background_color);
link_ = new views::Link();
link_->set_collapse_when_hidden(true);
@@ -191,12 +205,13 @@ ExclusiveAccessBubbleViews::ExclusiveAccessView::ExclusiveAccessView(
link_->SetFontList(medium_font_list);
link_->SetPressedColor(foreground_color);
link_->SetEnabledColor(foreground_color);
- link_->SetBackgroundColor(background_color);
+ link_->SetBackgroundColor(label_background_color);
link_->SetVisible(false);
button_view_ = new ButtonView(this, kPaddingPx);
- views::GridLayout* layout = new views::GridLayout(this);
+ contents_ = new views::View();
+ views::GridLayout* layout = new views::GridLayout(contents_);
views::ColumnSet* columns = layout->AddColumnSet(0);
if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) {
// In the simplified UI, do not show the message label, only the exit
@@ -224,7 +239,15 @@ ExclusiveAccessBubbleViews::ExclusiveAccessView::ExclusiveAccessView(
gfx::Insets padding(kPaddingPx, kPaddingPx, kPaddingPx, kPaddingPx);
padding += GetInsets();
layout->SetInsets(padding);
- SetLayoutManager(layout);
+ contents_->SetLayoutManager(layout);
+
+ background_->SetPaintToLayer(true);
msw 2015/10/22 22:03:44 Shouldn't these values be contingent on the new UI
Matt Giuca 2015/10/26 03:10:39 N/A
+ background_->SetFillsBoundsOpaquely(false);
+ background_->layer()->SetOpacity(GetBackgroundOpacity());
+ contents_->SetPaintToLayer(true);
+ contents_->SetFillsBoundsOpaquely(false);
+ AddChildView(background_);
+ AddChildView(contents_);
UpdateContent(url, bubble_type);
}
@@ -247,6 +270,20 @@ void ExclusiveAccessBubbleViews::ExclusiveAccessView::LinkClicked(
bubble_->ExitExclusiveAccess();
}
+gfx::Size ExclusiveAccessBubbleViews::ExclusiveAccessView::GetPreferredSize()
+ const {
+ return contents_->GetPreferredSize();
+}
+
+void ExclusiveAccessBubbleViews::ExclusiveAccessView::Layout() {
+ // The background's bounds rect must extend out beyond its parent's bounds, to
+ // account for the border.
+ gfx::Rect background_rect(GetContentsBounds());
+ background_rect.Inset(-background_->GetInsets());
+ background_->SetBoundsRect(background_rect);
+ contents_->SetBoundsRect(GetContentsBounds());
+}
+
void ExclusiveAccessBubbleViews::ExclusiveAccessView::UpdateContent(
const GURL& url,
ExclusiveAccessBubbleType bubble_type) {
@@ -341,7 +378,6 @@ ExclusiveAccessBubbleViews::ExclusiveAccessBubbleViews(
popup_->SetContentsView(view_);
gfx::Size size = GetPopupRect(true).size();
popup_->SetBounds(GetPopupRect(false));
- popup_->SetOpacity(GetMaximumOpacity());
// We set layout manager to nullptr to prevent the widget from sizing its
// contents to the same size as itself. This prevents the widget contents from
// shrinking while we animate the height of the popup to give the impression
@@ -445,7 +481,7 @@ void ExclusiveAccessBubbleViews::UpdateForImmersiveState() {
// assumes |popup_| has the opacity when it is fully shown and the opacity
// animation assumes |popup_| has the bounds when |popup_| is fully shown.
if (animated_attribute_ == ANIMATED_ATTRIBUTE_BOUNDS)
- popup_->SetOpacity(GetMaximumOpacity());
+ popup_->SetOpacity(255);
else
UpdateBounds();
}
@@ -468,7 +504,7 @@ views::View* ExclusiveAccessBubbleViews::GetBrowserRootView() const {
void ExclusiveAccessBubbleViews::AnimationProgressed(
const gfx::Animation* animation) {
if (animated_attribute_ == ANIMATED_ATTRIBUTE_OPACITY) {
- int opacity = animation_->CurrentValueBetween(0, GetMaximumOpacity());
+ int opacity = animation_->CurrentValueBetween(0, 255);
if (opacity == 0) {
popup_->Hide();
} else {
@@ -517,8 +553,8 @@ gfx::Rect ExclusiveAccessBubbleViews::GetPopupRect(
top_container_bottom =
bubble_view_context_->GetTopContainerBoundsInScreen().bottom();
}
- // |desired_top| is the top of the bubble area including the shadow.
- int desired_top = kPopupTopPx - view_->border()->GetInsets().top();
+ // |desired_top| is the top of the bubble area excluding the shadow.
+ int desired_top = kPopupTopPx;
int y = top_container_bottom + desired_top;
if (!ignore_animation_state &&
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698