File indexing completed on 2024-06-23 04:21:30
0001 /* 0002 * SPDX-FileCopyrightText: 2016 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_CALLBACK_BASED_PAINTOP_PROPERTY_H 0008 #define __KIS_CALLBACK_BASED_PAINTOP_PROPERTY_H 0009 0010 #include <functional> 0011 0012 template<class ParentClass> 0013 class KRITAIMAGE_EXPORT_TEMPLATE KisCallbackBasedPaintopProperty 0014 : public ParentClass 0015 { 0016 public: 0017 KisCallbackBasedPaintopProperty(typename ParentClass::Type type, 0018 typename ParentClass::SubType subType, 0019 const KoID &id, 0020 KisPaintOpSettingsRestrictedSP settings, 0021 QObject *parent); 0022 0023 KisCallbackBasedPaintopProperty(typename ParentClass::Type type, const KoID &id, KisPaintOpSettingsRestrictedSP settings, QObject *parent); 0024 0025 KisCallbackBasedPaintopProperty(const KoID &id, KisPaintOpSettingsRestrictedSP settings, QObject *parent); 0026 0027 typedef std::function<void (KisUniformPaintOpProperty*)> Callback; 0028 typedef std::function<bool (const KisUniformPaintOpProperty*)> VisibleCallback; 0029 0030 void setReadCallback(Callback func); 0031 void setWriteCallback(Callback func); 0032 void setIsVisibleCallback(VisibleCallback func); 0033 0034 protected: 0035 void readValueImpl() override; 0036 void writeValueImpl() override; 0037 bool isVisible() const override; 0038 0039 private: 0040 Callback m_readFunc; 0041 Callback m_writeFunc; 0042 VisibleCallback m_visibleFunc; 0043 }; 0044 0045 #endif /* __KIS_CALLBACK_BASED_PAINTOP_PROPERTY_H */