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()
static const float const float const float min
const float max
char * name
static const dt_aligned_pixel_simd_t value
Definition darktable.h:577
void dtgtk_gradient_slider_set_marker(GtkDarktableGradientSlider *gslider, gint mark)
void dtgtk_gradient_slider_multivalue_set_resetvalue(GtkDarktableGradientSlider *gslider, gdouble value, gint pos)
GType dtgtk_gradient_slider_multivalue_get_type(void)
@ GRADIENT_SLIDER_GET
@ GRADIENT_SLIDER_SET
@ GRADIENT_SLIDER_MARKER_DOUBLE_OPEN
@ GRADIENT_SLIDER_MARKER_UPPER_OPEN
@ GRADIENT_SLIDER_MARKER_DOUBLE_FILLED_BIG
@ GRADIENT_SLIDER_MARKER_DOUBLE_OPEN_BIG
@ GRADIENT_SLIDER_MARKER_UPPER_FILLED
@ GRADIENT_SLIDER_MARKER_LOWER_OPEN
@ GRADIENT_SLIDER_MARKER_UPPER_FILLED_BIG
@ GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG
@ GRADIENT_SLIDER_MARKER_DOUBLE_FILLED
@ GRADIENT_SLIDER_MARKER_LOWER_FILLED
@ GRADIENT_SLIDER_MARKER_UPPER_OPEN_BIG
@ GRADIENT_SLIDER_MARKER_LOWER_FILLED_BIG
GtkWidget * dtgtk_gradient_slider_new_with_name(gchar *name)
gdouble dtgtk_gradient_slider_multivalue_get_resetvalues(GtkDarktableGradientSlider *gslider)
@ FREE_MARKERS
@ PROPORTIONAL_MARKERS
void dtgtk_gradient_slider_set_resetvalue(GtkDarktableGradientSlider *gslider, gdouble value)
gdouble dtgtk_gradient_slider_multivalue_get_value(GtkDarktableGradientSlider *gslider, gint position)
void dtgtk_gradient_slider_multivalue_set_values(GtkDarktableGradientSlider *gslider, gdouble *values)
GtkWidget * dtgtk_gradient_slider_multivalue_new_with_color(GdkRGBA start, GdkRGBA end, gint positions)
@ GRADIENT_SLIDER_LAST_SIGNAL
@ GRADIENT_SLIDER_VALUE_CHANGED
GtkWidget * dtgtk_gradient_slider_new_with_color_and_name(GdkRGBA start, GdkRGBA end, gchar *name)
GtkWidget * dtgtk_gradient_slider_new_with_color(GdkRGBA start, GdkRGBA end)
#define GRADIENT_SLIDER_MAX_POSITIONS
void dtgtk_gradient_slider_set_value(GtkDarktableGradientSlider *gslider, gdouble value)
void dtgtk_gradient_slider_multivalue_set_increment(GtkDarktableGradientSlider *gslider, gdouble value)
void dtgtk_gradient_slider_multivalue_set_picker(GtkDarktableGradientSlider *gslider, gdouble value)
GtkWidget * dtgtk_gradient_slider_new()
void dtgtk_gradient_slider_multivalue_set_markers(GtkDarktableGradientSlider *gslider, gint *markers)
GType dtgtk_gradient_slider_get_type(void)
void dtgtk_gradient_slider_set_picker(GtkDarktableGradientSlider *gslider, gdouble value)
@ GRADIENT_SLIDER_MARGINS_DEFAULT
@ GRADIENT_SLIDER_MARGINS_BIG
@ GRADIENT_SLIDER_MARGINS_SMALL
@ GRADIENT_SLIDER_MARGINS_ZERO
void dtgtk_gradient_slider_multivalue_set_picker_meanminmax(GtkDarktableGradientSlider *gslider, gdouble mean, gdouble min, gdouble max)
void dtgtk_gradient_slider_multivalue_get_values(GtkDarktableGradientSlider *gslider, gdouble *values)
void dtgtk_gradient_slider_multivalue_clear_stops(GtkDarktableGradientSlider *gslider)
gboolean dtgtk_gradient_slider_multivalue_is_dragging(GtkDarktableGradientSlider *gslider)
GtkWidget * dtgtk_gradient_slider_multivalue_new(gint positions)
gboolean dtgtk_gradient_slider_is_dragging(GtkDarktableGradientSlider *gslider)
gdouble dtgtk_gradient_slider_get_value(GtkDarktableGradientSlider *gslider)
void dtgtk_gradient_slider_set_picker_meanminmax(GtkDarktableGradientSlider *gslider, gdouble mean, gdouble min, gdouble max)
void dtgtk_gradient_slider_set_stop(GtkDarktableGradientSlider *gslider, gfloat position, GdkRGBA color)
_gradient_slider_direction
@ MOVE_RIGHT
@ MOVE_LEFT
GtkWidget * dtgtk_gradient_slider_multivalue_new_with_color_and_name(GdkRGBA start, GdkRGBA end, gint positions, gchar *name)
struct _GtkDarktableGradientSlider GtkDarktableGradientSlider
void dtgtk_gradient_slider_multivalue_set_scale_callback(GtkDarktableGradientSlider *gslider, float(*callback)(GtkWidget *self, float value, int dir))
void dtgtk_gradient_slider_set_increment(GtkDarktableGradientSlider *gslider, gdouble value)
void dtgtk_gradient_slider_multivalue_set_stop(GtkDarktableGradientSlider *gslider, gfloat position, GdkRGBA color)
void dtgtk_gradient_slider_multivalue_set_value(GtkDarktableGradientSlider *gslider, gdouble value, gint position)
gdouble dtgtk_gradient_slider_multivalue_get_resetvalue(GtkDarktableGradientSlider *gslider, gint pos)
void dtgtk_gradient_slider_multivalue_set_marker(GtkDarktableGradientSlider *gslider, gint mark, gint pos)
void dtgtk_gradient_slider_multivalue_set_resetvalues(GtkDarktableGradientSlider *gslider, gdouble *values)
struct _GtkDarktableGradientSliderClass GtkDarktableGradientSliderClass
GtkWidget * dtgtk_gradient_slider_multivalue_new_with_name(gint positions, gchar *name)
Stroke-level path sampling and runtime-state API for drawlayer.
struct _GtkWidget GtkWidget
Definition splash.h:29
float(* scale_callback)(GtkWidget *, float, int)