Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2280)

Unified Diff: ash/common/shelf/wm_shelf.h

Issue 2734653002: chromeos: Move files in //ash/common to //ash (Closed)
Patch Set: fix a11y tests, fix docs Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/shelf/shelf_window_watcher_unittest.cc ('k') | ash/common/shelf/wm_shelf.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/shelf/wm_shelf.h
diff --git a/ash/common/shelf/wm_shelf.h b/ash/common/shelf/wm_shelf.h
deleted file mode 100644
index b2e858a7976c7a7be42cc8a369fb03be4730c439..0000000000000000000000000000000000000000
--- a/ash/common/shelf/wm_shelf.h
+++ /dev/null
@@ -1,188 +0,0 @@
-// 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_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/public/cpp/shelf_types.h"
-#include "base/observer_list.h"
-
-namespace gfx {
-class Rect;
-}
-
-namespace ui {
-class GestureEvent;
-}
-
-namespace ash {
-
-enum class AnimationChangeType;
-class ShelfBezelEventHandler;
-class ShelfLayoutManager;
-class ShelfLayoutManagerTest;
-class ShelfLockingManager;
-class ShelfView;
-class ShelfWidget;
-class StatusAreaWidget;
-class WmShelfObserver;
-class WmWindow;
-
-// 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:
- WmShelf();
- ~WmShelf() override;
-
- // Returns the shelf for the display that |window| is on. Note that the shelf
- // widget may not exist, or the shelf may not be visible.
- static WmShelf* ForWindow(WmWindow* window);
-
- // Returns if shelf alignment options are enabled, and the user is able to
- // adjust the alignment (eg. not allowed in guest and supervised user modes).
- static bool CanChangeShelfAlignment();
-
- void CreateShelfWidget(WmWindow* root);
- void ShutdownShelfWidget();
- void DestroyShelfWidget();
-
- ShelfLayoutManager* shelf_layout_manager() const {
- return shelf_layout_manager_;
- }
-
- ShelfWidget* shelf_widget() { return shelf_widget_.get(); }
-
- // Creates the shelf view.
- void CreateShelfView();
-
- // TODO(jamescook): Eliminate this method.
- void ShutdownShelf();
-
- // True after the ShelfView has been created (e.g. after login).
- bool IsShelfInitialized() const;
-
- // Returns the window showing the shelf.
- WmWindow* GetWindow();
-
- 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).
- bool IsHorizontalAlignment() const;
-
- // Returns a value based on shelf alignment.
- int SelectValueForShelfAlignment(int bottom, int left, int right) const;
-
- // Returns |horizontal| is shelf is horizontal, otherwise |vertical|.
- int PrimaryAxisValue(int horizontal, int vertical) const;
-
- ShelfAutoHideBehavior auto_hide_behavior() const {
- return auto_hide_behavior_;
- }
- void SetAutoHideBehavior(ShelfAutoHideBehavior behavior);
-
- ShelfAutoHideState GetAutoHideState() const;
-
- // Invoke when the auto-hide state may have changed (for example, when the
- // system tray bubble opens it should force the shelf to be visible).
- void UpdateAutoHideState();
-
- ShelfBackgroundType GetBackgroundType() const;
-
- // Whether the shelf view is visible.
- // TODO(jamescook): Consolidate this with GetVisibilityState().
- bool IsVisible() const;
-
- void UpdateVisibilityState();
-
- ShelfVisibilityState GetVisibilityState() const;
-
- // Returns the ideal bounds of the shelf assuming it is visible.
- gfx::Rect GetIdealBounds();
-
- gfx::Rect GetUserWorkAreaBounds() const;
-
- // Updates the icon position given the current window bounds. This is used
- // when dragging panels to reposition them with respect to the other panels.
- void UpdateIconPositionForPanel(WmWindow* window);
-
- // Returns the screen bounds of the item for the specified window. If there is
- // no item for the specified window an empty rect is returned.
- gfx::Rect GetScreenBoundsOfItemIconForWindow(WmWindow* window);
-
- // Launch a 0-indexed shelf item in the shelf. A negative index launches the
- // last shelf item in the shelf.
- static void LaunchShelfItem(int item_index);
-
- // Activates the shelf item specified by the index in the list of shelf items.
- static void ActivateShelfItem(int item_index);
-
- // Handles a gesture |event| coming from a source outside the shelf widget
- // (e.g. the status area widget). Allows support for behaviors like toggling
- // auto-hide with a swipe, even if that gesture event hits another window.
- // Returns true if the event was handled.
- bool ProcessGestureEvent(const ui::GestureEvent& event);
-
- void AddObserver(WmShelfObserver* observer);
- void RemoveObserver(WmShelfObserver* observer);
-
- void NotifyShelfIconPositionsChanged();
- StatusAreaWidget* GetStatusAreaWidget() const;
-
- void SetVirtualKeyboardBoundsForTesting(const gfx::Rect& bounds);
- ShelfLockingManager* GetShelfLockingManagerForTesting();
- ShelfView* GetShelfViewForTesting();
-
- protected:
- // ShelfLayoutManagerObserver:
- void WillDeleteShelfLayoutManager() override;
- void WillChangeVisibilityState(ShelfVisibilityState new_state) override;
- void OnAutoHideStateChanged(ShelfAutoHideState new_state) override;
- void OnBackgroundUpdated(ShelfBackgroundType background_type,
- AnimationChangeType change_type) override;
-
- private:
- class AutoHideEventHandler;
- friend class ShelfLayoutManagerTest;
-
- // Layout manager for the shelf container window. Instances are constructed by
- // ShelfWidget and lifetimes are managed by the container windows themselves.
- ShelfLayoutManager* shelf_layout_manager_ = nullptr;
-
- std::unique_ptr<ShelfWidget> shelf_widget_;
-
- // Internal implementation detail. Do not expose externally. Owned by views
- // hierarchy. Null before login and in secondary display init.
- ShelfView* shelf_view_ = nullptr;
-
- // These initial values hide the shelf until user preferences are available.
- ShelfAlignment alignment_ = SHELF_ALIGNMENT_BOTTOM_LOCKED;
- ShelfAutoHideBehavior auto_hide_behavior_ = SHELF_AUTO_HIDE_ALWAYS_HIDDEN;
-
- // Sets shelf alignment to bottom during login and screen lock.
- std::unique_ptr<ShelfLockingManager> shelf_locking_manager_;
-
- base::ObserverList<WmShelfObserver> observers_;
-
- // Forwards mouse and gesture events to ShelfLayoutManager for auto-hide.
- // TODO(mash): Facilitate simliar functionality in mash: crbug.com/631216
- std::unique_ptr<AutoHideEventHandler> auto_hide_event_handler_;
-
- // Forwards touch gestures on a bezel sensor to the shelf.
- // TODO(mash): Facilitate simliar functionality in mash: crbug.com/636647
- std::unique_ptr<ShelfBezelEventHandler> bezel_event_handler_;
-
- DISALLOW_COPY_AND_ASSIGN(WmShelf);
-};
-
-} // namespace ash
-
-#endif // ASH_COMMON_SHELF_WM_SHELF_H_
« no previous file with comments | « ash/common/shelf/shelf_window_watcher_unittest.cc ('k') | ash/common/shelf/wm_shelf.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698