native_theme_android.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // Copyright (c) 2012 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. #ifndef UI_NATIVE_THEME_NATIVE_THEME_ANDROID_H_
  5. #define UI_NATIVE_THEME_NATIVE_THEME_ANDROID_H_
  6. #include "base/no_destructor.h"
  7. #include "ui/native_theme/native_theme_base.h"
  8. namespace ui {
  9. // Android implementation of native theme support.
  10. class NativeThemeAndroid : public NativeThemeBase {
  11. public:
  12. NativeThemeAndroid(const NativeThemeAndroid&) = delete;
  13. NativeThemeAndroid& operator=(const NativeThemeAndroid&) = delete;
  14. // NativeThemeBase:
  15. gfx::Size GetPartSize(Part part,
  16. State state,
  17. const ExtraParams& extra) const override;
  18. protected:
  19. friend class NativeTheme;
  20. friend class base::NoDestructor<NativeThemeAndroid>;
  21. static NativeThemeAndroid* instance();
  22. // NativeThemeBase:
  23. void AdjustCheckboxRadioRectForPadding(SkRect* rect) const override;
  24. // TODO(crbug.com/1165342): Refine hover state behavior on available pointing
  25. // devices.
  26. SkColor ControlsAccentColorForState(State state,
  27. ColorScheme color_scheme) const override;
  28. SkColor ControlsSliderColorForState(State state,
  29. ColorScheme color_scheme) const override;
  30. SkColor ButtonBorderColorForState(State state,
  31. ColorScheme color_scheme) const override;
  32. SkColor ButtonFillColorForState(State state,
  33. ColorScheme color_scheme) const override;
  34. SkColor ControlsBorderColorForState(State state,
  35. ColorScheme color_scheme) const override;
  36. SkColor ControlsFillColorForState(State state,
  37. ColorScheme color_scheme) const override;
  38. private:
  39. NativeThemeAndroid();
  40. ~NativeThemeAndroid() override;
  41. };
  42. } // namespace ui
  43. #endif // UI_NATIVE_THEME_NATIVE_THEME_ANDROID_H_