File indexing completed on 2024-06-16 04:17:16

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KISPAINTTHICKNESSOPTIONDATA_H
0007 #define KISPAINTTHICKNESSOPTIONDATA_H
0008 
0009 #include "KisCurveOptionData.h"
0010 
0011 #include <KisOptionTuple.h>
0012 #include <KisPrefixedOptionDataWrapper.h>
0013 
0014 
0015 struct KisPaintThicknessOptionMixInImpl
0016     : boost::equality_comparable<KisPaintThicknessOptionMixInImpl>
0017 {
0018     enum ThicknessMode {
0019         RESERVED,
0020         OVERWRITE,
0021         OVERLAY
0022     };
0023 
0024     inline friend bool operator==(const KisPaintThicknessOptionMixInImpl &lhs, const KisPaintThicknessOptionMixInImpl &rhs) {
0025             return lhs.mode == rhs.mode;
0026     }
0027 
0028     ThicknessMode mode {OVERLAY};
0029 
0030     bool read(const KisPropertiesConfiguration *setting);
0031     void write(KisPropertiesConfiguration *setting) const;
0032 };
0033 
0034 using KisPaintThicknessOptionMixIn = KisPrefixedOptionDataWrapper<KisPaintThicknessOptionMixInImpl>;
0035 
0036 struct KisPaintThicknessOptionData : KisOptionTuple<KisCurveOptionData, KisPaintThicknessOptionMixIn>
0037 {
0038     KisPaintThicknessOptionData(const QString &prefix = "")
0039         : KisOptionTuple<KisCurveOptionData, KisPaintThicknessOptionMixIn>(prefix,
0040                                                                            KoID("PaintThickness", i18n("Paint Thickness")))
0041     {
0042     }
0043 };
0044 
0045 #endif // KISPAINTTHICKNESSOPTIONDATA_H