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 11namespace app_list { 12 13class AppListFolderView; 14 15// Draws the ink bubble indicating the boundary of the folder when user drags an 16// item inside a folder. 17class 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 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