Home | History | Annotate | Download | only in app_list
      1 // Copyright (c) 2012 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 CHROME_BROWSER_UI_APP_LIST_APP_LIST_VIEW_DELEGATE_H_
      6 #define CHROME_BROWSER_UI_APP_LIST_APP_LIST_VIEW_DELEGATE_H_
      7 
      8 #include <string>
      9 
     10 #include "base/basictypes.h"
     11 #include "base/callback_forward.h"
     12 #include "base/compiler_specific.h"
     13 #include "base/memory/scoped_ptr.h"
     14 #include "ui/app_list/app_list_view_delegate.h"
     15 
     16 class AppListControllerDelegate;
     17 class AppsModelBuilder;
     18 class Profile;
     19 
     20 namespace app_list {
     21 class SearchController;
     22 }
     23 
     24 namespace base {
     25 class FilePath;
     26 }
     27 
     28 namespace gfx {
     29 class ImageSkia;
     30 }
     31 
     32 #if defined(USE_ASH)
     33 class AppSyncUIStateWatcher;
     34 #endif
     35 
     36 class AppListViewDelegate : public app_list::AppListViewDelegate {
     37  public:
     38   // The delegate will take ownership of the controller.
     39   AppListViewDelegate(AppListControllerDelegate* controller, Profile* profile);
     40   virtual ~AppListViewDelegate();
     41 
     42  private:
     43   // Overridden from app_list::AppListViewDelegate:
     44   virtual void SetModel(app_list::AppListModel* model) OVERRIDE;
     45   virtual app_list::SigninDelegate* GetSigninDelegate() OVERRIDE;
     46   virtual void GetShortcutPathForApp(
     47       const std::string& app_id,
     48       const base::Callback<void(const base::FilePath&)>& callback) OVERRIDE;
     49   virtual void ActivateAppListItem(app_list::AppListItemModel* item,
     50                                    int event_flags) OVERRIDE;
     51   virtual void StartSearch() OVERRIDE;
     52   virtual void StopSearch() OVERRIDE;
     53   virtual void OpenSearchResult(app_list::SearchResult* result,
     54                                 int event_flags) OVERRIDE;
     55   virtual void InvokeSearchResultAction(app_list::SearchResult* result,
     56                                         int action_index,
     57                                         int event_flags) OVERRIDE;
     58   virtual void Dismiss() OVERRIDE;
     59   virtual void ViewClosing() OVERRIDE;
     60   virtual void ViewActivationChanged(bool active) OVERRIDE;
     61   virtual gfx::ImageSkia GetWindowIcon() OVERRIDE;
     62   virtual string16 GetCurrentUserName() OVERRIDE;
     63   virtual string16 GetCurrentUserEmail() OVERRIDE;
     64   virtual void OpenSettings() OVERRIDE;
     65   virtual void OpenHelp() OVERRIDE;
     66   virtual void OpenFeedback() OVERRIDE;
     67 
     68   scoped_ptr<app_list::SigninDelegate> signin_delegate_;
     69   scoped_ptr<AppsModelBuilder> apps_builder_;
     70   scoped_ptr<app_list::SearchController> search_controller_;
     71   scoped_ptr<AppListControllerDelegate> controller_;
     72   Profile* profile_;
     73 
     74 #if defined(USE_ASH)
     75   scoped_ptr<AppSyncUIStateWatcher> app_sync_ui_state_watcher_;
     76 #endif
     77 
     78   DISALLOW_COPY_AND_ASSIGN(AppListViewDelegate);
     79 };
     80 
     81 #endif  // CHROME_BROWSER_UI_APP_LIST_APP_LIST_VIEW_DELEGATE_H_
     82