Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / app_list / linux / app_list_linux.h
index bf7d0e9..1640b53 100644 (file)
@@ -5,10 +5,7 @@
 #ifndef CHROME_BROWSER_UI_VIEWS_APP_LIST_LINUX_APP_LIST_LINUX_H_
 #define CHROME_BROWSER_UI_VIEWS_APP_LIST_LINUX_APP_LIST_LINUX_H_
 
-#include "base/callback.h"
-#include "chrome/browser/ui/app_list/app_list.h"
 #include "chrome/browser/ui/app_list/app_list_positioner.h"
-#include "ui/app_list/views/app_list_view_observer.h"
 
 namespace app_list {
 class AppListView;
@@ -20,15 +17,15 @@ class Point;
 class Size;
 }  // namespace gfx
 
-// Responsible for positioning, hiding and showing an AppListView on Linux.
-// This includes watching window activation/deactivation messages to determine
-// if the user has clicked away from it.
-class AppListLinux : public AppList,
-                     public app_list::AppListViewObserver {
+// Responsible for positioning an AppListView on Linux.
+// TODO(tapted): Shouldn't be a class - move the static member functions out.
+class AppListLinux {
  public:
-  AppListLinux(app_list::AppListView* view,
-               const base::Closure& on_should_dismiss);
-  virtual ~AppListLinux();
+  // Determines which screen edge the shelf is aligned to. This tries to find
+  // the edge of the surface where the user normally launches apps from (so, for
+  // example, on Gnome Classic, this is the applications menu, not the taskbar).
+  static AppListPositioner::ScreenEdge ShelfLocationInDisplay(
+      const gfx::Display& display);
 
   // Finds the position for a window to anchor it to the shelf. This chooses the
   // most appropriate position for the window based on whether the shelf exists,
@@ -38,30 +35,10 @@ class AppListLinux : public AppList,
   static gfx::Point FindAnchorPoint(const gfx::Size& view_size,
                                     const gfx::Display& display,
                                     const gfx::Point& cursor,
-                                    AppListPositioner::ScreenEdge edge);
+                                    AppListPositioner::ScreenEdge edge,
+                                    bool center_window);
 
-  // AppList:
-  virtual void Show() OVERRIDE;
-  virtual void Hide() OVERRIDE;
-  virtual void MoveNearCursor() OVERRIDE;
-  virtual bool IsVisible() OVERRIDE;
-  virtual void Prerender() OVERRIDE;
-  virtual void ReactivateOnNextFocusLoss() OVERRIDE;
-  virtual gfx::NativeWindow GetWindow() OVERRIDE;
-  virtual void SetProfile(Profile* profile) OVERRIDE;
-
-  // app_list::AppListViewObserver:
-  virtual void OnActivationChanged(views::Widget* widget, bool active) OVERRIDE;
-
- private:
-  // Weak pointer. The view manages its own lifetime.
-  app_list::AppListView* view_;
-  bool window_icon_updated_;
-
-  // Called to request |view_| be closed.
-  base::Closure on_should_dismiss_;
-
-  DISALLOW_COPY_AND_ASSIGN(AppListLinux);
+  static void MoveNearCursor(app_list::AppListView* view);
 };
 
 #endif  // CHROME_BROWSER_UI_VIEWS_APP_LIST_LINUX_APP_LIST_LINUX_H_