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 */