Krita Source Code Documentation
Loading...
Searching...
No Matches
KisCurveWidgetControlsManager.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#ifndef KISCURVEWIDGETCONTROLSMANAGER_H
8
#define KISCURVEWIDGETCONTROLSMANAGER_H
9
10
#include <
kritaui_export_instance.h
>
11
#include <QObject>
12
13
class
QSpinBox;
14
class
QDoubleSpinBox;
15
16
namespace
detail
17
{
22
template
<
typename
SpinBox>
23
struct
value_of_spin_box
;
24
25
template
<>
26
struct
value_of_spin_box
<QSpinBox> {
27
using
type
= int;
28
};
29
30
template
<>
31
struct
value_of_spin_box
<QDoubleSpinBox> {
32
using
type
= qreal;
33
};
34
35
template
<
typename
SpinBox>
36
using
value_of_spin_box_t
=
typename
value_of_spin_box<SpinBox>::type
;
37
38
}
// namespace detail
39
40
41
class
KisCurveWidget
;
42
47
class
KRITAUI_EXPORT
KisCurveWidgetControlsManagerBase
:
public
QObject
48
{
49
Q_OBJECT
50
public
:
51
KisCurveWidgetControlsManagerBase
(
KisCurveWidget
*curveWidget);
52
~KisCurveWidgetControlsManagerBase
();
53
54
protected
Q_SLOTS:
55
virtual
void
inOutChanged
() = 0;
56
virtual
void
syncIOControls
() = 0;
57
virtual
void
focusIOControls
() = 0;
58
59
protected
:
60
KisCurveWidget
*m_curveWidget {
nullptr
};
61
};
62
63
template
<
typename
SpinBox>
64
class
KRITAUI_EXPORT_TEMPLATE
KisCurveWidgetControlsManager
:
public
KisCurveWidgetControlsManagerBase
65
{
66
public
:
67
using
ValueType
=
detail::value_of_spin_box_t<SpinBox>
;
68
public
:
69
KisCurveWidgetControlsManager
(
KisCurveWidget
*curveWidget);
70
KisCurveWidgetControlsManager
(
KisCurveWidget
*curveWidget,
71
SpinBox *in, SpinBox *out,
72
ValueType
inMin,
ValueType
inMax,
73
ValueType
outMin,
ValueType
outMax);
74
~KisCurveWidgetControlsManager
();
75
76
void
setupInOutControls(SpinBox *in, SpinBox *out,
77
ValueType
inMin,
ValueType
inMax,
78
ValueType
outMin,
ValueType
outMax);
79
void
dropInOutControls();
80
81
protected
:
82
void
inOutChanged
()
override
;
83
void
syncIOControls
()
override
;
84
void
focusIOControls
()
override
;
85
86
private
:
87
/* In/Out controls */
88
SpinBox *m_intIn {
nullptr
};
89
SpinBox *m_intOut {
nullptr
};
90
91
/* Working range of them */
92
ValueType
m_inMin {0};
93
ValueType
m_inMax {0};
94
ValueType
m_outMin {0};
95
ValueType
m_outMax {0};
96
};
97
98
extern
template
class
KisCurveWidgetControlsManager<QSpinBox>
;
99
extern
template
class
KisCurveWidgetControlsManager<QDoubleSpinBox>
;
100
101
using
KisCurveWidgetControlsManagerInt
=
KisCurveWidgetControlsManager<QSpinBox>
;
102
using
KisCurveWidgetControlsManagerDouble
=
KisCurveWidgetControlsManager<QDoubleSpinBox>
;
103
104
105
#endif
// KISCURVEWIDGETCONTROLSMANAGER_H
KisCurveWidgetControlsManagerBase
Definition
KisCurveWidgetControlsManager.h:48
KisCurveWidgetControlsManagerBase::inOutChanged
virtual void inOutChanged()=0
KisCurveWidgetControlsManagerBase::syncIOControls
virtual void syncIOControls()=0
KisCurveWidgetControlsManagerBase::focusIOControls
virtual void focusIOControls()=0
KisCurveWidgetControlsManager
Definition
KisCurveWidgetControlsManager.h:65
KisCurveWidgetControlsManager::ValueType
detail::value_of_spin_box_t< SpinBox > ValueType
Definition
KisCurveWidgetControlsManager.h:67
KisCurveWidget
Definition
kis_curve_widget.h:41
kritaui_export_instance.h
KRITAUI_EXPORT_TEMPLATE
#define KRITAUI_EXPORT_TEMPLATE
Definition
kritaui_export_instance.h:22
detail
Definition
kis_brush.cpp:105
detail::value_of_spin_box_t
typename value_of_spin_box< SpinBox >::type value_of_spin_box_t
Definition
KisCurveWidgetControlsManager.h:36
detail::value_of_spin_box< QDoubleSpinBox >::type
qreal type
Definition
KisCurveWidgetControlsManager.h:32
detail::value_of_spin_box< QSpinBox >::type
int type
Definition
KisCurveWidgetControlsManager.h:27
detail::value_of_spin_box
Definition
KisCurveWidgetControlsManager.h:23
libs
ui
widgets
KisCurveWidgetControlsManager.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52