File indexing completed on 2024-05-12 15:58:46
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_TRANSFORM_MASK_PARAMS_FACTORY_REGISTRY_H 0008 #define __KIS_TRANSFORM_MASK_PARAMS_FACTORY_REGISTRY_H 0009 0010 #include <QMap> 0011 0012 #include <functional> 0013 0014 #include "kis_types.h" 0015 #include "kritaimage_export.h" 0016 0017 0018 class QDomElement; 0019 0020 using KisTransformMaskParamsFactory = std::function<KisTransformMaskParamsInterfaceSP (const QDomElement &)>; 0021 using KisTransformMaskParamsFactoryMap = QMap<QString, KisTransformMaskParamsFactory>; 0022 using KisAnimatedTransformMaskParamsFactory = std::function<KisTransformMaskParamsInterfaceSP (KisTransformMaskParamsInterfaceSP, const KisTransformMaskSP)>; 0023 using KisTransformMaskKeyframeFactory = std::function<void (KisTransformMaskSP, int, KisTransformMaskParamsInterfaceSP, KUndo2Command*)>; 0024 0025 class KRITAIMAGE_EXPORT KisTransformMaskParamsFactoryRegistry 0026 { 0027 0028 public: 0029 KisTransformMaskParamsFactoryRegistry(); 0030 ~KisTransformMaskParamsFactoryRegistry(); 0031 0032 void addFactory(const QString &id, const KisTransformMaskParamsFactory &factory); 0033 KisTransformMaskParamsInterfaceSP createParams(const QString &id, const QDomElement &e); 0034 0035 void setAnimatedParamsFactory(const KisAnimatedTransformMaskParamsFactory &factory); 0036 KisTransformMaskParamsInterfaceSP animateParams(KisTransformMaskParamsInterfaceSP params, const KisTransformMaskSP mask); 0037 0038 void setKeyframeFactory(const KisTransformMaskKeyframeFactory &factory); 0039 void autoAddKeyframe(KisTransformMaskSP mask, int time, KisTransformMaskParamsInterfaceSP params, KUndo2Command *parentCommand); 0040 0041 static KisTransformMaskParamsFactoryRegistry* instance(); 0042 0043 private: 0044 KisTransformMaskParamsFactoryMap m_map; 0045 KisAnimatedTransformMaskParamsFactory m_animatedParamsFactory; 0046 KisTransformMaskKeyframeFactory m_keyframeFactory; 0047 }; 0048 0049 #endif /* __KIS_TRANSFORM_MASK_PARAMS_FACTORY_REGISTRY_H */