Paint state transition for overlay 9 patch scrollbars
[chromium-blink-merge.git] / ui / app_list / views / folder_background_view.h
blobaf4e8cf06b98184400d7bf951f3067fabb0be6d4
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.
5 #ifndef UI_APP_LIST_VIEWS_FOLDER_BACKGROUND_VIEW_H_
6 #define UI_APP_LIST_VIEWS_FOLDER_BACKGROUND_VIEW_H_
8 #include "ui/compositor/layer_animation_observer.h"
9 #include "ui/views/view.h"
11 namespace app_list {
13 class AppListFolderView;
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,
26 FolderBackgroundView();
27 virtual ~FolderBackgroundView();
29 // Updates the ink bubble's ShowState.
30 void UpdateFolderContainerBubble(ShowState state);
32 // Returns the radius of the folder container ink bubble.
33 int GetFolderContainerBubbleRadius() const;
35 void set_folder_view(AppListFolderView* folder_view) {
36 folder_view_ = folder_view;
39 private:
40 // views::View overrides:
41 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
43 // ui::ImplicitAnimationObserver overrides:
44 virtual void OnImplicitAnimationsCompleted() OVERRIDE;
46 AppListFolderView* folder_view_;
47 ShowState show_state_;
49 DISALLOW_COPY_AND_ASSIGN(FolderBackgroundView);
52 } // namespace app_list
54 #endif // UI_APP_LIST_VIEWS_FOLDER_BACKGROUND_VIEW_H_