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;
201
202 // Reference to the global bauhaus structure holding common styles and such.
204
205 // Use the app-wise default value-changed callback from *bauhaus
206 // or use custom implementation
208
209 // goes last, might extend past the end:
211
213
214
215// global static data:
216enum
217{
222
223
224// class of our new widget, inheriting from drawing area
226{
227 GtkDrawingAreaClass parent_class;
228
229 // our custom signals
232
234{
235 // The bauhaus widget popup is shared across widgets,
236 // so we need to track which one is currently capturing it
240
241 // are set by the motion notification, to be used during drawing.
243
244 // time when the popup window was opened. this is sortof a hack to
245 // detect `double clicks between windows' to reset the combobox.
246 guint32 opentime;
247 // pointer position when popup window is closed
249 // used to determine whether the user crossed the line already.
252 // key input buffer
253 char keys[64];
255
256 // flag set on button press indicating that popup should be hidden in button release handler
257 gboolean hiding;
258
259 // appearance relevant stuff:
260 // sizes and fonts:
261 float line_height; // height of a line of text
262 float marker_size; // height of the slider indicator
263 float baseline_size; // height of the slider bar
264 float border_width; // width of the border of the slider marker
265 float quad_width; // width of the quad area to paint icons
266 PangoFontDescription *pango_font_desc; // no need to recreate this for every string we want to print
267
268 // colors for sliders and comboboxes
271
272 // colors for graphs
274 GdkRGBA graph_colors[3]; // primaries
276
277 // View-wise default callback to wire to the value-changed signal
278 // if the widget declaration sets the boolean
280};
281
282#define DT_BAUHAUS_SPACE 0
283
284
287
288// load theme colors, fonts, etc
290
291// common functions:
292// set the label text:
293void dt_bauhaus_widget_set_label(GtkWidget *w, const char *label);
295// attach a custom painted quad to the space at the right side (overwriting the default icon if any):
296void dt_bauhaus_widget_set_quad_paint(GtkWidget *w, dt_bauhaus_quad_paint_f f, int paint_flags, void *paint_data);
297// make this quad a toggle button:
299// set active status for the quad toggle button:
301// get active status for the quad toggle button:
303// set quad visibility:
304void dt_bauhaus_widget_set_quad_visibility(GtkWidget *w, const gboolean visible);
305// set pointer to iop params field:
307
310
311// slider:
314 float defval, int digits);
316 float step, float defval, int digits, int feedback);
317
319 float step, float defval, int digits, int feedback);
320
321// outside doesn't see the real type, we cast it internally.
322void dt_bauhaus_slider_set(GtkWidget *w, float pos);
323void dt_bauhaus_slider_set_val(GtkWidget *w, float val);
326char *dt_bauhaus_slider_get_text(GtkWidget *w, float val);
327
328void dt_bauhaus_slider_set_soft_min(GtkWidget* w, float val);
330void dt_bauhaus_slider_set_soft_max(GtkWidget* w, float val);
332void dt_bauhaus_slider_set_soft_range(GtkWidget *widget, float soft_min, float soft_max);
333
334void dt_bauhaus_slider_set_hard_min(GtkWidget* w, float val);
336void dt_bauhaus_slider_set_hard_max(GtkWidget* w, float val);
338
341void dt_bauhaus_slider_set_step(GtkWidget *w, float val);
343
344void dt_bauhaus_slider_set_feedback(GtkWidget *w, int feedback);
345
347void dt_bauhaus_slider_set_format(GtkWidget *w, const char *format);
349void dt_bauhaus_slider_set_offset(GtkWidget *w, float offset);
350void dt_bauhaus_slider_set_stop(GtkWidget *widget, float stop, float r, float g, float b);
352void dt_bauhaus_slider_set_default(GtkWidget *widget, float def);
353
354// combobox:
358 const char *label, const char *tip, int pos, GtkCallback callback,
359 gpointer data, const char **texts);
360
361#define DT_BAUHAUS_COMBOBOX_NEW_FULL(bauhaus, widget, action, label, tip, pos, callback, data, ...) \
362{ \
363 static const gchar *texts[] = { __VA_ARGS__, NULL }; \
364 widget = dt_bauhaus_combobox_new_full(bauhaus, action, label, tip, pos, callback, data, texts); \
365}
366
367void dt_bauhaus_combobox_add(GtkWidget *widget, const char *text);
370 gpointer data, void (*free_func)(void *data), gboolean sensitive);
371void dt_bauhaus_combobox_set(GtkWidget *w, int pos);
372gboolean dt_bauhaus_combobox_set_from_text(GtkWidget *w, const char *text);
374void dt_bauhaus_combobox_remove_at(GtkWidget *widget, int pos);
375void dt_bauhaus_combobox_insert(GtkWidget *widget, const char *text,int pos);
377 gpointer data, void (*free_func)(void *data), int pos);
379void dt_bauhaus_combobox_set_editable(GtkWidget *w, int editable);
383void dt_bauhaus_combobox_set_text(GtkWidget *w, const char *text);
385const char *dt_bauhaus_combobox_get_entry(GtkWidget *w, int pos);
388void dt_bauhaus_combobox_set_default(GtkWidget *widget, int def);
389void dt_bauhaus_combobox_add_populate_fct(GtkWidget *widget, void (*fct)(GtkWidget *w, void *module));
390void dt_bauhaus_combobox_add_list(GtkWidget *widget, const char **texts);
391void dt_bauhaus_combobox_entry_set_sensitive(GtkWidget *widget, int pos, gboolean sensitive);
392void dt_bauhaus_combobox_set_entries_ellipsis(GtkWidget *widget, PangoEllipsizeMode ellipis);
393
394/* Disable accels for this widget.
395* WARNING: accels are inited when setting the widget label. This function should be called before.
396* It will be useless for the "one-line" init & setter functions.
397*/
401
402static inline void set_color(cairo_t *cr, GdkRGBA color)
403{
404 cairo_set_source_rgba(cr, color.red, color.green, color.blue, color.alpha);
405}
406
414
415#ifdef __cplusplus
416}
417#endif
418
419// clang-format off
420// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
421// vim: shiftwidth=2 expandtab tabstop=2 cindent
422// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
423// clang-format on
GtkWidget * dt_bauhaus_slider_new(dt_bauhaus_t *bh, dt_gui_module_t *self)
Definition bauhaus.c:1424
float dt_bauhaus_slider_get_hard_max(GtkWidget *w)
Definition bauhaus.c:1251
float dt_bauhaus_slider_get(GtkWidget *w)
Definition bauhaus.c:2859
void dt_bauhaus_widget_set_label(GtkWidget *w, const char *label)
Definition bauhaus.c:1303
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:1498
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
int dt_bauhaus_widget_get_quad_active(GtkWidget *w)
Definition bauhaus.c:1392
void dt_bauhaus_slider_set_soft_range(GtkWidget *widget, float soft_min, float soft_max)
Definition bauhaus.c:1297
gboolean dt_bauhaus_combobox_set_from_text(GtkWidget *w, const char *text)
Definition bauhaus.c:1788
void dt_bauhaus_widget_set_quad_visibility(GtkWidget *w, const gboolean visible)
Definition bauhaus.c:1385
void dt_bauhaus_combobox_insert(GtkWidget *widget, const char *text, int pos)
Definition bauhaus.c:1630
void dt_bauhaus_widget_set_quad_paint(GtkWidget *w, dt_bauhaus_quad_paint_f f, int paint_flags, void *paint_data)
Definition bauhaus.c:1351
void dt_bauhaus_slider_set_step(GtkWidget *w, float val)
Definition bauhaus.c:2924
void dt_bauhaus_slider_clear_stops(GtkWidget *widget)
Definition bauhaus.c:1838
char * dt_bauhaus_slider_get_text(GtkWidget *w, float val)
Definition bauhaus.c:2873
void dt_bauhaus_combobox_set_selected_text_align(GtkWidget *widget, const dt_bauhaus_combobox_alignment_t text_align)
Definition bauhaus.c:1606
void dt_bauhaus_hide_popup(dt_bauhaus_t *bh)
Definition bauhaus.c:2551
void dt_bauhaus_slider_reset(GtkWidget *widget)
Definition bauhaus.c:2964
void dt_bauhaus_cleanup(dt_bauhaus_t *bauhaus)
Definition bauhaus.c:1150
void dt_bauhaus_slider_set_default(GtkWidget *widget, float def)
Definition bauhaus.c:1290
void dt_bauhaus_slider_set_stop(GtkWidget *widget, float stop, float r, float g, float b)
Definition bauhaus.c:1846
void dt_bauhaus_load_theme(dt_bauhaus_t *bauhaus)
Definition bauhaus.c:940
const char * dt_bauhaus_combobox_get_entry(GtkWidget *w, int pos)
Definition bauhaus.c:1687
void dt_bauhaus_slider_set_hard_max(GtkWidget *w, float val)
Definition bauhaus.c:1233
void dt_bauhaus_combobox_entry_set_sensitive(GtkWidget *widget, int pos, gboolean sensitive)
Definition bauhaus.c:1829
void dt_bauhaus_slider_set_digits(GtkWidget *w, int val)
Definition bauhaus.c:2910
float dt_bauhaus_slider_get_soft_max(GtkWidget *w)
Definition bauhaus.c:1283
int dt_bauhaus_combobox_get(GtkWidget *w)
Definition bauhaus.c:1822
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:1435
void dt_bauhaus_widget_set_field(GtkWidget *w, gpointer field, dt_introspection_type_t field_type)
Definition bauhaus.c:1359
void dt_bauhaus_widget_set_quad_active(GtkWidget *w, int active)
Definition bauhaus.c:1375
float dt_bauhaus_slider_get_hard_min(GtkWidget *w)
Definition bauhaus.c:1226
int dt_bauhaus_slider_get_digits(GtkWidget *w)
Definition bauhaus.c:2917
void dt_bauhaus_combobox_clear(GtkWidget *w)
Definition bauhaus.c:1677
void dt_bauhaus_disable_module_list(GtkWidget *widget)
Definition bauhaus.c:3322
void dt_bauhaus_slider_set_factor(GtkWidget *w, float factor)
Definition bauhaus.c:2987
void dt_bauhaus_slider_set_soft_max(GtkWidget *w, float val)
Definition bauhaus.c:1274
float dt_bauhaus_slider_get_soft_min(GtkWidget *w)
Definition bauhaus.c:1267
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:1258
void dt_bauhaus_slider_set_val(GtkWidget *w, float val)
Definition bauhaus.c:2904
void dt_bauhaus_combobox_set_entries_ellipsis(GtkWidget *widget, PangoEllipsizeMode ellipis)
Definition bauhaus.c:1578
#define DT_BAUHAUS_WIDGET_TYPE
Definition bauhaus.h:59
static void set_color(cairo_t *cr, GdkRGBA color)
Definition bauhaus.h:402
void dt_bauhaus_slider_set_feedback(GtkWidget *w, int feedback)
Definition bauhaus.c:2956
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:3328
int dt_bauhaus_combobox_length(GtkWidget *widget)
Definition bauhaus.c:1645
void dt_bauhaus_slider_set(GtkWidget *w, float pos)
Definition bauhaus.c:2882
void dt_bauhaus_slider_set_format(GtkWidget *w, const char *format)
Definition bauhaus.c:2974
float dt_bauhaus_slider_get_step(GtkWidget *w)
Definition bauhaus.c:2931
void dt_bauhaus_combobox_set_default(GtkWidget *widget, int def)
Definition bauhaus.c:1201
void dt_bauhaus_widget_set_quad_toggle(GtkWidget *w, int toggle)
Definition bauhaus.c:1369
gpointer dt_bauhaus_combobox_get_data(GtkWidget *widget)
Definition bauhaus.c:1668
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:1456
void dt_bauhaus_combobox_add_populate_fct(GtkWidget *widget, void(*fct)(GtkWidget *w, void *module))
Definition bauhaus.c:1542
void dt_bauhaus_combobox_add_list(GtkWidget *widget, const char **texts)
Definition bauhaus.c:1550
gboolean dt_bauhaus_combobox_set_from_value(GtkWidget *w, int value)
Definition bauhaus.c:1806
void dt_bauhaus_disable_accels(GtkWidget *widget)
Definition bauhaus.c:3316
void dt_bauhaus_slider_set_hard_min(GtkWidget *w, float val)
Definition bauhaus.c:1209
const char * dt_bauhaus_combobox_get_text(GtkWidget *w)
Definition bauhaus.c:1652
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:1345
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:1599
void dt_bauhaus_combobox_set_editable(GtkWidget *w, int editable)
Definition bauhaus.c:1588
void dt_bauhaus_slider_set_offset(GtkWidget *w, float offset)
Definition bauhaus.c:2994
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:1429
void dt_bauhaus_combobox_remove_at(GtkWidget *widget, int pos)
Definition bauhaus.c:1615
GtkWidget * dt_bauhaus_combobox_new(dt_bauhaus_t *bh, dt_gui_module_t *self)
Definition bauhaus.c:1491
@ DT_BAUHAUS_LAST_SIGNAL
Definition bauhaus.h:220
@ DT_BAUHAUS_QUAD_PRESSED_SIGNAL
Definition bauhaus.h:219
@ DT_BAUHAUS_VALUE_CHANGED_SIGNAL
Definition bauhaus.h:218
float dt_bauhaus_slider_get_val(GtkWidget *w)
Definition bauhaus.c:2867
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:1696
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:1782
void dt_bauhaus_combobox_add(GtkWidget *widget, const char *text)
Definition bauhaus.c:1556
dt_bauhaus_t * dt_bauhaus_init()
Definition bauhaus.c:1032
void dt_bauhaus_combobox_add_aligned(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align)
Definition bauhaus.c:1561
void dt_bauhaus_combobox_from_widget(dt_bauhaus_t *bh, dt_bauhaus_widget_t *widget, dt_gui_module_t *self)
Definition bauhaus.c:1511
void dt_bauhaus_show_popup(GtkWidget *w)
Definition bauhaus.c:2567
@ DT_COLORLABELS_LAST
Definition colorlabels.h:46
const float g
Definition colorspaces_inline_conversions.h:674
const dt_aligned_pixel_t f
Definition colorspaces_inline_conversions.h:102
static const float const float const float min
Definition colorspaces_inline_conversions.h:438
const float max
Definition colorspaces_inline_conversions.h:490
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
static const dt_aligned_pixel_simd_t value
Definition darktable.h:577
dt_introspection_type_t
Definition introspection.h:38
static const float x
Definition iop_profile.h:235
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
const float r
Definition src/develop/noise_generator.h:101
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:234
GdkRGBA graph_bg
Definition bauhaus.h:273
guint32 opentime
Definition bauhaus.h:246
GdkRGBA color_value_text_insensitive
Definition bauhaus.h:270
float end_mouse_x
Definition bauhaus.h:248
float baseline_size
Definition bauhaus.h:263
GdkRGBA colorlabels[DT_COLORLABELS_LAST]
Definition bauhaus.h:275
void(* default_value_changed_callback)(GtkWidget *widget)
Definition bauhaus.h:279
GdkRGBA graph_overlay
Definition bauhaus.h:273
float mouse_line_distance
Definition bauhaus.h:251
GdkRGBA color_border
Definition bauhaus.h:269
GdkRGBA indicator_border
Definition bauhaus.h:269
GdkRGBA color_value_insensitive
Definition bauhaus.h:270
GdkRGBA graph_border
Definition bauhaus.h:273
GdkRGBA graph_fg_active
Definition bauhaus.h:273
GdkRGBA graph_grid
Definition bauhaus.h:273
int keys_cnt
Definition bauhaus.h:254
PangoFontDescription * pango_font_desc
Definition bauhaus.h:266
GdkRGBA graph_exterior
Definition bauhaus.h:273
GdkRGBA color_fill
Definition bauhaus.h:269
gboolean hiding
Definition bauhaus.h:257
GtkWidget * popup_window
Definition bauhaus.h:238
GdkRGBA inset_histogram
Definition bauhaus.h:273
float quad_width
Definition bauhaus.h:265
float line_height
Definition bauhaus.h:261
float end_mouse_y
Definition bauhaus.h:248
GdkRGBA color_value_text
Definition bauhaus.h:270
float mouse_x
Definition bauhaus.h:242
GdkRGBA color_value
Definition bauhaus.h:270
char keys[64]
Definition bauhaus.h:253
float border_width
Definition bauhaus.h:264
GdkRGBA graph_fg
Definition bauhaus.h:273
GtkWidget * popup_area
Definition bauhaus.h:239
struct dt_bauhaus_widget_t * current
Definition bauhaus.h:237
GdkRGBA graph_colors[3]
Definition bauhaus.h:274
GdkRGBA color_fg
Definition bauhaus.h:269
int change_active
Definition bauhaus.h:250
GdkRGBA color_fg_insensitive
Definition bauhaus.h:269
float marker_size
Definition bauhaus.h:262
float mouse_y
Definition bauhaus.h:242
GdkRGBA color_bg
Definition bauhaus.h:269
Definition bauhaus.h:226
GtkDrawingAreaClass parent_class
Definition bauhaus.h:227
guint signals[DT_BAUHAUS_LAST_SIGNAL]
Definition bauhaus.h:230
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:210
gboolean no_module_list
Definition bauhaus.h:200
gboolean expand
Definition bauhaus.h:192
gboolean use_default_callback
Definition bauhaus.h:207
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:203
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