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

Unified Diff: ash/wm/overview/overview_window_button.cc

Issue 872113004: Modified OverviewMode's LabelButton bounds to cover the entire item. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed nits Created 5 years, 10 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/wm/overview/overview_window_button.cc
diff --git a/ash/wm/overview/overview_window_button.cc b/ash/wm/overview/overview_window_button.cc
deleted file mode 100644
index 2fa3248e76ad775e7cb847008e22405f0ce83e14..0000000000000000000000000000000000000000
--- a/ash/wm/overview/overview_window_button.cc
+++ /dev/null
@@ -1,155 +0,0 @@
-// Copyright 2015 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/screen_util.h"
-#include "ash/shell.h"
-#include "ash/shell_window_ids.h"
-#include "ash/wm/overview/overview_animation_type.h"
-#include "ash/wm/overview/overview_window_button.h"
-#include "ash/wm/overview/overview_window_targeter.h"
-#include "ash/wm/overview/scoped_overview_animation_settings.h"
-#include "ash/wm/window_state.h"
-#include "ui/aura/scoped_window_targeter.h"
-#include "ui/aura/window.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/views/border.h"
-#include "ui/views/controls/button/label_button.h"
-#include "ui/views/widget/widget.h"
-
-namespace ash {
-
-namespace {
-
-// Foreground label color.
-static const SkColor kLabelColor = SK_ColorWHITE;
-
-// Label shadow color.
-static const SkColor kLabelShadow = 0xB0000000;
-
-// Solid shadow length from the label
-static const int kVerticalShadowOffset = 1;
-
-// Amount of blur applied to the label shadow
-static const int kShadowBlur = 10;
-
-} // namespace
-
-// LabelButton shown under each of the windows.
-class OverviewWindowButton::OverviewButtonView : public views::LabelButton {
- public:
- OverviewButtonView(views::ButtonListener* listener,
- const base::string16& text)
- : views::LabelButton(listener, text),
- selector_item_bounds_(gfx::Rect()) {}
-
- ~OverviewButtonView() override {}
-
- // Updates the |selector_item_bounds_|, converting them to our coordinates.
- void SetSelectorItemBounds(const gfx::Rect& selector_item_bounds) {
- selector_item_bounds_ = ScreenUtil::ConvertRectFromScreen(
- GetWidget()->GetNativeWindow()->GetRootWindow(), selector_item_bounds);
- gfx::Point origin = selector_item_bounds_.origin();
- gfx::Rect target_bounds = GetWidget()->GetNativeWindow()->GetTargetBounds();
- origin.Offset(-target_bounds.x(), -target_bounds.y());
- selector_item_bounds_.set_origin(origin);
- }
-
- // views::View:
- void OnMouseReleased(const ui::MouseEvent& event) override {
- if (!selector_item_bounds_.Contains(event.location()))
- return;
-
- NotifyClick(event);
- }
-
- private:
- // Bounds to check if a mouse release occurred outside the window item.
- gfx::Rect selector_item_bounds_;
-
- DISALLOW_COPY_AND_ASSIGN(OverviewButtonView);
-};
-
-OverviewWindowButton::OverviewWindowButton(aura::Window* target)
- : target_(target), window_label_(new views::Widget) {
- views::Widget::InitParams params;
- params.type = views::Widget::InitParams::TYPE_POPUP;
- params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
- params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW;
- params.parent = Shell::GetContainer(target_->GetRootWindow(),
- kShellWindowId_OverlayContainer);
- params.visible_on_all_workspaces = true;
- window_label_->set_focus_on_creation(false);
- window_label_->Init(params);
- window_label_button_view_ = new OverviewButtonView(this, target_->title());
- window_label_button_view_->SetTextColor(views::LabelButton::STATE_NORMAL,
- kLabelColor);
- window_label_button_view_->SetTextColor(views::LabelButton::STATE_HOVERED,
- kLabelColor);
- window_label_button_view_->SetTextColor(views::LabelButton::STATE_PRESSED,
- kLabelColor);
- window_label_button_view_->set_animate_on_state_change(false);
- window_label_button_view_->SetHorizontalAlignment(gfx::ALIGN_CENTER);
- window_label_button_view_->SetBorder(views::Border::NullBorder());
- window_label_button_view_->SetTextShadows(gfx::ShadowValues(
- 1, gfx::ShadowValue(gfx::Point(0, kVerticalShadowOffset), kShadowBlur,
- kLabelShadow)));
- ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
- window_label_button_view_->SetFontList(
- bundle.GetFontList(ui::ResourceBundle::BoldFont));
- window_label_->SetContentsView(window_label_button_view_);
-
- overview_window_targeter_ =
- new OverviewWindowTargeter(window_label_->GetNativeWindow());
- scoped_window_targeter_.reset(new aura::ScopedWindowTargeter(
- target, scoped_ptr<OverviewWindowTargeter>(overview_window_targeter_)));
-}
-
-OverviewWindowButton::~OverviewWindowButton() {
-}
-
-void OverviewWindowButton::SetBounds(
- const gfx::Rect& bounds,
- const OverviewAnimationType& animation_type) {
- if (!window_label_->IsVisible()) {
- window_label_->Show();
- ScopedOverviewAnimationSettings::SetupFadeInAfterLayout(
- window_label_->GetNativeWindow());
- }
- gfx::Rect converted_bounds =
- ScreenUtil::ConvertRectFromScreen(target_->GetRootWindow(), bounds);
- gfx::Rect label_bounds(converted_bounds.x(), converted_bounds.bottom(),
- converted_bounds.width(), 0);
- label_bounds.set_height(
- window_label_->GetContentsView()->GetPreferredSize().height());
- label_bounds.set_y(
- label_bounds.y() -
- window_label_->GetContentsView()->GetPreferredSize().height());
-
- ScopedOverviewAnimationSettings animation_settings(
- animation_type, window_label_->GetNativeWindow());
-
- window_label_->GetNativeWindow()->SetBounds(label_bounds);
- window_label_button_view_->SetSelectorItemBounds(bounds);
- overview_window_targeter_->set_bounds(
- ScreenUtil::ConvertRectFromScreen(target_->GetRootWindow(), bounds));
-}
-
-void OverviewWindowButton::SendFocusAlert() const {
- window_label_button_view_->NotifyAccessibilityEvent(ui::AX_EVENT_FOCUS, true);
-}
-
-void OverviewWindowButton::SetLabelText(const base::string16& title) {
- window_label_button_view_->SetText(title);
-}
-
-void OverviewWindowButton::SetOpacity(float opacity) {
- window_label_->GetNativeWindow()->layer()->SetOpacity(opacity);
-}
-
-void OverviewWindowButton::ButtonPressed(views::Button* sender,
- const ui::Event& event) {
- wm::GetWindowState(target_)->Activate();
-}
-
-} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698