// This file is part of Desktop App Toolkit, // a set of libraries for developing nice desktop applications. // // For license and copyright information please follow this link: // https://github.com/desktop-app/legal/blob/master/LEGAL // #pragma once #include "styles/style_widgets.h" class Painter; namespace Ui { class CrossLineAnimation { public: CrossLineAnimation( const style::CrossLineAnimation &st, bool reversed = false, float angle = 315); void paint( Painter &p, QPoint position, float64 progress, std::optional colorOverride = std::nullopt); void paint( Painter &p, int left, int top, float64 progress, std::optional colorOverride = std::nullopt); void invalidate(); private: void fillFrame(float64 progress, std::optional colorOverride); const style::CrossLineAnimation &_st; const bool _reversed; const QPen _transparentPen; QPen _strokePen; QLineF _line; QImage _frame; QImage _completeCross; QImage _completeCrossOverride; }; } // namespace Ui