1 // Copyright 2018 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 UI_NATIVE_THEME_TEST_NATIVE_THEME_H_ 6 #define UI_NATIVE_THEME_TEST_NATIVE_THEME_H_ 7 8 #include "base/macros.h" 9 #include "ui/native_theme/native_theme.h" 10 11 namespace ui { 12 13 class TestNativeTheme : public NativeTheme { 14 public: 15 TestNativeTheme(); 16 ~TestNativeTheme() override; 17 18 // NativeTheme: 19 SkColor GetSystemColor(ColorId color_id, 20 ColorScheme color_scheme) const override; 21 gfx::Size GetPartSize(Part part, 22 State state, 23 const ExtraParams& extra) const override; 24 void Paint(cc::PaintCanvas* canvas, 25 Part part, 26 State state, 27 const gfx::Rect& rect, 28 const ExtraParams& extra, 29 ColorScheme color_scheme) const override; 30 bool SupportsNinePatch(Part part) const override; 31 gfx::Size GetNinePatchCanvasSize(Part part) const override; 32 gfx::Rect GetNinePatchAperture(Part part) const override; 33 bool UsesHighContrastColors() const override; 34 bool ShouldUseDarkColors() const override; 35 PreferredColorScheme GetPreferredColorScheme() const override; 36 SetDarkMode(bool dark_mode)37 void SetDarkMode(bool dark_mode) { dark_mode_ = dark_mode; } SetUsesHighContrastColors(bool high_contrast)38 void SetUsesHighContrastColors(bool high_contrast) { 39 high_contrast_ = high_contrast; 40 } 41 void AddColorSchemeNativeThemeObserver(NativeTheme* theme_to_update); 42 43 private: 44 bool dark_mode_ = false; 45 bool high_contrast_ = false; 46 47 std::unique_ptr<NativeTheme::ColorSchemeNativeThemeObserver> 48 color_scheme_observer_; 49 50 DISALLOW_COPY_AND_ASSIGN(TestNativeTheme); 51 }; 52 53 } // namespace ui 54 55 #endif // UI_NATIVE_THEME_TEST_NATIVE_THEME_H_ 56