ambient_animation_theme.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright 2021 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 ASH_CONSTANTS_AMBIENT_ANIMATION_THEME_H_
  5. #define ASH_CONSTANTS_AMBIENT_ANIMATION_THEME_H_
  6. #include "base/component_export.h"
  7. #include "base/strings/string_piece.h"
  8. namespace ash {
  9. // Each corresponds to an animation design for ambient mode that UX created and
  10. // has its own Lottie file.
  11. //
  12. // These values are persisted in user pref storage and logs, so they should
  13. // never be renumbered or reused.
  14. enum class AmbientAnimationTheme {
  15. // This is the one exception in the list, and it describes the mode where
  16. // IMAX photos are displayed at full screen in a slideshow fashion. This is
  17. // not currently implemented as an "animation" and doesn't have a Lottie file.
  18. // It is currently implemented entirely as a native UI view.
  19. kSlideshow = 0,
  20. kFeelTheBreeze = 1,
  21. kFloatOnBy = 2,
  22. kMaxValue = kFloatOnBy,
  23. };
  24. inline constexpr AmbientAnimationTheme kDefaultAmbientAnimationTheme =
  25. AmbientAnimationTheme::kSlideshow;
  26. // The returned StringPiece is guaranteed to be null-terminated and point to
  27. // memory valid for the lifetime of the program.
  28. COMPONENT_EXPORT(ASH_CONSTANTS)
  29. base::StringPiece ToString(AmbientAnimationTheme theme);
  30. } // namespace ash
  31. #endif // ASH_CONSTANTS_AMBIENT_ANIMATION_THEME_H_