123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // Copyright 2016 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.
- #ifndef ASH_SHELF_SHELF_WINDOW_TARGETER_H_
- #define ASH_SHELF_SHELF_WINDOW_TARGETER_H_
- #include "ash/shelf/shelf_observer.h"
- #include "ui/aura/window_observer.h"
- #include "ui/wm/core/easy_resize_window_targeter.h"
- namespace ash {
- class Shelf;
- // ShelfWindowTargeter makes it easier to resize windows with the mouse when the
- // window-edge slightly overlaps with the shelf edge. The targeter also makes it
- // easier to drag the shelf out with touch while it is hidden.
- class ShelfWindowTargeter : public ::wm::EasyResizeWindowTargeter,
- public aura::WindowObserver,
- public ShelfObserver {
- public:
- ShelfWindowTargeter(aura::Window* container, Shelf* shelf);
- ShelfWindowTargeter(const ShelfWindowTargeter&) = delete;
- ShelfWindowTargeter& operator=(const ShelfWindowTargeter&) = delete;
- ~ShelfWindowTargeter() override;
- private:
- // ::wm::EasyResizeWindowTargeter:
- bool ShouldUseExtendedBounds(const aura::Window* window) const override;
- bool GetHitTestRects(aura::Window* target,
- gfx::Rect* hit_test_rect_mouse,
- gfx::Rect* hit_test_rect_touch) const override;
- // aura::WindowObserver:
- void OnWindowDestroying(aura::Window* window) override;
- // ShelfObserver:
- void WillChangeVisibilityState(ShelfVisibilityState new_state) override;
- Shelf* shelf_;
- };
- } // namespace ash
- #endif // ASH_SHELF_SHELF_WINDOW_TARGETER_H_
|