#ifndef LayerTextProvider_hpp #define LayerTextProvider_hpp #include "Lottie/Public/TextProvider/AnimationTextProvider.hpp" #include "Lottie/Private/MainThread/LayerContainers/CompLayers/TextCompositionLayer.hpp" namespace lottie { /// Connects a LottieTextProvider to a group of text layers class LayerTextProvider { public: LayerTextProvider(std::shared_ptr const &textProvider) { _textProvider = textProvider; reloadTexts(); } std::shared_ptr const &textProvider() const { return _textProvider; } void setTextProvider(std::shared_ptr const &textProvider) { _textProvider = textProvider; reloadTexts(); } void addTextLayers(std::vector> const &layers) { for (const auto &layer : layers) { _textLayers.push_back(layer); } } void reloadTexts() { for (const auto &layer : _textLayers) { layer->setTextProvider(_textProvider); } } private: std::vector> _textLayers; std::shared_ptr _textProvider; }; } #endif /* LayerTextProvider_hpp */