| Index: ash/wm/workspace/multi_window_resize_controller.cc
|
| diff --git a/ash/wm/workspace/multi_window_resize_controller.cc b/ash/wm/workspace/multi_window_resize_controller.cc
|
| index dc02e31d3c97c5cc4ce55658b2ef68ed012480d9..c865d344e60715179cc9fea9416ea758e7f17dd2 100644
|
| --- a/ash/wm/workspace/multi_window_resize_controller.cc
|
| +++ b/ash/wm/workspace/multi_window_resize_controller.cc
|
| @@ -5,13 +5,11 @@
|
| #include "ash/wm/workspace/multi_window_resize_controller.h"
|
|
|
| #include "ash/public/cpp/shell_window_ids.h"
|
| -#include "ash/resources/grit/ash_resources.h"
|
| #include "ash/root_window_controller.h"
|
| #include "ash/wm/workspace/workspace_window_resizer.h"
|
| #include "ash/wm_window.h"
|
| #include "ui/base/cursor/cursor.h"
|
| #include "ui/base/hit_test.h"
|
| -#include "ui/base/resource/resource_bundle.h"
|
| #include "ui/display/screen.h"
|
| #include "ui/gfx/canvas.h"
|
| #include "ui/gfx/image/image.h"
|
| @@ -64,45 +62,78 @@ class MultiWindowResizeController::ResizeView : public views::View {
|
| public:
|
| explicit ResizeView(MultiWindowResizeController* controller,
|
| Direction direction)
|
| - : controller_(controller), direction_(direction), image_(NULL) {
|
| - ResourceBundle& rb = ResourceBundle::GetSharedInstance();
|
| - int image_id = direction == TOP_BOTTOM ? IDR_AURA_MULTI_WINDOW_RESIZE_H
|
| - : IDR_AURA_MULTI_WINDOW_RESIZE_V;
|
| - image_ = rb.GetImageNamed(image_id).ToImageSkia();
|
| - }
|
| + : controller_(controller), direction_(direction) {}
|
|
|
| // views::View overrides:
|
| gfx::Size GetPreferredSize() const override {
|
| - return gfx::Size(image_->width(), image_->height());
|
| + const bool vert = direction_ == LEFT_RIGHT;
|
| + return gfx::Size(vert ? kShortSide : kLongSide,
|
| + vert ? kLongSide : kShortSide);
|
| }
|
| void OnPaint(gfx::Canvas* canvas) override {
|
| - canvas->DrawImageInt(*image_, 0, 0);
|
| + cc::PaintFlags flags;
|
| + flags.setColor(SkColorSetA(SK_ColorBLACK, 0x7F));
|
| + flags.setAntiAlias(true);
|
| + canvas->DrawRoundRect(gfx::RectF(GetLocalBounds()), 2, flags);
|
| +
|
| + // Craft the left arrow.
|
| + const SkRect kArrowBounds = SkRect::MakeXYWH(4, 28, 4, 8);
|
| + SkPath path;
|
| + path.moveTo(kArrowBounds.right(), kArrowBounds.y());
|
| + path.lineTo(kArrowBounds.x(), kArrowBounds.centerY());
|
| + path.lineTo(kArrowBounds.right(), kArrowBounds.bottom());
|
| + path.close();
|
| +
|
| + // Do the same for the right arrow.
|
| + SkMatrix flip;
|
| + flip.setScale(-1, 1, kShortSide / 2, kLongSide / 2);
|
| + path.addPath(path, flip);
|
| +
|
| + // The arrows are drawn for the vertical orientation; rotate if need be.
|
| + if (direction_ == TOP_BOTTOM) {
|
| + SkMatrix transform;
|
| + constexpr int kHalfShort = kShortSide / 2;
|
| + constexpr int kHalfLong = kLongSide / 2;
|
| + transform.setRotate(90, kHalfShort, kHalfLong);
|
| + transform.postTranslate(kHalfLong - kHalfShort, kHalfShort - kHalfLong);
|
| + path.transform(transform);
|
| + }
|
| +
|
| + flags.setColor(SK_ColorWHITE);
|
| + canvas->DrawPath(path, flags);
|
| }
|
| +
|
| bool OnMousePressed(const ui::MouseEvent& event) override {
|
| gfx::Point location(event.location());
|
| views::View::ConvertPointToScreen(this, &location);
|
| controller_->StartResize(location);
|
| return true;
|
| }
|
| +
|
| bool OnMouseDragged(const ui::MouseEvent& event) override {
|
| gfx::Point location(event.location());
|
| views::View::ConvertPointToScreen(this, &location);
|
| controller_->Resize(location, event.flags());
|
| return true;
|
| }
|
| +
|
| void OnMouseReleased(const ui::MouseEvent& event) override {
|
| controller_->CompleteResize();
|
| }
|
| +
|
| void OnMouseCaptureLost() override { controller_->CancelResize(); }
|
| +
|
| gfx::NativeCursor GetCursor(const ui::MouseEvent& event) override {
|
| int component = (direction_ == LEFT_RIGHT) ? HTRIGHT : HTBOTTOM;
|
| return ::wm::CompoundEventFilter::CursorForWindowComponent(component);
|
| }
|
|
|
| private:
|
| + static constexpr int kLongSide = 64;
|
| + static constexpr int kShortSide = 28;
|
| +
|
| MultiWindowResizeController* controller_;
|
| const Direction direction_;
|
| - const gfx::ImageSkia* image_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ResizeView);
|
| };
|
|
|