123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // Copyright 2022 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef ASH_SYSTEM_PROGRESS_INDICATOR_PROGRESS_ICON_ANIMATION_H_
- #define ASH_SYSTEM_PROGRESS_INDICATOR_PROGRESS_ICON_ANIMATION_H_
- #include "ash/ash_export.h"
- #include "ash/system/progress_indicator/progress_indicator_animation.h"
- namespace ash {
- // An animation for a `ProgressIndicator`'s icon.
- class ASH_EXPORT ProgressIconAnimation : public ProgressIndicatorAnimation {
- public:
- ProgressIconAnimation();
- ProgressIconAnimation(const ProgressIconAnimation&) = delete;
- ProgressIconAnimation& operator=(const ProgressIconAnimation&) = delete;
- ~ProgressIconAnimation() override;
- // Animatable properties.
- float inner_icon_translate_y_scale_factor() const {
- return inner_icon_translate_y_scale_factor_;
- }
- float inner_ring_stroke_width_scale_factor() const {
- return inner_ring_stroke_width_scale_factor_;
- }
- float opacity() const { return opacity_; }
- private:
- // ProgressIndicatorAnimation:
- void UpdateAnimatableProperties(double fraction) override;
- // Animatable properties.
- float inner_icon_translate_y_scale_factor_ = -0.5f;
- float inner_ring_stroke_width_scale_factor_ = 0.f;
- float opacity_ = 0.f;
- };
- } // namespace ash
- #endif // ASH_SYSTEM_PROGRESS_INDICATOR_PROGRESS_ICON_ANIMATION_H_
|