Context menu for multiple launchers
- move the code to create/open context menu from launcher to 
  root window controller.
- updated methods that access shelf/launcher state to take root window so that menu can specify on which display it is working on.

BUG=145978, 155776
TEST=none

Review URL: https://chromiumcodereview.appspot.com/11198078

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163459 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/ash/root_window_controller.h b/ash/root_window_controller.h
index 170c0c2..e264b3c 100644
--- a/ash/root_window_controller.h
+++ b/ash/root_window_controller.h
@@ -13,6 +13,10 @@
 
 class SkBitmap;
 
+namespace gfx {
+class Point;
+}
+
 namespace aura {
 class EventFilter;
 class RootWindow;
@@ -73,6 +77,10 @@
     return status_area_widget_;
   }
 
+  // Shows context menu at the |location_in_screen|. This uses
+  // |ShellDelegate::CreateContextMenu| to define the content of the menu.
+  void ShowContextMenu(const gfx::Point& location_in_screen);
+
   // Returns the layout-manager for the appropriate modal-container. If the
   // window is inside the lockscreen modal container, then the layout manager
   // for that is returned. Otherwise the layout manager for the default modal
@@ -135,7 +143,11 @@
   bool SetShelfAlignment(ShelfAlignment alignment);
   ShelfAlignment GetShelfAlignment();
 
-private:
+  // Get the shelf's auto hide status.
+  bool IsShelfAutoHideMenuHideChecked();
+  ShelfAutoHideBehavior GetToggledShelfAutoHideBehavior();
+
+ private:
   // Creates each of the special window containers that holds windows of various
   // types in the shell UI.
   void CreateContainersInRootWindow(aura::RootWindow* root_window);