File indexing completed on 2024-06-09 04:21:48
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_IMPL_H 0008 #define __KIS_CALLBACK_BASED_PAINTOP_PROPERTY_IMPL_H 0009 0010 #include <functional> 0011 0012 template<class ParentClass> 0013 KisCallbackBasedPaintopProperty<ParentClass>::KisCallbackBasedPaintopProperty(typename ParentClass::Type type, 0014 typename ParentClass::SubType subType, 0015 const KoID &id, 0016 KisPaintOpSettingsRestrictedSP settings, 0017 QObject *parent) 0018 : ParentClass(type, subType, id, settings, parent) 0019 { 0020 } 0021 0022 template<class ParentClass> 0023 KisCallbackBasedPaintopProperty<ParentClass>::KisCallbackBasedPaintopProperty(typename ParentClass::Type type, 0024 const KoID &id, 0025 KisPaintOpSettingsRestrictedSP settings, 0026 QObject *parent) 0027 : ParentClass(type, id, settings, parent) 0028 { 0029 } 0030 0031 template<class ParentClass> 0032 KisCallbackBasedPaintopProperty<ParentClass>::KisCallbackBasedPaintopProperty(const KoID &id, KisPaintOpSettingsRestrictedSP settings, QObject *parent) 0033 : ParentClass(id, settings, parent) 0034 { 0035 } 0036 0037 template <class ParentClass> 0038 void KisCallbackBasedPaintopProperty<ParentClass>::setReadCallback(Callback func) 0039 { 0040 m_readFunc = func; 0041 } 0042 0043 template <class ParentClass> 0044 void KisCallbackBasedPaintopProperty<ParentClass>::setWriteCallback(Callback func) 0045 { 0046 m_writeFunc = func; 0047 } 0048 0049 template <class ParentClass> 0050 void KisCallbackBasedPaintopProperty<ParentClass>::setIsVisibleCallback(VisibleCallback func) 0051 { 0052 m_visibleFunc = func; 0053 } 0054 0055 template <class ParentClass> 0056 void KisCallbackBasedPaintopProperty<ParentClass>::readValueImpl() 0057 { 0058 if (m_readFunc) m_readFunc(this); 0059 } 0060 0061 template <class ParentClass> 0062 void KisCallbackBasedPaintopProperty<ParentClass>::writeValueImpl() 0063 { 0064 if (m_writeFunc) m_writeFunc(this); 0065 } 0066 0067 template <class ParentClass> 0068 bool KisCallbackBasedPaintopProperty<ParentClass>::isVisible() const 0069 { 0070 return m_visibleFunc ? m_visibleFunc(this) : true; 0071 } 0072 0073 #endif /* __KIS_CALLBACK_BASED_PAINTOP_PROPERTY_IMPL_H */