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

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KISMIRROROPTIONDATA_H
0007 #define KISMIRROROPTIONDATA_H
0008 
0009 #include "KisCurveOptionData.h"
0010 
0011 #include <KisOptionTuple.h>
0012 #include <KisPrefixedOptionDataWrapper.h>
0013 
0014 struct PAINTOP_EXPORT KisMirrorOptionMixInImpl
0015     : boost::equality_comparable<KisMirrorOptionMixInImpl>
0016 {
0017     inline friend bool operator==(const KisMirrorOptionMixInImpl &lhs, const KisMirrorOptionMixInImpl &rhs) {
0018             return lhs.enableVerticalMirror == rhs.enableVerticalMirror &&
0019             lhs.enableHorizontalMirror == rhs.enableHorizontalMirror;
0020     }
0021 
0022     bool enableVerticalMirror {false};
0023     bool enableHorizontalMirror {false};
0024 
0025     bool read(const KisPropertiesConfiguration *setting);
0026     void write(KisPropertiesConfiguration *setting) const;
0027 };
0028 
0029 using KisMirrorOptionMixIn = KisPrefixedOptionDataWrapper<KisMirrorOptionMixInImpl>;
0030 
0031 struct PAINTOP_EXPORT KisMirrorOptionData : KisOptionTuple<KisCurveOptionData, KisMirrorOptionMixIn>
0032 {
0033     KisMirrorOptionData(const QString &prefix = "")
0034         : KisOptionTuple<KisCurveOptionData, KisMirrorOptionMixIn>(prefix, KoID("Mirror", i18n("Mirror")))
0035     {
0036     }
0037 };
0038 
0039 
0040 #endif // KISMIRROROPTIONDATA_H