1 // Copyright 2014 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 UI_APP_LIST_VIEWS_FOLDER_BACKGROUND_VIEW_H_ 6 #define UI_APP_LIST_VIEWS_FOLDER_BACKGROUND_VIEW_H_ 7 8 #include "ui/compositor/layer_animation_observer.h" 9 #include "ui/views/view.h" 10 11 namespace app_list { 12 13 class AppListFolderView; 14 15 // Draws the ink bubble indicating the boundary of the folder when user drags an 16 // item inside a folder. 17 class FolderBackgroundView : public views::View, 18 public ui::ImplicitAnimationObserver { 19 public: 20 enum ShowState { 21 NO_BUBBLE, 22 SHOW_BUBBLE, 23 HIDE_BUBBLE, 24 }; 25 26 FolderBackgroundView(); 27 virtual ~FolderBackgroundView(); 28 29 // Updates the ink bubble's ShowState. 30 void UpdateFolderContainerBubble(ShowState state); 31 32 // Returns the radius of the folder container ink bubble. 33 int GetFolderContainerBubbleRadius() const; 34 set_folder_view(AppListFolderView * folder_view)35 void set_folder_view(AppListFolderView* folder_view) { 36 folder_view_ = folder_view; 37 } 38 39 private: 40 // views::View overrides: 41 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; 42 43 // ui::ImplicitAnimationObserver overrides: 44 virtual void OnImplicitAnimationsCompleted() OVERRIDE; 45 46 AppListFolderView* folder_view_; 47 ShowState show_state_; 48 49 DISALLOW_COPY_AND_ASSIGN(FolderBackgroundView); 50 }; 51 52 } // namespace app_list 53 54 #endif // UI_APP_LIST_VIEWS_FOLDER_BACKGROUND_VIEW_H_ 55