File indexing completed on 2025-02-02 04:11:31
0001 /* 0002 * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #ifndef GRADIENTLISTWIDGET_H 0008 #define GRADIENTLISTWIDGET_H 0009 0010 #include <memory> 0011 #include <QWidget> 0012 0013 #include "widgets/dialogs/selection_manager.hpp" 0014 0015 namespace glaxnimate::model { 0016 class Document; 0017 class Fill; 0018 class Stroke; 0019 class BrushStyle; 0020 class Gradient; 0021 } // namespace glaxnimate::model 0022 0023 namespace glaxnimate::gui { 0024 0025 class GradientListWidget : public QWidget 0026 { 0027 Q_OBJECT 0028 0029 public: 0030 GradientListWidget(QWidget* parent = nullptr); 0031 ~GradientListWidget(); 0032 0033 void set_document(model::Document* doc); 0034 void set_targets(const std::vector<model::Fill*>& fills, const std::vector<model::Stroke*>& strokes); 0035 void set_current(model::Fill* fill, model::Stroke* stroke); 0036 void set_window(glaxnimate::gui::SelectionManager* window); 0037 0038 protected: 0039 void changeEvent ( QEvent* e ) override; 0040 0041 private Q_SLOTS: 0042 void change_current_gradient(); 0043 0044 Q_SIGNALS: 0045 void selected(model::Gradient* gradient, bool secondary); 0046 0047 private: 0048 class Private; 0049 std::unique_ptr<Private> d; 0050 }; 0051 0052 } // namespace glaxnimate::gui 0053 0054 #endif // GRADIENTLISTWIDGET_H