Index: ash/common/shelf/app_list_button.cc |
diff --git a/ash/shelf/app_list_button.cc b/ash/common/shelf/app_list_button.cc |
similarity index 92% |
rename from ash/shelf/app_list_button.cc |
rename to ash/common/shelf/app_list_button.cc |
index 2c9eced2f8940be7d25bd5ed5542dc13e254fccf..db39d21c0c7805c6c23d56904a1e2cc96fd43308 100644 |
--- a/ash/shelf/app_list_button.cc |
+++ b/ash/common/shelf/app_list_button.cc |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "ash/shelf/app_list_button.h" |
+#include "ash/common/shelf/app_list_button.h" |
#include "ash/common/ash_constants.h" |
#include "ash/common/material_design/material_design_controller.h" |
@@ -10,11 +10,10 @@ |
#include "ash/common/shelf/shelf_constants.h" |
#include "ash/common/shelf/shelf_item_types.h" |
#include "ash/common/shelf/shelf_types.h" |
+#include "ash/common/shelf/wm_shelf.h" |
#include "ash/common/shelf/wm_shelf_util.h" |
-#include "ash/shelf/shelf_layout_manager.h" |
+#include "ash/common/wm_shell.h" |
#include "ash/shelf/shelf_view.h" |
-#include "ash/shelf/shelf_widget.h" |
-#include "ash/shell.h" |
#include "base/command_line.h" |
#include "grit/ash_resources.h" |
#include "grit/ash_strings.h" |
@@ -32,11 +31,16 @@ |
namespace ash { |
AppListButton::AppListButton(InkDropButtonListener* listener, |
- ShelfView* shelf_view) |
+ ShelfView* shelf_view, |
+ WmShelf* wm_shelf) |
: views::ImageButton(nullptr), |
draw_background_as_active_(false), |
listener_(listener), |
- shelf_view_(shelf_view) { |
+ shelf_view_(shelf_view), |
+ wm_shelf_(wm_shelf) { |
+ DCHECK(listener_); |
+ DCHECK(shelf_view_); |
+ DCHECK(wm_shelf_); |
if (ash::MaterialDesignController::IsShelfMaterial()) { |
SetInkDropMode(InkDropMode::ON_NO_GESTURE_HANDLER); |
set_ink_drop_base_color(kShelfInkDropBaseColor); |
@@ -116,7 +120,7 @@ void AppListButton::OnGestureEvent(ui::GestureEvent* event) { |
case ui::ET_GESTURE_TAP_DOWN: |
if (touch_feedback) |
SetDrawBackgroundAsActive(true); |
- else if (is_material && !Shell::GetInstance()->IsApplistVisible()) |
+ else if (is_material && !WmShell::Get()->IsApplistVisible()) |
AnimateInkDrop(views::InkDropState::ACTION_PENDING, event); |
ImageButton::OnGestureEvent(event); |
break; |
@@ -158,17 +162,15 @@ void AppListButton::PaintBackgroundMD(gfx::Canvas* canvas) { |
background_paint.setFlags(SkPaint::kAntiAlias_Flag); |
background_paint.setStyle(SkPaint::kFill_Style); |
- const ShelfWidget* shelf_widget = shelf_view_->shelf()->shelf_widget(); |
- if (shelf_widget && |
- shelf_widget->GetBackgroundType() == |
- ShelfBackgroundType::SHELF_BACKGROUND_DEFAULT) { |
+ if (wm_shelf_->GetBackgroundType() == |
+ ShelfBackgroundType::SHELF_BACKGROUND_DEFAULT) { |
background_paint.setColor( |
SkColorSetA(kShelfBaseColor, GetShelfConstant(SHELF_BACKGROUND_ALPHA))); |
} |
// Paint the circular background of AppList button. |
gfx::Point circle_center = GetContentsBounds().CenterPoint(); |
- if (!IsHorizontalAlignment(shelf_view_->shelf()->alignment())) |
+ if (!IsHorizontalAlignment(wm_shelf_->GetAlignment())) |
circle_center = gfx::Point(circle_center.y(), circle_center.x()); |
canvas->DrawCircle(circle_center, kAppListButtonRadius, background_paint); |
@@ -179,7 +181,7 @@ void AppListButton::PaintForegroundMD(gfx::Canvas* canvas, |
gfx::Rect foreground_bounds(foreground_image.size()); |
gfx::Rect contents_bounds = GetContentsBounds(); |
- if (IsHorizontalAlignment(shelf_view_->shelf()->alignment())) { |
+ if (IsHorizontalAlignment(wm_shelf_->GetAlignment())) { |
foreground_bounds.set_x( |
(contents_bounds.width() - foreground_bounds.width()) / 2); |
foreground_bounds.set_y( |
@@ -198,11 +200,11 @@ void AppListButton::PaintAppListButton(gfx::Canvas* canvas, |
const gfx::ImageSkia& foreground_image) { |
int background_image_id = 0; |
- if (Shell::GetInstance()->GetAppListTargetVisibility() || |
+ if (WmShell::Get()->GetAppListTargetVisibility() || |
draw_background_as_active_) { |
background_image_id = IDR_AURA_NOTIFICATION_BACKGROUND_PRESSED; |
} else { |
- if (shelf_view_->shelf()->shelf_widget()->GetDimsShelf()) { |
+ if (wm_shelf_->IsDimmed()) { |
background_image_id = IDR_AURA_NOTIFICATION_BACKGROUND_ON_BLACK; |
} else { |
background_image_id = IDR_AURA_NOTIFICATION_BACKGROUND_NORMAL; |
@@ -213,7 +215,7 @@ void AppListButton::PaintAppListButton(gfx::Canvas* canvas, |
gfx::ImageSkia background_image = |
*rb.GetImageNamed(background_image_id).ToImageSkia(); |
gfx::Rect background_bounds(background_image.size()); |
- ShelfAlignment alignment = shelf_view_->shelf()->alignment(); |
+ ShelfAlignment alignment = wm_shelf_->GetAlignment(); |
gfx::Rect contents_bounds = GetContentsBounds(); |
if (alignment == SHELF_ALIGNMENT_LEFT) { |
@@ -275,7 +277,7 @@ void AppListButton::NotifyClick(const ui::Event& event) { |
bool AppListButton::ShouldEnterPushedState(const ui::Event& event) { |
if (!shelf_view_->ShouldEventActivateButton(this, event)) |
return false; |
- if (Shell::GetInstance()->IsApplistVisible()) |
+ if (WmShell::Get()->IsApplistVisible()) |
return false; |
return views::ImageButton::ShouldEnterPushedState(event); |
} |