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