Index: ash/shell/example_app_list_presenter.cc |
diff --git a/ash/shell/example_app_list_presenter.cc b/ash/shell/example_app_list_presenter.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0ade6d2ffb638977e4098edac9de1cdd962db2de |
--- /dev/null |
+++ b/ash/shell/example_app_list_presenter.cc |
@@ -0,0 +1,66 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "ash/shell/example_app_list_presenter.h" |
+ |
+#include "ash/app_list/app_list_presenter_delegate_factory.h" |
+#include "ash/shell/example_factory.h" |
+#include "ui/app_list/presenter/app_list_view_delegate_factory.h" |
+ |
+namespace { |
+ |
+// An example app list view delegate factory. |
+class ExampleAppListViewDelegateFactory |
+ : public app_list::AppListViewDelegateFactory { |
+ public: |
+ ExampleAppListViewDelegateFactory() |
+ : app_list_view_delegate_(ash::shell::CreateAppListViewDelegate()) {} |
+ ~ExampleAppListViewDelegateFactory() override {} |
+ |
+ // app_list::AppListViewDelegateFactory: |
+ app_list::AppListViewDelegate* GetDelegate() override { |
+ return app_list_view_delegate_.get(); |
+ } |
+ |
+ private: |
+ std::unique_ptr<app_list::AppListViewDelegate> app_list_view_delegate_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ExampleAppListViewDelegateFactory); |
+}; |
+ |
+} // namespace |
+ |
+namespace ash { |
+namespace shell { |
+ |
+ExampleAppListPresenter::ExampleAppListPresenter() |
+ : binding_(this), |
+ app_list_presenter_impl_( |
+ base::MakeUnique<AppListPresenterDelegateFactory>( |
+ base::MakeUnique<ExampleAppListViewDelegateFactory>())) { |
+ // Note: This example |app_list_presenter_impl_| does not report visibility |
+ // changes to the app_list::mojom::AppList implementation owned by WmShell. |
+} |
+ |
+ExampleAppListPresenter::~ExampleAppListPresenter() {} |
+ |
+app_list::mojom::AppListPresenterPtr |
+ExampleAppListPresenter::CreateInterfacePtrAndBind() { |
+ return binding_.CreateInterfacePtrAndBind(); |
+} |
+ |
+void ExampleAppListPresenter::Show(int64_t display_id) { |
+ app_list_presenter_impl_.Show(display_id); |
+} |
+ |
+void ExampleAppListPresenter::Dismiss() { |
+ app_list_presenter_impl_.Dismiss(); |
+} |
+ |
+void ExampleAppListPresenter::ToggleAppList(int64_t display_id) { |
+ app_list_presenter_impl_.ToggleAppList(display_id); |
+} |
+ |
+} // namespace shell |
+} // namespace ash |