File indexing completed on 2025-03-09 04:10:11

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KISSTANDARDOPTIONDATA_H
0007 #define KISSTANDARDOPTIONDATA_H
0008 
0009 #include <KisCurveOptionData.h>
0010 
0011 
0012 struct KisOpacityOptionData : KisCurveOptionData
0013 {
0014     KisOpacityOptionData(const QString &prefix = QString())
0015         : KisCurveOptionData(
0016               prefix,
0017               KoID("Opacity", i18n("Opacity")),
0018               KisKritaSensorPack::Checkability::NotCheckable)
0019     {
0020     }
0021 };
0022 
0023 struct KisFlowOptionData : KisCurveOptionData
0024 {
0025     KisFlowOptionData(const QString &prefix = QString())
0026         : KisCurveOptionData(
0027               prefix,
0028               KoID("Flow", i18n("Flow")),
0029               KisKritaSensorPack::Checkability::NotCheckable)
0030     {
0031     }
0032 };
0033 
0034 
0035 struct KisRatioOptionData : KisCurveOptionData
0036 {
0037     KisRatioOptionData(const QString &prefix = QString())
0038         : KisCurveOptionData(
0039               prefix,
0040               KoID("Ratio", i18n("Ratio")))
0041     {
0042     }
0043 };
0044 
0045 struct KisSoftnessOptionData : KisCurveOptionData
0046 {
0047     KisSoftnessOptionData()
0048         : KisCurveOptionData(
0049               KoID("Softness", i18n("Softness")),
0050               Checkability::Checkable, std::nullopt,
0051               std::make_pair(0.1, 1.0))
0052     {}
0053 };
0054 
0055 struct KisRotationOptionData : KisCurveOptionData
0056 {
0057     KisRotationOptionData(const QString &prefix = QString())
0058         : KisCurveOptionData(
0059               prefix,
0060               KoID("Rotation", i18n("Rotation")))
0061     {
0062     }
0063 };
0064 
0065 struct KisDarkenOptionData : KisCurveOptionData
0066 {
0067     KisDarkenOptionData()
0068         : KisCurveOptionData(
0069               KoID("Darken", i18n("Darken")))
0070     {}
0071 };
0072 
0073 struct KisMixOptionData : KisCurveOptionData
0074 {
0075     KisMixOptionData()
0076         : KisCurveOptionData(
0077               KoID("Mix", i18nc("Mixing of colors", "Mix")))
0078     {}
0079 };
0080 
0081 struct KisHueOptionData : KisCurveOptionData
0082 {
0083     KisHueOptionData()
0084         : KisCurveOptionData(
0085               KoID("h", i18n("Hue")))
0086     {}
0087 };
0088 
0089 struct KisSaturationOptionData : KisCurveOptionData
0090 {
0091     KisSaturationOptionData()
0092         : KisCurveOptionData(
0093               KoID("s", i18n("Saturation")))
0094     {}
0095 };
0096 
0097 struct KisValueOptionData : KisCurveOptionData
0098 {
0099     KisValueOptionData()
0100         : KisCurveOptionData(
0101               KoID("v", i18nc("Label of Brightness value in Color Smudge brush engine options", "Value")))
0102     {}
0103 };
0104 
0105 struct KisRateOptionData : KisCurveOptionData
0106 {
0107     KisRateOptionData()
0108         : KisCurveOptionData(
0109               KoID("Rate", i18n("Rate")))
0110     {}
0111 };
0112 
0113 struct KisStrengthOptionData : KisCurveOptionData
0114 {
0115     KisStrengthOptionData()
0116         : KisCurveOptionData(
0117               KoID("Texture/Strength/", i18n("Strength")))
0118     {}
0119 };
0120 
0121 struct KisLightnessStrengthOptionData : KisCurveOptionData
0122 {
0123     KisLightnessStrengthOptionData()
0124         : KisCurveOptionData(
0125               KoID("LightnessStrength", i18n("Lightness Strength")))
0126     {
0127     }
0128 };
0129 
0130 
0131 class KisCurveOptionWidget;
0132 
0133 namespace KisPaintOpOptionWidgetUtils {
0134 
0135 PAINTOP_EXPORT KisCurveOptionWidget* createOpacityOptionWidget();
0136 PAINTOP_EXPORT KisCurveOptionWidget* createFlowOptionWidget();
0137 PAINTOP_EXPORT KisCurveOptionWidget* createRatioOptionWidget();
0138 PAINTOP_EXPORT KisCurveOptionWidget* createSoftnessOptionWidget();
0139 PAINTOP_EXPORT KisCurveOptionWidget* createRotationOptionWidget();
0140 PAINTOP_EXPORT KisCurveOptionWidget* createDarkenOptionWidget();
0141 PAINTOP_EXPORT KisCurveOptionWidget* createMixOptionWidget();
0142 PAINTOP_EXPORT KisCurveOptionWidget* createHueOptionWidget();
0143 PAINTOP_EXPORT KisCurveOptionWidget* createSaturationOptionWidget();
0144 PAINTOP_EXPORT KisCurveOptionWidget* createValueOptionWidget();
0145 PAINTOP_EXPORT KisCurveOptionWidget* createRateOptionWidget();
0146 PAINTOP_EXPORT KisCurveOptionWidget* createStrengthOptionWidget();
0147 
0148 PAINTOP_EXPORT KisCurveOptionWidget* createMaskingOpacityOptionWidget();
0149 PAINTOP_EXPORT KisCurveOptionWidget* createMaskingSizeOptionWidget();
0150 PAINTOP_EXPORT KisCurveOptionWidget* createMaskingFlowOptionWidget();
0151 PAINTOP_EXPORT KisCurveOptionWidget* createMaskingRatioOptionWidget();
0152 PAINTOP_EXPORT KisCurveOptionWidget* createMaskingRotationOptionWidget();
0153 PAINTOP_EXPORT KisCurveOptionWidget* createMaskingMirrorOptionWidget();
0154 PAINTOP_EXPORT KisCurveOptionWidget* createMaskingScatterOptionWidget();
0155 
0156 }
0157 
0158 #endif // KISSTANDARDOPTIONDATA_H