• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
10 namespace app_list {
11 class SearchProvider;
12 }
13 
14 namespace gfx {
15 class Rect;
16 }
17 
18 namespace athena {
19 class AppModelBuilder;
20 
21 class ATHENA_EXPORT HomeCard {
22  public:
23   enum State {
24     // HomeCard is not visible.
25     HIDDEN,
26 
27     // HomeCard is visible in the center of the screen as a normal mode.
28     VISIBLE_CENTERED,
29 
30     // HomeCard is visible smaller at the bottom of the screen as a supplemental
31     // widget.
32     VISIBLE_BOTTOM,
33 
34     // HomeCard is minimized (i.e. a small UI element is displayed on screen
35     // that the user can interact with to bring up the BOTTOM or CENTERED view).
36     VISIBLE_MINIMIZED,
37   };
38 
39   // Creates/deletes/gets the singleton object of the HomeCard
40   // implementation. Takes the ownership of |model_builder|.
41   static HomeCard* Create(AppModelBuilder* model_builder);
42   static void Shutdown();
43   static HomeCard* Get();
44 
~HomeCard()45   virtual ~HomeCard() {}
46 
47   // Updates/gets the current state of the home card.
48   virtual void SetState(State state) = 0;
49   virtual State GetState() = 0;
50 
51   // Registers a search_provider to the HomeCard. Receiver will take
52   // the ownership of the specified provider.
53   virtual void RegisterSearchProvider(
54       app_list::SearchProvider* search_provider) = 0;
55 
56   // Called when the virtual keyboard changed has changed to |bounds|. An empty
57   // |bounds| indicates that the virtual keyboard is not visible anymore.
58   virtual void UpdateVirtualKeyboardBounds(
59       const gfx::Rect& bounds) = 0;
60 };
61 
62 }  // namespace athena
63 
64 #endif  // ATHENA_HOME_PUBLIC_HOME_CARD_H_
65