Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
bauhaus.h
Go to the documentation of this file.
1/*
2 This file is part of darktable,
3 Copyright (C) 2012-2014, 2016 johannes hanika.
4 Copyright (C) 2012, 2019 parafin.
5 Copyright (C) 2012 Richard Wonka.
6 Copyright (C) 2012-2014, 2016-2019 Tobias Ellinghaus.
7 Copyright (C) 2012, 2016 Ulrich Pegelow.
8 Copyright (C) 2013, 2019, 2021-2022 Aldric Renaudin.
9 Copyright (C) 2013 Dennis Gnad.
10 Copyright (C) 2013 Simon Spannagel.
11 Copyright (C) 2013 Yari Adan.
12 Copyright (C) 2015 Jérémy Rosen.
13 Copyright (C) 2016 Roman Lebedev.
14 Copyright (C) 2017, 2020-2021 Dan Torop.
15 Copyright (C) 2018 David Polak.
16 Copyright (C) 2018, 2020-2021 Pascal Obry.
17 Copyright (C) 2018 Peter Budai.
18 Copyright (C) 2019-2020, 2022-2023, 2025 Aurélien PIERRE.
19 Copyright (C) 2019-2020 Heiko Bauke.
20 Copyright (C) 2020-2022 Diederik Ter Rahe.
21 Copyright (C) 2020 Hubert Kowalski.
22 Copyright (C) 2021 Philippe Weyland.
23 Copyright (C) 2022 Martin Bařinka.
24 Copyright (C) 2025 Alynx Zhou.
25 Copyright (C) 2025 Guillaume Stutin.
26
27 darktable is free software: you can redistribute it and/or modify
28 it under the terms of the GNU General Public License as published by
29 the Free Software Foundation, either version 3 of the License, or
30 (at your option) any later version.
31
32 darktable is distributed in the hope that it will be useful,
33 but WITHOUT ANY WARRANTY; without even the implied warranty of
34 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35 GNU General Public License for more details.
36
37 You should have received a copy of the GNU General Public License
38 along with darktable. If not, see <http://www.gnu.org/licenses/>.
39*/
40
41#pragma once
42
43#include "common/colorlabels.h"
46
47#include <assert.h>
48#include <gdk/gdkkeysyms.h>
49#include <gtk/gtk.h>
50#include <inttypes.h>
51#include <math.h>
52#include <stdlib.h>
53#include <string.h>
54
55#ifdef __cplusplus
56extern "C" {
57#endif
58
59#define DT_BAUHAUS_WIDGET_TYPE dt_bh_get_type()
60#define DT_BAUHAUS_WIDGET(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), DT_BAUHAUS_WIDGET_TYPE, DtBauhausWidget)
61#define DT_BAUHAUS_WIDGET_CLASS(obj) G_TYPE_CHECK_CLASS_CAST((obj), DT_BAUHAUS_WIDGET, DtBauhausWidgetClass)
62#define DT_IS_BAUHAUS_WIDGET(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), DT_BAUHAUS_WIDGET_TYPE)
63#define DT_IS_BAUHAUS_WIDGET_CLASS(obj) G_TYPE_CHECK_CLASS_TYPE((obj), DT_BAUHAUS_WIDGET_TYPE)
64#define DT_BAUHAUS_WIDGET_GET_CLASS \
65 G_TYPE_INSTANCE_GET_CLASS((obj), DT_BAUHAUS_WIDGET_TYPE, DtBauhausWidgetClass)
66
68
69#define DT_BAUHAUS_SLIDER_VALUE_CHANGED_DELAY_MAX 500
70#define DT_BAUHAUS_SLIDER_VALUE_CHANGED_DELAY_MIN 25
71#define DT_BAUHAUS_SLIDER_MAX_STOPS 20
72#define DT_BAUHAUS_COMBO_MAX_TEXT 180
73
74// INNER_PADDING is the horizontal space between slider and quad
75// and vertical space between labels and slider baseline
76#define INNER_PADDING DT_PIXEL_APPLY_DPI(4)
77#define INTERNAL_PADDING 2. * INNER_PADDING
78
80
82{
85 // TODO: all the fancy color sliders..
87
93
94// data portion for a slider
96{
97 float pos; // normalized slider value
98 float oldpos; // slider value before entering finetune mode (normalized)
99 float step; // step width (not normalized)
100 float defpos; // default value (not normalized)
101 float min, max; // min and max range
104 int digits; // how many decimals to round to
105
106 float (*grad_col)[3]; // colors for gradient slider
107 int grad_cnt; // how many stops
108 float *grad_pos; // and position of these.
109
110 int fill_feedback : 1; // fill the slider with brighter part up to the handle?
111
112 const char *format; // numeric value is printed with this format
113 float factor; // multiplication factor before printing
114 float offset; // addition before printing
115
116 gboolean is_dragging; // indicates is mouse is dragging slider
118
124
125// data portion for a combobox
127{
128 char *label;
130 gboolean sensitive;
131 gpointer data;
132 void (*free_func)(gpointer); // callback to free data elements
134
136{
137 int active; // currently active element
138 int hovered; // currently hovered element, to be used by drawings until and if it is set to active
139 int defpos; // default position
140 int editable; // 1 if arbitrary text may be typed
141 dt_bauhaus_combobox_alignment_t text_align; // if selected text in combo should be aligned to the left/right
142 char *text; // to hold arbitrary text if editable
143 PangoEllipsizeMode entries_ellipsis;
144 GPtrArray *entries;
145 void (*populate)(GtkWidget *w, void *module); // function to populate the combo list on the fly
147
148typedef union dt_bauhaus_data_t
149{
150 // this is the placeholder for the data portions
151 // associated with the implementations such as
152 // sliders, combo boxes, ..
156
157// gah, caps.
160
161typedef void (*dt_bauhaus_quad_paint_f)(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data);
162
163// our new widget and its private members, inheriting from drawing area:
165{
166 // gtk base widget
167 GtkDrawingArea parent;
168 // which type of control
170 // associated image operation module (to handle focus and such)
171 dt_gui_module_t *module;
172 // pointer to iop field linked to widget
173 gpointer field;
174 // type of field
176
177 // label text, short
178 char label[256];
179 // callback function to draw the quad icon
181 // minimal modifiers for paint function.
183 // data for the paint callback
185 // quad is a toggle button?
187 // show quad icon or space
188 gboolean show_quad;
189
190 // horizontally expand to fit container's width. Set to TRUE by default,
191 // assuming vertical columns. Manually set to FALSE if using in toolbar menu.
192 gboolean expand;
193
194 // margin and padding structure, defined in css, retrieve on each draw
195 GtkBorder *margin, *padding;
196
197 // TRUE if accels should not be enabled here.
198 // Use that for blending
199 gboolean no_accels;
200
201 // Reference to the global bauhaus structure holding common styles and such.
203
204 // Use the app-wise default value-changed callback from *bauhaus
205 // or use custom implementation
207
208 // goes last, might extend past the end:
210
212
213
214// global static data:
215enum
216{
221
222
223// class of our new widget, inheriting from drawing area
225{
226 GtkDrawingAreaClass parent_class;
227
228 // our custom signals
231
233{
234 // The bauhaus widget popup is shared across widgets,
235 // so we need to track which one is currently capturing it
239
240 // are set by the motion notification, to be used during drawing.
242
243 // time when the popup window was opened. this is sortof a hack to
244 // detect `double clicks between windows' to reset the combobox.
245 guint32 opentime;
246 // pointer position when popup window is closed
248 // used to determine whether the user crossed the line already.
251 // key input buffer
252 char keys[64];
254
255 // flag set on button press indicating that popup should be hidden in button release handler
256 gboolean hiding;
257
258 // appearance relevant stuff:
259 // sizes and fonts:
260 float line_height; // height of a line of text
261 float marker_size; // height of the slider indicator
262 float baseline_size; // height of the slider bar
263 float border_width; // width of the border of the slider marker
264 float quad_width; // width of the quad area to paint icons
265 PangoFontDescription *pango_font_desc; // no need to recreate this for every string we want to print
266
267 // colors for sliders and comboboxes
270
271 // colors for graphs
273 GdkRGBA graph_colors[3]; // primaries
275
276 // View-wise default callback to wire to the value-changed signal
277 // if the widget declaration sets the boolean
279};
280
281#define DT_BAUHAUS_SPACE 0
282
283
286
287// load theme colors, fonts, etc
289
290// common functions:
291// set the label text:
292void dt_bauhaus_widget_set_label(GtkWidget *w, const char *label);
294// attach a custom painted quad to the space at the right side (overwriting the default icon if any):
295void dt_bauhaus_widget_set_quad_paint(GtkWidget *w, dt_bauhaus_quad_paint_f f, int paint_flags, void *paint_data);
296// make this quad a toggle button:
298// set active status for the quad toggle button:
300// get active status for the quad toggle button:
302// set quad visibility:
303void dt_bauhaus_widget_set_quad_visibility(GtkWidget *w, const gboolean visible);
304// set pointer to iop params field:
306
309
310// slider:
313 float defval, int digits);
315 float step, float defval, int digits, int feedback);
316
318 float step, float defval, int digits, int feedback);
319
320// outside doesn't see the real type, we cast it internally.
321void dt_bauhaus_slider_set(GtkWidget *w, float pos);
322void dt_bauhaus_slider_set_val(GtkWidget *w, float val);
325char *dt_bauhaus_slider_get_text(GtkWidget *w, float val);
326
327void dt_bauhaus_slider_set_soft_min(GtkWidget* w, float val);
329void dt_bauhaus_slider_set_soft_max(GtkWidget* w, float val);
331void dt_bauhaus_slider_set_soft_range(GtkWidget *widget, float soft_min, float soft_max);
332
333void dt_bauhaus_slider_set_hard_min(GtkWidget* w, float val);
335void dt_bauhaus_slider_set_hard_max(GtkWidget* w, float val);
337
340void dt_bauhaus_slider_set_step(GtkWidget *w, float val);
342
343void dt_bauhaus_slider_set_feedback(GtkWidget *w, int feedback);
344
346void dt_bauhaus_slider_set_format(GtkWidget *w, const char *format);
348void dt_bauhaus_slider_set_offset(GtkWidget *w, float offset);
349void dt_bauhaus_slider_set_stop(GtkWidget *widget, float stop, float r, float g, float b);
351void dt_bauhaus_slider_set_default(GtkWidget *widget, float def);
352
353// combobox:
357 const char *label, const char *tip, int pos, GtkCallback callback,
358 gpointer data, const char **texts);
359
360#define DT_BAUHAUS_COMBOBOX_NEW_FULL(bauhaus, widget, action, label, tip, pos, callback, data, ...) \
361{ \
362 static const gchar *texts[] = { __VA_ARGS__, NULL }; \
363 widget = dt_bauhaus_combobox_new_full(bauhaus, action, label, tip, pos, callback, data, texts); \
364}
365
366void dt_bauhaus_combobox_add(GtkWidget *widget, const char *text);
369 gpointer data, void (*free_func)(void *data), gboolean sensitive);
370void dt_bauhaus_combobox_set(GtkWidget *w, int pos);
371gboolean dt_bauhaus_combobox_set_from_text(GtkWidget *w, const char *text);
373void dt_bauhaus_combobox_remove_at(GtkWidget *widget, int pos);
374void dt_bauhaus_combobox_insert(GtkWidget *widget, const char *text,int pos);
376 gpointer data, void (*free_func)(void *data), int pos);
378void dt_bauhaus_combobox_set_editable(GtkWidget *w, int editable);
382void dt_bauhaus_combobox_set_text(GtkWidget *w, const char *text);
384const char *dt_bauhaus_combobox_get_entry(GtkWidget *w, int pos);
387void dt_bauhaus_combobox_set_default(GtkWidget *widget, int def);
388void dt_bauhaus_combobox_add_populate_fct(GtkWidget *widget, void (*fct)(GtkWidget *w, void *module));
389void dt_bauhaus_combobox_add_list(GtkWidget *widget, const char **texts);
390void dt_bauhaus_combobox_entry_set_sensitive(GtkWidget *widget, int pos, gboolean sensitive);
391void dt_bauhaus_combobox_set_entries_ellipsis(GtkWidget *widget, PangoEllipsizeMode ellipis);
392
393/* Disable accels for this widget.
394* WARNING: accels are inited when setting the widget label. This function should be called before.
395* It will be useless for the "one-line" init & setter functions.
396*/
398
399static inline void set_color(cairo_t *cr, GdkRGBA color)
400{
401 cairo_set_source_rgba(cr, color.red, color.green, color.blue, color.alpha);
402}
403
411
412#ifdef __cplusplus
413}
414#endif
415
416// clang-format off
417// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
418// vim: shiftwidth=2 expandtab tabstop=2 cindent
419// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
420// clang-format on
GtkWidget * dt_bauhaus_slider_new(dt_bauhaus_t *bh, dt_gui_module_t *self)
Definition bauhaus.c:1382
float dt_bauhaus_slider_get_hard_max(GtkWidget *w)
Definition bauhaus.c:1209
float dt_bauhaus_slider_get(GtkWidget *w)
Definition bauhaus.c:2776
void dt_bauhaus_widget_set_label(GtkWidget *w, const char *label)
Definition bauhaus.c:1261
GtkWidget * dt_bauhaus_combobox_new_full(dt_bauhaus_t *bh, dt_gui_module_t *self, const char *label, const char *tip, int pos, GtkCallback callback, gpointer data, const char **texts)
Definition bauhaus.c:1456
dt_bauhaus_combobox_alignment_t
Definition bauhaus.h:120
@ DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT
Definition bauhaus.h:122
@ DT_BAUHAUS_COMBOBOX_ALIGN_LEFT
Definition bauhaus.h:121
@ DT_BAUHAUS_LAST_SIGNAL
Definition bauhaus.h:219
@ DT_BAUHAUS_QUAD_PRESSED_SIGNAL
Definition bauhaus.h:218
@ DT_BAUHAUS_VALUE_CHANGED_SIGNAL
Definition bauhaus.h:217
int dt_bauhaus_widget_get_quad_active(GtkWidget *w)
Definition bauhaus.c:1350
void dt_bauhaus_slider_set_soft_range(GtkWidget *widget, float soft_min, float soft_max)
Definition bauhaus.c:1255
gboolean dt_bauhaus_combobox_set_from_text(GtkWidget *w, const char *text)
Definition bauhaus.c:1738
void dt_bauhaus_widget_set_quad_visibility(GtkWidget *w, const gboolean visible)
Definition bauhaus.c:1343
void dt_bauhaus_combobox_insert(GtkWidget *widget, const char *text, int pos)
Definition bauhaus.c:1582
void dt_bauhaus_widget_set_quad_paint(GtkWidget *w, dt_bauhaus_quad_paint_f f, int paint_flags, void *paint_data)
Definition bauhaus.c:1309
void dt_bauhaus_slider_set_step(GtkWidget *w, float val)
Definition bauhaus.c:2841
void dt_bauhaus_slider_clear_stops(GtkWidget *widget)
Definition bauhaus.c:1788
char * dt_bauhaus_slider_get_text(GtkWidget *w, float val)
Definition bauhaus.c:2790
void dt_bauhaus_combobox_set_selected_text_align(GtkWidget *widget, const dt_bauhaus_combobox_alignment_t text_align)
Definition bauhaus.c:1559
void dt_bauhaus_hide_popup(dt_bauhaus_t *bh)
Definition bauhaus.c:2492
void dt_bauhaus_slider_reset(GtkWidget *widget)
Definition bauhaus.c:2877
void dt_bauhaus_cleanup(dt_bauhaus_t *bauhaus)
Definition bauhaus.c:1109
void dt_bauhaus_slider_set_default(GtkWidget *widget, float def)
Definition bauhaus.c:1248
void dt_bauhaus_slider_set_stop(GtkWidget *widget, float stop, float r, float g, float b)
Definition bauhaus.c:1796
void dt_bauhaus_load_theme(dt_bauhaus_t *bauhaus)
Definition bauhaus.c:912
const char * dt_bauhaus_combobox_get_entry(GtkWidget *w, int pos)
Definition bauhaus.c:1638
void dt_bauhaus_slider_set_hard_max(GtkWidget *w, float val)
Definition bauhaus.c:1191
void dt_bauhaus_combobox_entry_set_sensitive(GtkWidget *widget, int pos, gboolean sensitive)
Definition bauhaus.c:1779
void dt_bauhaus_slider_set_digits(GtkWidget *w, int val)
Definition bauhaus.c:2827
float dt_bauhaus_slider_get_soft_max(GtkWidget *w)
Definition bauhaus.c:1241
int dt_bauhaus_combobox_get(GtkWidget *w)
Definition bauhaus.c:1772
GtkWidget * dt_bauhaus_slider_new_with_range_and_feedback(dt_bauhaus_t *bh, dt_gui_module_t *self, float min, float max, float step, float defval, int digits, int feedback)
Definition bauhaus.c:1393
void dt_bauhaus_widget_set_field(GtkWidget *w, gpointer field, dt_introspection_type_t field_type)
Definition bauhaus.c:1317
void dt_bauhaus_widget_set_quad_active(GtkWidget *w, int active)
Definition bauhaus.c:1333
float dt_bauhaus_slider_get_hard_min(GtkWidget *w)
Definition bauhaus.c:1184
int dt_bauhaus_slider_get_digits(GtkWidget *w)
Definition bauhaus.c:2834
void dt_bauhaus_combobox_clear(GtkWidget *w)
Definition bauhaus.c:1629
void dt_bauhaus_slider_set_factor(GtkWidget *w, float factor)
Definition bauhaus.c:2900
void dt_bauhaus_slider_set_soft_max(GtkWidget *w, float val)
Definition bauhaus.c:1232
float dt_bauhaus_slider_get_soft_min(GtkWidget *w)
Definition bauhaus.c:1225
dt_bauhaus_type_t
Definition bauhaus.h:82
@ DT_BAUHAUS_COMBOBOX
Definition bauhaus.h:84
@ DT_BAUHAUS_SLIDER
Definition bauhaus.h:83
void dt_bauhaus_slider_set_soft_min(GtkWidget *w, float val)
Definition bauhaus.c:1216
void dt_bauhaus_slider_set_val(GtkWidget *w, float val)
Definition bauhaus.c:2821
void dt_bauhaus_combobox_set_entries_ellipsis(GtkWidget *widget, PangoEllipsizeMode ellipis)
Definition bauhaus.c:1533
#define DT_BAUHAUS_WIDGET_TYPE
Definition bauhaus.h:59
static void set_color(cairo_t *cr, GdkRGBA color)
Definition bauhaus.h:399
void dt_bauhaus_slider_set_feedback(GtkWidget *w, int feedback)
Definition bauhaus.c:2869
void dt_bauhaus_set_use_default_callback(GtkWidget *widget)
Tell the widget to use the globally-defined default callback in the bauhaus structure This callback n...
Definition bauhaus.c:3235
int dt_bauhaus_combobox_length(GtkWidget *widget)
Definition bauhaus.c:1597
void dt_bauhaus_slider_set(GtkWidget *w, float pos)
Definition bauhaus.c:2799
void dt_bauhaus_slider_set_format(GtkWidget *w, const char *format)
Definition bauhaus.c:2887
float dt_bauhaus_slider_get_step(GtkWidget *w)
Definition bauhaus.c:2848
void dt_bauhaus_combobox_set_default(GtkWidget *widget, int def)
Definition bauhaus.c:1159
void dt_bauhaus_widget_set_quad_toggle(GtkWidget *w, int toggle)
Definition bauhaus.c:1327
gpointer dt_bauhaus_combobox_get_data(GtkWidget *widget)
Definition bauhaus.c:1620
GtkWidget * dt_bauhaus_slider_from_widget(dt_bauhaus_t *bh, dt_bauhaus_widget_t *widget, dt_gui_module_t *self, float min, float max, float step, float defval, int digits, int feedback)
Definition bauhaus.c:1414
void dt_bauhaus_combobox_add_populate_fct(GtkWidget *widget, void(*fct)(GtkWidget *w, void *module))
Definition bauhaus.c:1499
void dt_bauhaus_combobox_add_list(GtkWidget *widget, const char **texts)
Definition bauhaus.c:1506
gboolean dt_bauhaus_combobox_set_from_value(GtkWidget *w, int value)
Definition bauhaus.c:1756
void dt_bauhaus_disable_accels(GtkWidget *widget)
Definition bauhaus.c:3229
void dt_bauhaus_slider_set_hard_min(GtkWidget *w, float val)
Definition bauhaus.c:1167
const char * dt_bauhaus_combobox_get_text(GtkWidget *w)
Definition bauhaus.c:1604
void dt_bauhaus_combobox_insert_full(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align, gpointer data, void(*free_func)(void *data), int pos)
const char * dt_bauhaus_widget_get_label(GtkWidget *w)
Definition bauhaus.c:1303
void(* dt_bauhaus_quad_paint_f)(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
Definition bauhaus.h:161
int dt_bauhaus_combobox_get_editable(GtkWidget *w)
Definition bauhaus.c:1552
void dt_bauhaus_combobox_set_editable(GtkWidget *w, int editable)
Definition bauhaus.c:1542
void dt_bauhaus_slider_set_offset(GtkWidget *w, float offset)
Definition bauhaus.c:2907
GtkWidget * dt_bauhaus_slider_new_with_range(dt_bauhaus_t *bh, dt_gui_module_t *self, float min, float max, float step, float defval, int digits)
Definition bauhaus.c:1387
void dt_bauhaus_combobox_remove_at(GtkWidget *widget, int pos)
Definition bauhaus.c:1567
GtkWidget * dt_bauhaus_combobox_new(dt_bauhaus_t *bh, dt_gui_module_t *self)
Definition bauhaus.c:1449
float dt_bauhaus_slider_get_val(GtkWidget *w)
Definition bauhaus.c:2784
void dt_bauhaus_combobox_add_full(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align, gpointer data, void(*free_func)(void *data), gboolean sensitive)
void dt_bauhaus_combobox_set_text(GtkWidget *w, const char *text)
Definition bauhaus.c:1647
dt_bauhaus_curve_t
Definition bauhaus.h:89
@ DT_BAUHAUS_GET
Definition bauhaus.h:91
@ DT_BAUHAUS_SET
Definition bauhaus.h:90
void dt_bauhaus_combobox_set(GtkWidget *w, int pos)
Definition bauhaus.c:1732
void dt_bauhaus_combobox_add(GtkWidget *widget, const char *text)
Definition bauhaus.c:1512
dt_bauhaus_t * dt_bauhaus_init()
Definition bauhaus.c:991
void dt_bauhaus_combobox_add_aligned(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align)
Definition bauhaus.c:1517
void dt_bauhaus_combobox_from_widget(dt_bauhaus_t *bh, dt_bauhaus_widget_t *widget, dt_gui_module_t *self)
Definition bauhaus.c:1469
void dt_bauhaus_show_popup(GtkWidget *w)
Definition bauhaus.c:2508
@ DT_COLORLABELS_LAST
Definition colorlabels.h:46
const float h
Definition colorspaces_inline_conversions.h:1366
const float g
Definition colorspaces_inline_conversions.h:925
const dt_aligned_pixel_t f
Definition colorspaces_inline_conversions.h:256
static const float const float const float min
Definition colorspaces_inline_conversions.h:667
const float r
Definition colorspaces_inline_conversions.h:1324
const float max
Definition colorspaces_inline_conversions.h:721
const float b
Definition colorspaces_inline_conversions.h:1326
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
static const dt_aligned_pixel_simd_t value
Definition darktable.h:501
dt_introspection_type_t
Definition introspection.h:38
static const float x
Definition iop_profile.h:239
dt_mipmap_buffer_dsc_flags flags
Definition mipmap_cache.c:4
const float factor
Definition pdf.h:90
struct _GtkWidget GtkWidget
Definition splash.h:29
Definition bauhaus.h:136
int defpos
Definition bauhaus.h:139
int active
Definition bauhaus.h:137
PangoEllipsizeMode entries_ellipsis
Definition bauhaus.h:143
void(* populate)(GtkWidget *w, void *module)
Definition bauhaus.h:145
int editable
Definition bauhaus.h:140
int hovered
Definition bauhaus.h:138
dt_bauhaus_combobox_alignment_t text_align
Definition bauhaus.h:141
GPtrArray * entries
Definition bauhaus.h:144
char * text
Definition bauhaus.h:142
Definition bauhaus.h:127
gboolean sensitive
Definition bauhaus.h:130
char * label
Definition bauhaus.h:128
void(* free_func)(gpointer)
Definition bauhaus.h:132
dt_bauhaus_combobox_alignment_t alignment
Definition bauhaus.h:129
gpointer data
Definition bauhaus.h:131
Definition bauhaus.h:96
float soft_max
Definition bauhaus.h:102
float(* grad_col)[3]
Definition bauhaus.h:106
float hard_max
Definition bauhaus.h:103
float defpos
Definition bauhaus.h:100
int grad_cnt
Definition bauhaus.h:107
float factor
Definition bauhaus.h:113
float min
Definition bauhaus.h:101
gboolean is_dragging
Definition bauhaus.h:116
float oldpos
Definition bauhaus.h:98
float offset
Definition bauhaus.h:114
const char * format
Definition bauhaus.h:112
float * grad_pos
Definition bauhaus.h:108
float soft_min
Definition bauhaus.h:102
float hard_min
Definition bauhaus.h:103
float max
Definition bauhaus.h:101
int fill_feedback
Definition bauhaus.h:110
int digits
Definition bauhaus.h:104
float pos
Definition bauhaus.h:97
float step
Definition bauhaus.h:99
Definition bauhaus.h:233
GdkRGBA graph_bg
Definition bauhaus.h:272
guint32 opentime
Definition bauhaus.h:245
GdkRGBA color_value_text_insensitive
Definition bauhaus.h:269
float end_mouse_x
Definition bauhaus.h:247
float baseline_size
Definition bauhaus.h:262
GdkRGBA colorlabels[DT_COLORLABELS_LAST]
Definition bauhaus.h:274
void(* default_value_changed_callback)(GtkWidget *widget)
Definition bauhaus.h:278
GdkRGBA graph_overlay
Definition bauhaus.h:272
float mouse_line_distance
Definition bauhaus.h:250
GdkRGBA color_border
Definition bauhaus.h:268
GdkRGBA indicator_border
Definition bauhaus.h:268
GdkRGBA color_value_insensitive
Definition bauhaus.h:269
GdkRGBA graph_border
Definition bauhaus.h:272
GdkRGBA graph_fg_active
Definition bauhaus.h:272
GdkRGBA graph_grid
Definition bauhaus.h:272
int keys_cnt
Definition bauhaus.h:253
PangoFontDescription * pango_font_desc
Definition bauhaus.h:265
GdkRGBA graph_exterior
Definition bauhaus.h:272
GdkRGBA color_fill
Definition bauhaus.h:268
gboolean hiding
Definition bauhaus.h:256
GtkWidget * popup_window
Definition bauhaus.h:237
GdkRGBA inset_histogram
Definition bauhaus.h:272
float quad_width
Definition bauhaus.h:264
float line_height
Definition bauhaus.h:260
float end_mouse_y
Definition bauhaus.h:247
GdkRGBA color_value_text
Definition bauhaus.h:269
float mouse_x
Definition bauhaus.h:241
GdkRGBA color_value
Definition bauhaus.h:269
char keys[64]
Definition bauhaus.h:252
float border_width
Definition bauhaus.h:263
GdkRGBA graph_fg
Definition bauhaus.h:272
GtkWidget * popup_area
Definition bauhaus.h:238
struct dt_bauhaus_widget_t * current
Definition bauhaus.h:236
GdkRGBA graph_colors[3]
Definition bauhaus.h:273
GdkRGBA color_fg
Definition bauhaus.h:268
int change_active
Definition bauhaus.h:249
GdkRGBA color_fg_insensitive
Definition bauhaus.h:268
float marker_size
Definition bauhaus.h:261
float mouse_y
Definition bauhaus.h:241
GdkRGBA color_bg
Definition bauhaus.h:268
Definition bauhaus.h:225
GtkDrawingAreaClass parent_class
Definition bauhaus.h:226
guint signals[DT_BAUHAUS_LAST_SIGNAL]
Definition bauhaus.h:229
Definition bauhaus.h:165
char label[256]
Definition bauhaus.h:178
gboolean show_quad
Definition bauhaus.h:188
GtkDrawingArea parent
Definition bauhaus.h:167
GtkBorder * padding
Definition bauhaus.h:195
dt_bauhaus_quad_paint_f quad_paint
Definition bauhaus.h:180
int quad_toggle
Definition bauhaus.h:186
dt_bauhaus_data_t data
Definition bauhaus.h:209
gboolean expand
Definition bauhaus.h:192
gboolean use_default_callback
Definition bauhaus.h:206
gboolean no_accels
Definition bauhaus.h:199
void * quad_paint_data
Definition bauhaus.h:184
GtkBorder * margin
Definition bauhaus.h:195
dt_gui_module_t *gpointer field
Definition bauhaus.h:173
int quad_paint_flags
Definition bauhaus.h:182
dt_bauhaus_t * bauhaus
Definition bauhaus.h:202
dt_introspection_type_t field_type
Definition bauhaus.h:175
dt_bauhaus_type_t type
Definition bauhaus.h:169
The dt_gui_module_t type is the intersection between a dt_lib_module_t and a dt_iop_module_t structur...
Definition gui_module_api.h:42
Definition bauhaus.h:149
dt_bauhaus_combobox_data_t combobox
Definition bauhaus.h:154
dt_bauhaus_slider_data_t slider
Definition bauhaus.h:153