Index: ash/shelf/overflow_button.cc |
diff --git a/ash/shelf/overflow_button.cc b/ash/shelf/overflow_button.cc |
deleted file mode 100644 |
index e51bfd2b3a45d72852ae1cf4d0b76100bbf4967c..0000000000000000000000000000000000000000 |
--- a/ash/shelf/overflow_button.cc |
+++ /dev/null |
@@ -1,178 +0,0 @@ |
-// Copyright 2013 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/shelf/overflow_button.h" |
- |
-#include "ash/common/ash_constants.h" |
-#include "ash/common/ash_switches.h" |
-#include "ash/common/material_design/material_design_controller.h" |
-#include "ash/common/shelf/shelf_constants.h" |
-#include "ash/shelf/ink_drop_button_listener.h" |
-#include "ash/shelf/shelf.h" |
-#include "ash/shelf/shelf_layout_manager.h" |
-#include "ash/shelf/shelf_widget.h" |
-#include "grit/ash_resources.h" |
-#include "grit/ash_strings.h" |
-#include "third_party/skia/include/core/SkPaint.h" |
-#include "third_party/skia/include/core/SkPath.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/base/resource/resource_bundle.h" |
-#include "ui/gfx/animation/throb_animation.h" |
-#include "ui/gfx/canvas.h" |
-#include "ui/gfx/image/image_skia_operations.h" |
-#include "ui/gfx/paint_vector_icon.h" |
-#include "ui/gfx/skbitmap_operations.h" |
-#include "ui/gfx/skia_util.h" |
-#include "ui/gfx/transform.h" |
-#include "ui/gfx/vector_icons_public.h" |
-#include "ui/views/widget/widget.h" |
- |
-namespace ash { |
- |
-OverflowButton::OverflowButton(InkDropButtonListener* listener, Shelf* shelf) |
- : CustomButton(nullptr), |
- bottom_image_(nullptr), |
- listener_(listener), |
- shelf_(shelf) { |
- if (MaterialDesignController::IsShelfMaterial()) { |
- bottom_image_md_ = |
- CreateVectorIcon(gfx::VectorIconId::SHELF_OVERFLOW, kShelfIconColor); |
- bottom_image_ = &bottom_image_md_; |
- } else { |
- bottom_image_ = ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
- IDR_ASH_SHELF_OVERFLOW); |
- } |
- |
- SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); |
- SetAccessibleName(l10n_util::GetStringUTF16(IDS_ASH_SHELF_OVERFLOW_NAME)); |
-} |
- |
-OverflowButton::~OverflowButton() {} |
- |
-void OverflowButton::OnShelfAlignmentChanged() { |
- SchedulePaint(); |
-} |
- |
-void OverflowButton::OnPaint(gfx::Canvas* canvas) { |
- gfx::Rect bounds = CalculateButtonBounds(); |
- PaintBackground(canvas, bounds); |
- PaintForeground(canvas, bounds); |
-} |
- |
-void OverflowButton::NotifyClick(const ui::Event& event) { |
- CustomButton::NotifyClick(event); |
- if (listener_) |
- listener_->ButtonPressed(this, event, ink_drop()); |
-} |
- |
-void OverflowButton::PaintBackground(gfx::Canvas* canvas, |
- const gfx::Rect& bounds) { |
- if (MaterialDesignController::IsShelfMaterial()) { |
- SkColor background_color = SK_ColorTRANSPARENT; |
- ShelfWidget* shelf_widget = shelf_->shelf_widget(); |
- if (shelf_widget && |
- shelf_widget->GetBackgroundType() == |
- ShelfBackgroundType::SHELF_BACKGROUND_DEFAULT) { |
- background_color = SkColorSetA(kShelfBaseColor, |
- GetShelfConstant(SHELF_BACKGROUND_ALPHA)); |
- } |
- |
- // TODO(bruthig|tdanderson): The background should be changed using a |
- // fade in/out animation. |
- SkPaint background_paint; |
- background_paint.setFlags(SkPaint::kAntiAlias_Flag); |
- background_paint.setColor(background_color); |
- canvas->DrawRoundRect(bounds, kOverflowButtonCornerRadius, |
- background_paint); |
- |
- if (shelf_->IsShowingOverflowBubble()) { |
- SkPaint highlight_paint; |
- highlight_paint.setFlags(SkPaint::kAntiAlias_Flag); |
- highlight_paint.setColor(kShelfButtonActivatedHighlightColor); |
- canvas->DrawRoundRect(bounds, kOverflowButtonCornerRadius, |
- highlight_paint); |
- } |
- } else { |
- ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
- const gfx::ImageSkia* background = |
- rb.GetImageNamed(NonMaterialBackgroundImageId()).ToImageSkia(); |
- canvas->DrawImageInt(*background, bounds.x(), bounds.y()); |
- } |
-} |
- |
-void OverflowButton::PaintForeground(gfx::Canvas* canvas, |
- const gfx::Rect& bounds) { |
- const gfx::ImageSkia* image = nullptr; |
- |
- switch (shelf_->alignment()) { |
- case SHELF_ALIGNMENT_LEFT: |
- if (left_image_.isNull()) { |
- left_image_ = gfx::ImageSkiaOperations::CreateRotatedImage( |
- *bottom_image_, SkBitmapOperations::ROTATION_90_CW); |
- } |
- image = &left_image_; |
- break; |
- case SHELF_ALIGNMENT_RIGHT: |
- if (right_image_.isNull()) { |
- right_image_ = gfx::ImageSkiaOperations::CreateRotatedImage( |
- *bottom_image_, SkBitmapOperations::ROTATION_270_CW); |
- } |
- image = &right_image_; |
- break; |
- default: |
- image = bottom_image_; |
- break; |
- } |
- |
- canvas->DrawImageInt(*image, |
- bounds.x() + ((bounds.width() - image->width()) / 2), |
- bounds.y() + ((bounds.height() - image->height()) / 2)); |
-} |
- |
-int OverflowButton::NonMaterialBackgroundImageId() { |
- if (shelf_->IsShowingOverflowBubble()) |
- return IDR_AURA_NOTIFICATION_BACKGROUND_PRESSED; |
- else if (shelf_->shelf_widget()->GetDimsShelf()) |
- return IDR_AURA_NOTIFICATION_BACKGROUND_ON_BLACK; |
- return IDR_AURA_NOTIFICATION_BACKGROUND_NORMAL; |
-} |
- |
-gfx::Rect OverflowButton::CalculateButtonBounds() { |
- ShelfAlignment alignment = shelf_->alignment(); |
- gfx::Rect bounds(GetContentsBounds()); |
- ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
- if (MaterialDesignController::IsShelfMaterial()) { |
- const int width_offset = (bounds.width() - kOverflowButtonSize) / 2; |
- const int height_offset = (bounds.height() - kOverflowButtonSize) / 2; |
- if (shelf_->IsHorizontalAlignment()) { |
- bounds = gfx::Rect(bounds.x() + width_offset, bounds.y() + height_offset, |
- kOverflowButtonSize, kOverflowButtonSize); |
- } else { |
- bounds = gfx::Rect(bounds.x() + height_offset, bounds.y() + width_offset, |
- kOverflowButtonSize, kOverflowButtonSize); |
- } |
- } else { |
- const gfx::ImageSkia* background = |
- rb.GetImageNamed(NonMaterialBackgroundImageId()).ToImageSkia(); |
- if (alignment == SHELF_ALIGNMENT_LEFT) { |
- bounds = |
- gfx::Rect(bounds.right() - background->width() - kShelfItemInset, |
- bounds.y() + (bounds.height() - background->height()) / 2, |
- background->width(), background->height()); |
- } else if (alignment == SHELF_ALIGNMENT_RIGHT) { |
- bounds = |
- gfx::Rect(bounds.x() + kShelfItemInset, |
- bounds.y() + (bounds.height() - background->height()) / 2, |
- background->width(), background->height()); |
- } else { |
- bounds = |
- gfx::Rect(bounds.x() + (bounds.width() - background->width()) / 2, |
- bounds.y() + kShelfItemInset, background->width(), |
- background->height()); |
- } |
- } |
- return bounds; |
-} |
- |
-} // namespace ash |