summaryrefslogtreecommitdiffstats
path: root/ash/wm/panel_layout_manager.h
diff options
context:
space:
mode:
authordcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-21 00:07:33 +0000
committerdcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-21 00:07:33 +0000
commit1eb18d93bae4e4d346da0a91acc62b1761a84b38 (patch)
tree78e4bd4b736fd060cd1f1ce6dd45412ae0bb0307 /ash/wm/panel_layout_manager.h
parent77f93a0fee5d33d31c4a28443f576f38b845194a (diff)
downloadchromium_src-1eb18d93bae4e4d346da0a91acc62b1761a84b38.zip
chromium_src-1eb18d93bae4e4d346da0a91acc62b1761a84b38.tar.gz
chromium_src-1eb18d93bae4e4d346da0a91acc62b1761a84b38.tar.bz2
Draw panels above their launcher icons.
Note that this patch doesn't handle dragging panels to rearrange them (if we want that at all) and panels with no launcher icon because they are in overflow. BUG=124115 TEST=aura_shell_unittests --gtest_filter=*Panel* --aura-panels Review URL: https://chromiumcodereview.appspot.com/10091017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133309 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/wm/panel_layout_manager.h')
-rw-r--r--ash/wm/panel_layout_manager.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/ash/wm/panel_layout_manager.h b/ash/wm/panel_layout_manager.h
index 07ffd0e..8ec53d5 100644
--- a/ash/wm/panel_layout_manager.h
+++ b/ash/wm/panel_layout_manager.h
@@ -9,6 +9,7 @@
#include <list>
#include "ash/ash_export.h"
+#include "ash/launcher/launcher_icon_observer.h"
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "ui/aura/layout_manager.h"
@@ -22,6 +23,8 @@ class Rect;
}
namespace ash {
+class Launcher;
+
namespace internal {
// PanelLayoutManager is responsible for organizing panels within the
@@ -33,7 +36,8 @@ namespace internal {
// its layout manager to this instance, e.g.:
// panel_container->SetLayoutManager(new PanelLayoutManager(panel_container));
-class ASH_EXPORT PanelLayoutManager : public aura::LayoutManager {
+class ASH_EXPORT PanelLayoutManager : public aura::LayoutManager,
+ public ash::LauncherIconObserver {
public:
explicit PanelLayoutManager(aura::Window* panel_container);
virtual ~PanelLayoutManager();
@@ -43,6 +47,8 @@ class ASH_EXPORT PanelLayoutManager : public aura::LayoutManager {
void ToggleMinimize(aura::Window* panel);
+ void SetLauncher(ash::Launcher* launcher);
+
// Overridden from aura::LayoutManager:
virtual void OnWindowResized() OVERRIDE;
virtual void OnWindowAddedToLayout(aura::Window* child) OVERRIDE;
@@ -53,6 +59,9 @@ class ASH_EXPORT PanelLayoutManager : public aura::LayoutManager {
virtual void SetChildBounds(aura::Window* child,
const gfx::Rect& requested_bounds) OVERRIDE;
+ // Overriden from ash::LauncherIconObserver
+ virtual void OnLauncherIconPositionsChanged() OVERRIDE;
+
private:
typedef std::list<aura::Window*> PanelList;
@@ -68,6 +77,8 @@ class ASH_EXPORT PanelLayoutManager : public aura::LayoutManager {
aura::Window* dragged_panel_;
+ Launcher* launcher_;
+
DISALLOW_COPY_AND_ASSIGN(PanelLayoutManager);
};