Chromium Code Reviews| Index: ash/common/shelf/wm_shelf.h |
| diff --git a/ash/common/shelf/wm_shelf.h b/ash/common/shelf/wm_shelf.h |
| index 172a529c74cf431db12be0341996e2f57055dde9..33f4450941b68fdb525cd4cee2329bfb93771373 100644 |
| --- a/ash/common/shelf/wm_shelf.h |
| +++ b/ash/common/shelf/wm_shelf.h |
| @@ -5,6 +5,8 @@ |
| #ifndef ASH_COMMON_SHELF_WM_SHELF_H_ |
| #define ASH_COMMON_SHELF_WM_SHELF_H_ |
| +#include <memory> |
| + |
| #include "ash/ash_export.h" |
| #include "ash/common/shelf/shelf_layout_manager_observer.h" |
| #include "ash/common/shelf/shelf_types.h" |
| @@ -24,12 +26,14 @@ class Shelf; |
| class ShelfLayoutManager; |
| class ShelfLockingManager; |
| class ShelfView; |
| +class ShelfWidget; |
| class StatusAreaWidget; |
| class WmDimmerView; |
| class WmShelfObserver; |
| class WmWindow; |
| -// Used for accessing global state. |
| +// Controller for the shelf state. Exists for the lifetime of each root window |
| +// controller. Note that the shelf widget may not be created until after login. |
| class ASH_EXPORT WmShelf : public ShelfLayoutManagerObserver { |
| public: |
| void SetShelf(Shelf* shelf); |
| @@ -44,7 +48,9 @@ class ASH_EXPORT WmShelf : public ShelfLayoutManagerObserver { |
| // Returns the window showing the shelf. |
| WmWindow* GetWindow(); |
| - ShelfAlignment GetAlignment() const; |
| + ShelfAlignment alignment() const { return alignment_; } |
| + // TODO(jamescook): Replace with alignment(). |
| + ShelfAlignment GetAlignment() const { return alignment_; } |
| void SetAlignment(ShelfAlignment alignment); |
| // Returns true if the shelf alignment is horizontal (i.e. at the bottom). |
| @@ -56,7 +62,9 @@ class ASH_EXPORT WmShelf : public ShelfLayoutManagerObserver { |
| // Returns |horizontal| is shelf is horizontal, otherwise |vertical|. |
| int PrimaryAxisValue(int horizontal, int vertical) const; |
| - ShelfAutoHideBehavior GetAutoHideBehavior() const; |
| + ShelfAutoHideBehavior auto_hide_behavior() const { |
| + return auto_hide_behavior_; |
| + } |
| void SetAutoHideBehavior(ShelfAutoHideBehavior behavior); |
| ShelfAutoHideState GetAutoHideState() const; |
| @@ -112,6 +120,7 @@ class ASH_EXPORT WmShelf : public ShelfLayoutManagerObserver { |
| void SetVirtualKeyboardBoundsForTesting(const gfx::Rect& bounds); |
| ShelfLockingManager* GetShelfLockingManagerForTesting(); |
| ShelfView* GetShelfViewForTesting(); |
| + ShelfWidget* GetShelfWidgetForTesting(); |
| protected: |
| WmShelf(); |
| @@ -133,6 +142,13 @@ class ASH_EXPORT WmShelf : public ShelfLayoutManagerObserver { |
| // ShelfWidget and lifetimes are managed by the container windows themselves. |
| ShelfLayoutManager* shelf_layout_manager_ = nullptr; |
| + ShelfAlignment alignment_ = SHELF_ALIGNMENT_BOTTOM_LOCKED; |
| + |
| + // Sets shelf alignment to bottom during login and screen lock. |
| + std::unique_ptr<ShelfLockingManager> shelf_locking_manager_; |
|
msw
2016/08/24 00:18:59
Too bad this needs to be a unique_ptr now. We coul
|
| + |
| + ShelfAutoHideBehavior auto_hide_behavior_ = SHELF_AUTO_HIDE_BEHAVIOR_NEVER; |
| + |
| base::ObserverList<WmShelfObserver> observers_; |
| DISALLOW_COPY_AND_ASSIGN(WmShelf); |