X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fui%2Fapp_list%2Fviews%2Fapps_container_view.h;h=7b23f8fe5ec7cd4da02e200052565c2ace6a993b;hb=ff3e2503a20db9193d323c1d19c38c68004dec4a;hp=2d339d5a441716df6f30a9eb16d3b8c1ced22d67;hpb=7338fba38ba696536d1cc9d389afd716a6ab2fe6;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/ui/app_list/views/apps_container_view.h b/src/ui/app_list/views/apps_container_view.h index 2d339d5..7b23f8f 100644 --- a/src/ui/app_list/views/apps_container_view.h +++ b/src/ui/app_list/views/apps_container_view.h @@ -6,6 +6,7 @@ #define UI_APP_LIST_VIEWS_APPS_CONTAINER_VIEW_H_ #include "ui/app_list/app_list_folder_item.h" +#include "ui/app_list/views/top_icon_animation_view.h" #include "ui/views/view.h" namespace content { @@ -15,26 +16,15 @@ class WebContents; namespace app_list { class AppsGridView; +class ApplicationDragAndDropHost; class AppListFolderItem; class AppListFolderView; class AppListMainView; class AppListModel; class ContentsView; +class FolderBackgroundView; class PaginationModel; -class TopIconAnimationObserver { - public: - // Called when top icon animation completes. - virtual void OnTopIconAnimationsComplete(views::View* icon_view) {} - - protected: - TopIconAnimationObserver() {} - virtual ~TopIconAnimationObserver() {} - - private: - DISALLOW_COPY_AND_ASSIGN(TopIconAnimationObserver); -}; - // AppsContainerView contains a root level AppsGridView to render the root level // app items, and a AppListFolderView to render the app items inside the // active folder. Only one if them is visible to user at any time. @@ -51,26 +41,40 @@ class AppsContainerView : public views::View, void ShowActiveFolder(AppListFolderItem* folder_item); // Shows the root level apps list. This is called when UI navigate back from - // a folder view with |folder_item|. + // a folder view with |folder_item|. If |folder_item| is NULL skips animation. void ShowApps(AppListFolderItem* folder_item); - // Overridden from views::View: + // Sets |drag_and_drop_host_| for the current app list in both + // app_list_folder_view_ and root level apps_grid_view_. + void SetDragAndDropHostOfCurrentAppList( + ApplicationDragAndDropHost* drag_and_drop_host); + + // Transits the UI from folder view to root lelve apps grid view when + // re-parenting a child item of |folder_item|. + void ReparentFolderItemTransit(AppListFolderItem* folder_item); + + // views::View overrides: virtual gfx::Size GetPreferredSize() OVERRIDE; virtual void Layout() OVERRIDE; virtual bool OnKeyPressed(const ui::KeyEvent& event) OVERRIDE; - // Overridden from TopIconAnimationObserver. - virtual void OnTopIconAnimationsComplete(views::View* icon_view) OVERRIDE; + // TopIconAnimationObserver overrides: + virtual void OnTopIconAnimationsComplete() OVERRIDE; AppsGridView* apps_grid_view() { return apps_grid_view_; } + FolderBackgroundView* folder_background_view() { + return folder_background_view_; + } + AppListFolderView* app_list_folder_view() { return app_list_folder_view_; } private: enum ShowState { SHOW_APPS, SHOW_ACTIVE_FOLDER, + SHOW_ITEM_REPARENT, }; - void SetShowState(ShowState show_state); + void SetShowState(ShowState show_state, bool show_apps_with_animation); // Calculates the top item icon bounds in the active folder icon. The bounds // is relative to AppsContainerView. @@ -83,15 +87,20 @@ class AppsContainerView : public views::View, void CreateViewsForFolderTopItemsAnimation( AppListFolderItem* active_folder, bool open_folder); + void PrepareToShowApps(AppListFolderItem* folder_item); + AppListModel* model_; AppsGridView* apps_grid_view_; // Owned by views hierarchy. AppListFolderView* app_list_folder_view_; // Owned by views hierarchy. + FolderBackgroundView* folder_background_view_; // Owned by views hierarchy. ShowState show_state_; // The transitional views for animating the top items in folder // when opening or closing a folder. std::vector top_icon_views_; + size_t top_icon_animation_pending_count_; + DISALLOW_COPY_AND_ASSIGN(AppsContainerView); };