1// Copyright (c) 2012 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_LAUNCHER_APP_LIST_BUTTON_H_
6#define ASH_LAUNCHER_APP_LIST_BUTTON_H_
7
8#include "ui/views/controls/button/image_button.h"
9
10namespace ash {
11namespace internal {
12
13class LauncherButtonHost;
14
15// Button used for the AppList icon on the launcher.
16class AppListButton : public views::ImageButton {
17 public:
18  AppListButton(views::ButtonListener* listener,
19                LauncherButtonHost* host);
20  virtual ~AppListButton();
21
22  void StartLoadingAnimation();
23  void StopLoadingAnimation();
24
25 protected:
26  // View overrides:
27  virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE;
28  virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE;
29  virtual void OnMouseCaptureLost() OVERRIDE;
30  virtual bool OnMouseDragged(const ui::MouseEvent& event) OVERRIDE;
31  virtual void OnMouseMoved(const ui::MouseEvent& event) OVERRIDE;
32  virtual void OnMouseEntered(const ui::MouseEvent& event) OVERRIDE;
33  virtual void OnMouseExited(const ui::MouseEvent& event) OVERRIDE;
34  virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
35
36 private:
37  LauncherButtonHost* host_;
38
39  DISALLOW_COPY_AND_ASSIGN(AppListButton);
40};
41
42}  // namespace internal
43}  // namespace ash
44
45#endif  // ASH_LAUNCHER_APP_LIST_BUTTON_H_
46