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.
4
5#ifndef ATHENA_HOME_PUBLIC_HOME_CARD_H_
6#define ATHENA_HOME_PUBLIC_HOME_CARD_H_
7
8#include "athena/athena_export.h"
9
10namespace app_list {
11class SearchProvider;
12}
13
14namespace athena {
15class AppModelBuilder;
16
17class ATHENA_EXPORT HomeCard {
18 public:
19  // Creates/deletes/gets the singleton object of the HomeCard
20  // implementation. Takes the ownership of |model_builder|.
21  static HomeCard* Create(AppModelBuilder* model_builder);
22  static void Shutdown();
23  static HomeCard* Get();
24
25  virtual ~HomeCard() {}
26
27  // Registers a search_provider to the HomeCard. Receiver will take
28  // the ownership of the specified provider.
29  virtual void RegisterSearchProvider(
30      app_list::SearchProvider* search_provider) = 0;
31};
32
33}  // namespace athena
34
35#endif  // ATHENA_HOME_PUBLIC_HOME_CARD_H_
36