blob: 06f2616bf016e9b83fd639479ff9162528a97d8c [file] [log] [blame]
// 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_AURA_WM_SHELF_AURA_H_
#define ASH_AURA_WM_SHELF_AURA_H_
#include "ash/ash_export.h"
#include "ash/common/shelf/wm_shelf.h"
#include "base/macros.h"
namespace ash {
class ShelfBezelEventHandler;
// Aura implementation of WmShelf.
class ASH_EXPORT WmShelfAura : public WmShelf {
public:
WmShelfAura();
~WmShelfAura() override;
// WmShelf:
WmDimmerView* CreateDimmerView(bool disable_animations_for_test) override;
void CreateShelfWidget(WmWindow* root) override;
void WillDeleteShelfLayoutManager() override;
void WillChangeVisibilityState(ShelfVisibilityState new_state) override;
private:
class AutoHideEventHandler;
// 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(WmShelfAura);
};
} // namespace ash
#endif // ASH_AURA_WM_SHELF_AURA_H_