1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef ASH_FIRST_RUN_FIRST_RUN_HELPER_IMPL_H_
6#define ASH_FIRST_RUN_FIRST_RUN_HELPER_IMPL_H_
7
8#include "ash/first_run/first_run_helper.h"
9#include "ash/first_run/desktop_cleaner.h"
10#include "ash/wm/overlay_event_filter.h"
11#include "base/compiler_specific.h"
12
13namespace ash {
14
15class Shell;
16
17class FirstRunHelperImpl : public FirstRunHelper,
18                           public OverlayEventFilter::Delegate {
19 public:
20  FirstRunHelperImpl();
21  virtual ~FirstRunHelperImpl();
22
23  // Overriden from FirstRunHelper.
24  virtual views::Widget* GetOverlayWidget() OVERRIDE;
25  virtual void OpenAppList() OVERRIDE;
26  virtual void CloseAppList() OVERRIDE;
27  virtual gfx::Rect GetLauncherBounds() OVERRIDE;
28  virtual gfx::Rect GetAppListButtonBounds() OVERRIDE;
29  virtual gfx::Rect GetAppListBounds() OVERRIDE;
30  virtual void OpenTrayBubble() OVERRIDE;
31  virtual void CloseTrayBubble() OVERRIDE;
32  virtual bool IsTrayBubbleOpened() OVERRIDE;
33  virtual gfx::Rect GetTrayBubbleBounds() OVERRIDE;
34  virtual gfx::Rect GetHelpButtonBounds() OVERRIDE;
35
36  // Overriden from OverlayEventFilter::Delegate.
37  virtual void Cancel() OVERRIDE;
38  virtual bool IsCancelingKeyEvent(ui::KeyEvent* event) OVERRIDE;
39  virtual aura::Window* GetWindow() OVERRIDE;
40
41 private:
42  views::Widget* widget_;
43  DesktopCleaner cleaner_;
44
45  DISALLOW_COPY_AND_ASSIGN(FirstRunHelperImpl);
46};
47
48}  // namespace ash
49
50#endif  // ASH_FIRST_RUN_FIRST_RUN_HELPER_IMPL_H_
51
52