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