• 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_SYSTEM_PUBLIC_SYSTEM_UI_H_
6 #define ATHENA_SYSTEM_PUBLIC_SYSTEM_UI_H_
7 
8 #include "athena/athena_export.h"
9 #include "base/memory/ref_counted.h"
10 
11 namespace base {
12 class TaskRunner;
13 }
14 
15 namespace gfx {
16 class ImageSkia;
17 }
18 
19 namespace views {
20 class View;
21 }
22 
23 namespace athena {
24 
25 class ATHENA_EXPORT SystemUI {
26  public:
27   enum ColorScheme {
28     COLOR_SCHEME_LIGHT,
29     COLOR_SCHEME_DARK
30   };
31 
32   // Creates and deletes the singleton object of the SystemUI implementation.
33   static SystemUI* Create(scoped_refptr<base::TaskRunner> io_task_runner);
34   static SystemUI* Get();
35   static void Shutdown();
36 
~SystemUI()37   virtual ~SystemUI() {}
38 
39   // Sets the background image.
40   virtual void SetBackgroundImage(const gfx::ImageSkia& image) = 0;
41 
42   // Creates a view which displays the time, status icons, and debug
43   // information.
44   virtual views::View* CreateSystemInfoView(ColorScheme color_scheme) = 0;
45 };
46 
47 }  // namespace athena
48 
49 #endif  // ATHENA_SYSTEM_PUBLIC_SYSTEM_UI_H_
50