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