Index: ash/wm/shelf_layout_manager.h |
diff --git a/ash/wm/shelf_layout_manager.h b/ash/wm/shelf_layout_manager.h |
index 2666e8c6fa120f89e17aa8d721c412c589e1d35d..0a4a018ad7ac02e1bb9999b2549c82ff2c4bc750 100644 |
--- a/ash/wm/shelf_layout_manager.h |
+++ b/ash/wm/shelf_layout_manager.h |
@@ -11,6 +11,7 @@ |
#include "ash/shell_observer.h" |
#include "base/basictypes.h" |
#include "base/compiler_specific.h" |
+#include "base/logging.h" |
#include "base/observer_list.h" |
#include "base/timer.h" |
#include "ui/aura/layout_manager.h" |
@@ -76,7 +77,7 @@ class ASH_EXPORT ShelfLayoutManager : |
// Sets the alignment. Returns true if the alignment is changed. Otherwise, |
// returns false. |
bool SetAlignment(ShelfAlignment alignment); |
- ShelfAlignment alignment() const { return alignment_; } |
+ ShelfAlignment GetAlignment() const { return alignment_; } |
void set_workspace_controller(WorkspaceController* controller) { |
workspace_controller_ = controller; |
@@ -156,6 +157,36 @@ class ASH_EXPORT ShelfLayoutManager : |
virtual void OnWindowActivated(aura::Window* active, |
aura::Window* old_active) OVERRIDE; |
+ // TODO(harrym|oshima): These templates will be moved to |
+ // new Shelf class. |
+ // A helper function that provides a shortcut for choosing |
+ // values specific to a shelf alignment. |
+ template<typename T> |
+ T SelectValueForShelfAlignment(T bottom, T left, T right) const { |
+ switch (alignment_) { |
+ case SHELF_ALIGNMENT_BOTTOM: |
+ return bottom; |
+ case SHELF_ALIGNMENT_LEFT: |
+ return left; |
+ case SHELF_ALIGNMENT_RIGHT: |
+ return right; |
+ } |
+ NOTREACHED(); |
+ return right; |
+ } |
+ |
+ template<typename T> |
+ T PrimaryAxisValue(T horizontal, T vertical) const { |
+ return IsHorizontalAlignment() ? horizontal : vertical; |
+ } |
+ |
+ // Is the shelf's alignment horizontal? |
+ bool IsHorizontalAlignment() const; |
+ |
+ // Returns a ShelfLayoutManager on the display which has a launcher for |
+ // given |window|. See RootWindowController::ForLauncher for more info. |
+ static ShelfLayoutManager* ForLauncher(aura::Window* window); |
+ |
private: |
class AutoHideEventFilter; |
class UpdateShelfObserver; |
@@ -234,10 +265,6 @@ class ASH_EXPORT ShelfLayoutManager : |
int GetWorkAreaSize(const State& state, int size) const; |
- int axis_position(int x, int y) const { |
- return alignment_ == SHELF_ALIGNMENT_BOTTOM ? y : x; |
- } |
- |
// The RootWindow is cached so that we don't invoke Shell::GetInstance() from |
// our destructor. We avoid that as at the time we're deleted Shell is being |
// deleted too. |