48#include <gdk/gdkkeysyms.h>
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)
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
76#define INNER_PADDING DT_PIXEL_APPLY_DPI(4)
77#define INTERNAL_PADDING 2. * INNER_PADDING
281#define DT_BAUHAUS_SPACE 0
313 float defval,
int digits);
315 float step,
float defval,
int digits,
int feedback);
318 float step,
float defval,
int digits,
int feedback);
357 const char *
label,
const char *tip,
int pos, GtkCallback callback,
358 gpointer
data,
const char **texts);
360#define DT_BAUHAUS_COMBOBOX_NEW_FULL(bauhaus, widget, action, label, tip, pos, callback, data, ...) \
362 static const gchar *texts[] = { __VA_ARGS__, NULL }; \
363 widget = dt_bauhaus_combobox_new_full(bauhaus, action, label, tip, pos, callback, data, texts); \
369 gpointer
data,
void (*free_func)(
void *
data), gboolean sensitive);
376 gpointer
data,
void (*free_func)(
void *
data),
int pos);
401 cairo_set_source_rgba(cr, color.red, color.green, color.blue, color.alpha);
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
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
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
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
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
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
dt_bauhaus_combobox_data_t combobox
Definition bauhaus.h:154
dt_bauhaus_slider_data_t slider
Definition bauhaus.h:153