app_list_view_provider.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright 2022 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. #ifndef ASH_APP_LIST_APP_LIST_VIEW_PROVIDER_H_
  5. #define ASH_APP_LIST_APP_LIST_VIEW_PROVIDER_H_
  6. #include "ash/ash_export.h"
  7. namespace ash {
  8. class AppListToastContainerView;
  9. class AppsGridView;
  10. class ContinueSectionView;
  11. class RecentAppsView;
  12. // Provides access to various views. Provides an abstraction around the
  13. // clamshell bubble launcher vs. the fullscreen tablet launcher. Some
  14. // methods may return null if feature ProductivityLauncher is disabled.
  15. class ASH_EXPORT AppListViewProvider {
  16. public:
  17. // Returns the continue section view or null.
  18. virtual ContinueSectionView* GetContinueSectionView() = 0;
  19. // Returns the recent apps view or null.
  20. virtual RecentAppsView* GetRecentAppsView() = 0;
  21. // Returns the toast container view or null.
  22. virtual AppListToastContainerView* GetToastContainerView() = 0;
  23. // Returns the apps grid view, which may be either scrollable or paged.
  24. virtual AppsGridView* GetAppsGridView() = 0;
  25. protected:
  26. virtual ~AppListViewProvider() = default;
  27. };
  28. } // namespace ash
  29. #endif // ASH_APP_LIST_APP_LIST_VIEW_PROVIDER_H_