26#include <gdk/gdkkeysyms.h>
37#define DT_BAUHAUS_WIDGET_TYPE dt_bh_get_type()
38#define DT_BAUHAUS_WIDGET(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), DT_BAUHAUS_WIDGET_TYPE, DtBauhausWidget)
39#define DT_BAUHAUS_WIDGET_CLASS(obj) G_TYPE_CHECK_CLASS_CAST((obj), DT_BAUHAUS_WIDGET, DtBauhausWidgetClass)
40#define DT_IS_BAUHAUS_WIDGET(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), DT_BAUHAUS_WIDGET_TYPE)
41#define DT_IS_BAUHAUS_WIDGET_CLASS(obj) G_TYPE_CHECK_CLASS_TYPE((obj), DT_BAUHAUS_WIDGET_TYPE)
42#define DT_BAUHAUS_WIDGET_GET_CLASS \
43 G_TYPE_INSTANCE_GET_CLASS((obj), DT_BAUHAUS_WIDGET_TYPE, DtBauhausWidgetClass)
47#define DT_BAUHAUS_SLIDER_VALUE_CHANGED_DELAY_MAX 500
48#define DT_BAUHAUS_SLIDER_VALUE_CHANGED_DELAY_MIN 25
49#define DT_BAUHAUS_SLIDER_MAX_STOPS 20
50#define DT_BAUHAUS_COMBO_MAX_TEXT 180
54#define INNER_PADDING DT_PIXEL_APPLY_DPI(4)
55#define INTERNAL_PADDING 2. * INNER_PADDING
262#define DT_BAUHAUS_SPACE 0
294 float defval,
int digits);
296 float step,
float defval,
int digits,
int feedback);
299 float step,
float defval,
int digits,
int feedback);
338 const char *
label,
const char *tip,
int pos, GtkCallback callback,
339 gpointer
data,
const char **texts);
341#define DT_BAUHAUS_COMBOBOX_NEW_FULL(bauhaus, widget, action, label, tip, pos, callback, data, ...) \
343 static const gchar *texts[] = { __VA_ARGS__, NULL }; \
344 widget = dt_bauhaus_combobox_new_full(bauhaus, action, label, tip, pos, callback, data, texts); \
350 gpointer
data,
void (*free_func)(
void *
data), gboolean sensitive);
357 gpointer
data,
void (*free_func)(
void *
data),
int pos);
382 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:1332
float dt_bauhaus_slider_get_hard_max(GtkWidget *w)
Definition bauhaus.c:1160
float dt_bauhaus_slider_get(GtkWidget *w)
Definition bauhaus.c:2708
void dt_bauhaus_widget_set_label(GtkWidget *w, const char *label)
Definition bauhaus.c:1212
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:1407
dt_bauhaus_combobox_alignment_t
Definition bauhaus.h:99
@ DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT
Definition bauhaus.h:101
@ DT_BAUHAUS_COMBOBOX_ALIGN_LEFT
Definition bauhaus.h:100
int dt_bauhaus_widget_get_quad_active(GtkWidget *w)
Definition bauhaus.c:1300
void dt_bauhaus_slider_set_soft_range(GtkWidget *widget, float soft_min, float soft_max)
Definition bauhaus.c:1206
gboolean dt_bauhaus_combobox_set_from_text(GtkWidget *w, const char *text)
Definition bauhaus.c:1686
void dt_bauhaus_widget_set_quad_visibility(GtkWidget *w, const gboolean visible)
Definition bauhaus.c:1293
void dt_bauhaus_combobox_insert(GtkWidget *widget, const char *text, int pos)
Definition bauhaus.c:1534
void dt_bauhaus_widget_set_quad_paint(GtkWidget *w, dt_bauhaus_quad_paint_f f, int paint_flags, void *paint_data)
Definition bauhaus.c:1259
void dt_bauhaus_slider_set_step(GtkWidget *w, float val)
Definition bauhaus.c:2773
void dt_bauhaus_slider_clear_stops(GtkWidget *widget)
Definition bauhaus.c:1736
char * dt_bauhaus_slider_get_text(GtkWidget *w, float val)
Definition bauhaus.c:2722
void dt_bauhaus_combobox_set_selected_text_align(GtkWidget *widget, const dt_bauhaus_combobox_alignment_t text_align)
Definition bauhaus.c:1511
void dt_bauhaus_hide_popup(dt_bauhaus_t *bh)
Definition bauhaus.c:2429
void dt_bauhaus_slider_reset(GtkWidget *widget)
Definition bauhaus.c:2809
void dt_bauhaus_cleanup(dt_bauhaus_t *bauhaus)
Definition bauhaus.c:1059
void dt_bauhaus_slider_set_default(GtkWidget *widget, float def)
Definition bauhaus.c:1199
void dt_bauhaus_slider_set_stop(GtkWidget *widget, float stop, float r, float g, float b)
Definition bauhaus.c:1744
void dt_bauhaus_load_theme(dt_bauhaus_t *bauhaus)
Definition bauhaus.c:870
const char * dt_bauhaus_combobox_get_entry(GtkWidget *w, int pos)
Definition bauhaus.c:1590
void dt_bauhaus_slider_set_hard_max(GtkWidget *w, float val)
Definition bauhaus.c:1142
void dt_bauhaus_combobox_entry_set_sensitive(GtkWidget *widget, int pos, gboolean sensitive)
Definition bauhaus.c:1727
void dt_bauhaus_slider_set_digits(GtkWidget *w, int val)
Definition bauhaus.c:2759
float dt_bauhaus_slider_get_soft_max(GtkWidget *w)
Definition bauhaus.c:1192
int dt_bauhaus_combobox_get(GtkWidget *w)
Definition bauhaus.c:1720
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:1343
void dt_bauhaus_widget_set_field(GtkWidget *w, gpointer field, dt_introspection_type_t field_type)
Definition bauhaus.c:1267
void dt_bauhaus_widget_set_quad_active(GtkWidget *w, int active)
Definition bauhaus.c:1283
float dt_bauhaus_slider_get_hard_min(GtkWidget *w)
Definition bauhaus.c:1135
int dt_bauhaus_slider_get_digits(GtkWidget *w)
Definition bauhaus.c:2766
void dt_bauhaus_combobox_clear(GtkWidget *w)
Definition bauhaus.c:1581
void dt_bauhaus_slider_set_factor(GtkWidget *w, float factor)
Definition bauhaus.c:2832
void dt_bauhaus_slider_set_soft_max(GtkWidget *w, float val)
Definition bauhaus.c:1183
float dt_bauhaus_slider_get_soft_min(GtkWidget *w)
Definition bauhaus.c:1176
dt_bauhaus_type_t
Definition bauhaus.h:60
@ DT_BAUHAUS_COMBOBOX
Definition bauhaus.h:62
@ DT_BAUHAUS_SLIDER
Definition bauhaus.h:61
void dt_bauhaus_slider_set_soft_min(GtkWidget *w, float val)
Definition bauhaus.c:1167
void dt_bauhaus_slider_set_val(GtkWidget *w, float val)
Definition bauhaus.c:2753
void dt_bauhaus_combobox_set_entries_ellipsis(GtkWidget *widget, PangoEllipsizeMode ellipis)
Definition bauhaus.c:1485
#define DT_BAUHAUS_WIDGET_TYPE
Definition bauhaus.h:37
static void set_color(cairo_t *cr, GdkRGBA color)
Definition bauhaus.h:380
void dt_bauhaus_slider_set_feedback(GtkWidget *w, int feedback)
Definition bauhaus.c:2801
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:3163
int dt_bauhaus_combobox_length(GtkWidget *widget)
Definition bauhaus.c:1549
void dt_bauhaus_slider_set(GtkWidget *w, float pos)
Definition bauhaus.c:2731
void dt_bauhaus_slider_set_format(GtkWidget *w, const char *format)
Definition bauhaus.c:2819
float dt_bauhaus_slider_get_step(GtkWidget *w)
Definition bauhaus.c:2780
void dt_bauhaus_combobox_set_default(GtkWidget *widget, int def)
Definition bauhaus.c:1110
void dt_bauhaus_widget_set_quad_toggle(GtkWidget *w, int toggle)
Definition bauhaus.c:1277
gpointer dt_bauhaus_combobox_get_data(GtkWidget *widget)
Definition bauhaus.c:1572
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:1364
void dt_bauhaus_combobox_add_populate_fct(GtkWidget *widget, void(*fct)(GtkWidget *w, void *module))
Definition bauhaus.c:1451
void dt_bauhaus_combobox_add_list(GtkWidget *widget, const char **texts)
Definition bauhaus.c:1458
gboolean dt_bauhaus_combobox_set_from_value(GtkWidget *w, int value)
Definition bauhaus.c:1704
void dt_bauhaus_disable_accels(GtkWidget *widget)
Definition bauhaus.c:3157
void dt_bauhaus_slider_set_hard_min(GtkWidget *w, float val)
Definition bauhaus.c:1118
const char * dt_bauhaus_combobox_get_text(GtkWidget *w)
Definition bauhaus.c:1556
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:1253
void(* dt_bauhaus_quad_paint_f)(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
Definition bauhaus.h:141
int dt_bauhaus_combobox_get_editable(GtkWidget *w)
Definition bauhaus.c:1504
void dt_bauhaus_combobox_set_editable(GtkWidget *w, int editable)
Definition bauhaus.c:1494
void dt_bauhaus_slider_set_offset(GtkWidget *w, float offset)
Definition bauhaus.c:2839
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:1337
void dt_bauhaus_combobox_remove_at(GtkWidget *widget, int pos)
Definition bauhaus.c:1519
GtkWidget * dt_bauhaus_combobox_new(dt_bauhaus_t *bh, dt_gui_module_t *self)
Definition bauhaus.c:1400
@ DT_BAUHAUS_LAST_SIGNAL
Definition bauhaus.h:201
@ DT_BAUHAUS_QUAD_PRESSED_SIGNAL
Definition bauhaus.h:200
@ DT_BAUHAUS_VALUE_CHANGED_SIGNAL
Definition bauhaus.h:199
float dt_bauhaus_slider_get_val(GtkWidget *w)
Definition bauhaus.c:2716
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:1599
dt_bauhaus_curve_t
Definition bauhaus.h:67
@ DT_BAUHAUS_GET
Definition bauhaus.h:69
@ DT_BAUHAUS_SET
Definition bauhaus.h:68
void dt_bauhaus_combobox_set(GtkWidget *w, int pos)
Definition bauhaus.c:1680
void dt_bauhaus_combobox_add(GtkWidget *widget, const char *text)
Definition bauhaus.c:1464
dt_bauhaus_t * dt_bauhaus_init()
Definition bauhaus.c:941
void dt_bauhaus_combobox_add_aligned(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align)
Definition bauhaus.c:1469
void dt_bauhaus_combobox_from_widget(dt_bauhaus_t *bh, dt_bauhaus_widget_t *widget, dt_gui_module_t *self)
Definition bauhaus.c:1420
void dt_bauhaus_show_popup(GtkWidget *w)
Definition bauhaus.c:2445
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
@ DT_COLORLABELS_LAST
Definition colorlabels.h:17
static float f(const float t, const float c, const float x)
Definition graduatednd.c:173
dt_introspection_type_t
Definition introspection.h:35
dt_mipmap_buffer_dsc_flags flags
Definition mipmap_cache.c:4
const float factor
Definition pdf.h:85
int defpos
Definition bauhaus.h:118
int active
Definition bauhaus.h:116
PangoEllipsizeMode entries_ellipsis
Definition bauhaus.h:122
void(* populate)(GtkWidget *w, void *module)
Definition bauhaus.h:125
guint timeout_handle
Definition bauhaus.h:124
int editable
Definition bauhaus.h:119
int hovered
Definition bauhaus.h:117
dt_bauhaus_combobox_alignment_t text_align
Definition bauhaus.h:120
GPtrArray * entries
Definition bauhaus.h:123
char * text
Definition bauhaus.h:121
gboolean sensitive
Definition bauhaus.h:109
char * label
Definition bauhaus.h:107
void(* free_func)(gpointer)
Definition bauhaus.h:111
dt_bauhaus_combobox_alignment_t alignment
Definition bauhaus.h:108
gpointer data
Definition bauhaus.h:110
float soft_max
Definition bauhaus.h:80
float(* grad_col)[3]
Definition bauhaus.h:84
float hard_max
Definition bauhaus.h:81
float defpos
Definition bauhaus.h:78
int grad_cnt
Definition bauhaus.h:85
float factor
Definition bauhaus.h:91
float min
Definition bauhaus.h:79
gboolean is_dragging
Definition bauhaus.h:94
float oldpos
Definition bauhaus.h:76
float offset
Definition bauhaus.h:92
guint timeout_handle
Definition bauhaus.h:95
const char * format
Definition bauhaus.h:90
float * grad_pos
Definition bauhaus.h:86
float soft_min
Definition bauhaus.h:80
float hard_min
Definition bauhaus.h:81
float max
Definition bauhaus.h:79
int fill_feedback
Definition bauhaus.h:88
int digits
Definition bauhaus.h:82
float pos
Definition bauhaus.h:75
float step
Definition bauhaus.h:77
GdkRGBA graph_bg
Definition bauhaus.h:253
guint32 opentime
Definition bauhaus.h:227
float end_mouse_x
Definition bauhaus.h:229
float baseline_size
Definition bauhaus.h:244
GdkRGBA colorlabels[DT_COLORLABELS_LAST]
Definition bauhaus.h:255
void(* default_value_changed_callback)(GtkWidget *widget)
Definition bauhaus.h:259
GdkRGBA graph_overlay
Definition bauhaus.h:253
float mouse_line_distance
Definition bauhaus.h:232
GdkRGBA color_border
Definition bauhaus.h:250
GdkRGBA indicator_border
Definition bauhaus.h:250
GdkRGBA graph_border
Definition bauhaus.h:253
GdkRGBA graph_fg_active
Definition bauhaus.h:253
GdkRGBA graph_grid
Definition bauhaus.h:253
int keys_cnt
Definition bauhaus.h:235
PangoFontDescription * pango_font_desc
Definition bauhaus.h:247
GdkRGBA graph_exterior
Definition bauhaus.h:253
GdkRGBA color_fill
Definition bauhaus.h:250
gboolean hiding
Definition bauhaus.h:238
GtkWidget * popup_window
Definition bauhaus.h:219
GdkRGBA inset_histogram
Definition bauhaus.h:253
float quad_width
Definition bauhaus.h:246
float line_height
Definition bauhaus.h:242
float end_mouse_y
Definition bauhaus.h:229
float mouse_x
Definition bauhaus.h:223
char keys[64]
Definition bauhaus.h:234
float border_width
Definition bauhaus.h:245
GdkRGBA graph_fg
Definition bauhaus.h:253
GtkWidget * popup_area
Definition bauhaus.h:220
struct dt_bauhaus_widget_t * current
Definition bauhaus.h:218
GdkRGBA graph_colors[3]
Definition bauhaus.h:254
GdkRGBA color_fg
Definition bauhaus.h:250
int change_active
Definition bauhaus.h:231
GdkRGBA color_fg_insensitive
Definition bauhaus.h:250
float marker_size
Definition bauhaus.h:243
float mouse_y
Definition bauhaus.h:223
GdkRGBA color_bg
Definition bauhaus.h:250
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:25
dt_bauhaus_combobox_data_t combobox
Definition bauhaus.h:134
dt_bauhaus_slider_data_t slider
Definition bauhaus.h:133