Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
gradientslider.h
Go to the documentation of this file.
1/*
2 This file is part of darktable,
3 Copyright (C) 2010 Henrik Andersson.
4 Copyright (C) 2010 Pascal de Bruijn.
5 Copyright (C) 2011 johannes hanika.
6 Copyright (C) 2012 Richard Wonka.
7 Copyright (C) 2012, 2014, 2016 Tobias Ellinghaus.
8 Copyright (C) 2012, 2019 Ulrich Pegelow.
9 Copyright (C) 2013-2016 Roman Lebedev.
10 Copyright (C) 2017 luzpaz.
11 Copyright (C) 2019 Edgardo Hoszowski.
12 Copyright (C) 2020 Diederik Ter Rahe.
13 Copyright (C) 2020 Marco.
14 Copyright (C) 2020 Pascal Obry.
15 Copyright (C) 2022 Martin Baƙinka.
16
17 darktable is free software: you can redistribute it and/or modify
18 it under the terms of the GNU General Public License as published by
19 the Free Software Foundation, either version 3 of the License, or
20 (at your option) any later version.
21
22 darktable is distributed in the hope that it will be useful,
23 but WITHOUT ANY WARRANTY; without even the implied warranty of
24 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 GNU General Public License for more details.
26
27 You should have received a copy of the GNU General Public License
28 along with darktable. If not, see <http://www.gnu.org/licenses/>.
29*/
30
31#pragma once
32
33#define GRADIENT_SLIDER_MAX_POSITIONS 10
34
35#include "paint.h"
36#include <gtk/gtk.h>
37G_BEGIN_DECLS
38#define DTGTK_GRADIENT_SLIDER(obj) \
39 G_TYPE_CHECK_INSTANCE_CAST(obj, dtgtk_gradient_slider_get_type(), GtkDarktableGradientSlider)
40#define DTGTK_GRADIENT_SLIDER_CLASS(klass) \
41 G_TYPE_CHECK_CLASS_CAST(klass, dtgtk_gradient_slider_get_type(), GtkDarktableGradientSliderClass)
42#define DTGTK_IS_GRADIENT_SLIDER(obj) \
43 G_TYPE_CHECK_INSTANCE_TYPE(obj, dtgtk_gradient_slider_get_type())
44#define DTGTK_IS_GRADIENT_SLIDER_CLASS(klass) \
45 G_TYPE_CHECK_CLASS_TYPE(obj, dtgtk_gradient_slider_get_type())
46
47#define DTGTK_GRADIENT_SLIDER_MULTIVALUE(obj) \
48 G_TYPE_CHECK_INSTANCE_CAST(obj, dtgtk_gradient_slider_multivalue_get_type(), GtkDarktableGradientSlider)
49#define DTGTK_GRADIENT_SLIDER_MULTIVALUE_CLASS(klass) \
50 G_TYPE_CHECK_CLASS_CAST(klass, dtgtk_gradient_slider_multivalue_get_type(), GtkDarktableGradientSliderClass)
51#define DTGTK_IS_GRADIENT_SLIDER_MULTIVALUE(obj) \
52 G_TYPE_CHECK_INSTANCE_TYPE(obj, dtgtk_gradient_slider_multivalue_get_type())
53#define DTGTK_IS_GRADIENT_SLIDER_MULTIVALUE_CLASS(klass) \
54 G_TYPE_CHECK_CLASS_TYPE(obj, dtgtk_gradient_slider_multivalue_get_type())
55
56enum
57{
60};
61
67
68
70enum
71{
78
85};
86
87enum
88{
93};
94
95enum
96{
99};
100
101enum
102{
106
131
136
142
143
146
150GtkWidget *dtgtk_gradient_slider_new_with_color(GdkRGBA start, GdkRGBA end);
151GtkWidget *dtgtk_gradient_slider_new_with_color_and_name(GdkRGBA start, GdkRGBA end, gchar *name);
152
154void dtgtk_gradient_slider_set_stop(GtkDarktableGradientSlider *gslider, gfloat position, GdkRGBA color);
155
158
163
166
169
172void dtgtk_gradient_slider_set_picker_meanminmax(GtkDarktableGradientSlider *gslider, gdouble mean, gdouble min, gdouble max);
173
176
177
181GtkWidget *dtgtk_gradient_slider_multivalue_new_with_color(GdkRGBA start, GdkRGBA end, gint positions);
182GtkWidget *dtgtk_gradient_slider_multivalue_new_with_color_and_name(GdkRGBA start, GdkRGBA end, gint positions, gchar *name);
183
184
187
194
198
204
205
209
212
214void dtgtk_gradient_slider_multivalue_set_scale_callback(GtkDarktableGradientSlider *gslider, float (*callback)(GtkWidget *self, float value, int dir));
215
216G_END_DECLS
217
218// clang-format off
219// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
220// vim: shiftwidth=2 expandtab tabstop=2 cindent
221// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
222// clang-format on
223
int position()
Definition backgroundjobs.c:82
static const float const float const float min
Definition colorspaces_inline_conversions.h:667
const float max
Definition colorspaces_inline_conversions.h:721
char * name
Definition common/metadata.c:61
static const dt_aligned_pixel_simd_t value
Definition darktable.h:501
void dtgtk_gradient_slider_set_marker(GtkDarktableGradientSlider *gslider, gint mark)
Definition gradientslider.c:981
void dtgtk_gradient_slider_multivalue_set_resetvalue(GtkDarktableGradientSlider *gslider, gdouble value, gint pos)
Definition gradientslider.c:845
GType dtgtk_gradient_slider_multivalue_get_type(void)
Definition gradientslider.c:788
@ GRADIENT_SLIDER_GET
Definition gradientslider.h:98
@ GRADIENT_SLIDER_SET
Definition gradientslider.h:97
GtkWidget * dtgtk_gradient_slider_new_with_name(gchar *name)
Definition gradientslider.c:938
gdouble dtgtk_gradient_slider_multivalue_get_resetvalues(GtkDarktableGradientSlider *gslider)
void dtgtk_gradient_slider_set_resetvalue(GtkDarktableGradientSlider *gslider, gdouble value)
Definition gradientslider.c:986
gdouble dtgtk_gradient_slider_multivalue_get_value(GtkDarktableGradientSlider *gslider, gint position)
Definition gradientslider.c:793
void dtgtk_gradient_slider_multivalue_set_values(GtkDarktableGradientSlider *gslider, gdouble *values)
Definition gradientslider.c:818
GtkWidget * dtgtk_gradient_slider_multivalue_new_with_color(GdkRGBA start, GdkRGBA end, gint positions)
Definition gradientslider.c:728
@ GRADIENT_SLIDER_MARGINS_DEFAULT
Definition gradientslider.h:89
@ GRADIENT_SLIDER_MARGINS_BIG
Definition gradientslider.h:92
@ GRADIENT_SLIDER_MARGINS_SMALL
Definition gradientslider.h:91
@ GRADIENT_SLIDER_MARGINS_ZERO
Definition gradientslider.h:90
GtkWidget * dtgtk_gradient_slider_new_with_color_and_name(GdkRGBA start, GdkRGBA end, gchar *name)
Definition gradientslider.c:953
GtkWidget * dtgtk_gradient_slider_new_with_color(GdkRGBA start, GdkRGBA end)
Definition gradientslider.c:946
#define GRADIENT_SLIDER_MAX_POSITIONS
Definition gradientslider.h:33
void dtgtk_gradient_slider_set_value(GtkDarktableGradientSlider *gslider, gdouble value)
Definition gradientslider.c:976
void dtgtk_gradient_slider_multivalue_set_increment(GtkDarktableGradientSlider *gslider, gdouble value)
Definition gradientslider.c:894
void dtgtk_gradient_slider_multivalue_set_picker(GtkDarktableGradientSlider *gslider, gdouble value)
Definition gradientslider.c:870
GtkWidget * dtgtk_gradient_slider_new()
Definition gradientslider.c:931
void dtgtk_gradient_slider_multivalue_set_markers(GtkDarktableGradientSlider *gslider, gint *markers)
Definition gradientslider.c:838
GType dtgtk_gradient_slider_get_type(void)
Definition gradientslider.c:966
void dtgtk_gradient_slider_set_picker(GtkDarktableGradientSlider *gslider, gdouble value)
Definition gradientslider.c:996
@ FREE_MARKERS
Definition gradientslider.h:103
@ PROPORTIONAL_MARKERS
Definition gradientslider.h:104
void dtgtk_gradient_slider_multivalue_set_picker_meanminmax(GtkDarktableGradientSlider *gslider, gdouble mean, gdouble min, gdouble max)
Definition gradientslider.c:878
void dtgtk_gradient_slider_multivalue_get_values(GtkDarktableGradientSlider *gslider, gdouble *values)
Definition gradientslider.c:800
void dtgtk_gradient_slider_multivalue_clear_stops(GtkDarktableGradientSlider *gslider)
Definition gradientslider.c:781
gboolean dtgtk_gradient_slider_multivalue_is_dragging(GtkDarktableGradientSlider *gslider)
Definition gradientslider.c:888
@ GRADIENT_SLIDER_LAST_SIGNAL
Definition gradientslider.h:59
@ GRADIENT_SLIDER_VALUE_CHANGED
Definition gradientslider.h:58
GtkWidget * dtgtk_gradient_slider_multivalue_new(gint positions)
Definition gradientslider.c:708
gboolean dtgtk_gradient_slider_is_dragging(GtkDarktableGradientSlider *gslider)
Definition gradientslider.c:1014
gdouble dtgtk_gradient_slider_get_value(GtkDarktableGradientSlider *gslider)
Definition gradientslider.c:971
@ GRADIENT_SLIDER_MARKER_DOUBLE_OPEN
Definition gradientslider.h:72
@ GRADIENT_SLIDER_MARKER_UPPER_OPEN
Definition gradientslider.h:74
@ GRADIENT_SLIDER_MARKER_DOUBLE_FILLED_BIG
Definition gradientslider.h:80
@ GRADIENT_SLIDER_MARKER_DOUBLE_OPEN_BIG
Definition gradientslider.h:79
@ GRADIENT_SLIDER_MARKER_UPPER_FILLED
Definition gradientslider.h:75
@ GRADIENT_SLIDER_MARKER_LOWER_OPEN
Definition gradientslider.h:76
@ GRADIENT_SLIDER_MARKER_UPPER_FILLED_BIG
Definition gradientslider.h:82
@ GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG
Definition gradientslider.h:83
@ GRADIENT_SLIDER_MARKER_DOUBLE_FILLED
Definition gradientslider.h:73
@ GRADIENT_SLIDER_MARKER_LOWER_FILLED
Definition gradientslider.h:77
@ GRADIENT_SLIDER_MARKER_UPPER_OPEN_BIG
Definition gradientslider.h:81
@ GRADIENT_SLIDER_MARKER_LOWER_FILLED_BIG
Definition gradientslider.h:84
void dtgtk_gradient_slider_set_picker_meanminmax(GtkDarktableGradientSlider *gslider, gdouble mean, gdouble min, gdouble max)
Definition gradientslider.c:1004
void dtgtk_gradient_slider_set_stop(GtkDarktableGradientSlider *gslider, gfloat position, GdkRGBA color)
Definition gradientslider.c:961
_gradient_slider_direction
Definition gradientslider.h:63
@ MOVE_RIGHT
Definition gradientslider.h:65
@ MOVE_LEFT
Definition gradientslider.h:64
GtkWidget * dtgtk_gradient_slider_multivalue_new_with_color_and_name(GdkRGBA start, GdkRGBA end, gint positions, gchar *name)
Definition gradientslider.c:752
struct _GtkDarktableGradientSlider GtkDarktableGradientSlider
void dtgtk_gradient_slider_multivalue_set_scale_callback(GtkDarktableGradientSlider *gslider, float(*callback)(GtkWidget *self, float value, int dir))
Definition gradientslider.c:900
void dtgtk_gradient_slider_set_increment(GtkDarktableGradientSlider *gslider, gdouble value)
Definition gradientslider.c:1020
void dtgtk_gradient_slider_multivalue_set_stop(GtkDarktableGradientSlider *gslider, gfloat position, GdkRGBA color)
Definition gradientslider.c:760
void dtgtk_gradient_slider_multivalue_set_value(GtkDarktableGradientSlider *gslider, gdouble value, gint position)
Definition gradientslider.c:807
gdouble dtgtk_gradient_slider_multivalue_get_resetvalue(GtkDarktableGradientSlider *gslider, gint pos)
Definition gradientslider.c:855
void dtgtk_gradient_slider_multivalue_set_marker(GtkDarktableGradientSlider *gslider, gint mark, gint pos)
Definition gradientslider.c:829
void dtgtk_gradient_slider_multivalue_set_resetvalues(GtkDarktableGradientSlider *gslider, gdouble *values)
Definition gradientslider.c:862
struct _GtkDarktableGradientSliderClass GtkDarktableGradientSliderClass
GtkWidget * dtgtk_gradient_slider_multivalue_new_with_name(gint positions, gchar *name)
Definition gradientslider.c:720
Stroke-level path sampling and runtime-state API for drawlayer.
struct _GtkWidget GtkWidget
Definition splash.h:29
Definition gradientslider.h:133
GtkDrawingAreaClass parent_class
Definition gradientslider.h:134
Definition gradientslider.h:108
gint positions
Definition gradientslider.h:113
gint marker[10]
Definition gradientslider.h:116
gint margin_left
Definition gradientslider.h:120
gboolean is_entered
Definition gradientslider.h:126
gint markers_type
Definition gradientslider.h:127
gdouble picker[3]
Definition gradientslider.h:119
gdouble resetvalue[10]
Definition gradientslider.h:115
gboolean do_reset
Definition gradientslider.h:125
gdouble position[10]
Definition gradientslider.h:114
gint selected
Definition gradientslider.h:111
gint margin_right
Definition gradientslider.h:121
gdouble min_spacing
Definition gradientslider.h:118
gboolean is_resettable
Definition gradientslider.h:124
GList * colors
Definition gradientslider.h:110
gint active
Definition gradientslider.h:112
guint timeout_handle
Definition gradientslider.h:128
GtkDrawingArea widget
Definition gradientslider.h:109
float(* scale_callback)(GtkWidget *, float, int)
Definition gradientslider.h:129
gdouble increment
Definition gradientslider.h:117
gboolean is_dragging
Definition gradientslider.h:122
gboolean is_changed
Definition gradientslider.h:123
Definition gradientslider.h:138
GdkRGBA color
Definition gradientslider.h:140
gdouble position
Definition gradientslider.h:139