Home | History | Annotate | Download | only in public
      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 
     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