34#define DT_GUI_IOP_MODULE_CONTROL_SPACING 0
38#define DT_PIXEL_APPLY_DPI(value) ((value) * darktable.gui->dpi_factor)
161 cairo_surface_t *cst = cairo_image_surface_create_for_data(data, format,
width,
height, stride);
167 cairo_surface_t *cst = cairo_image_surface_create_from_png(filename);
181 cairo_surface_t *cst = gdk_cairo_surface_create_from_pixbuf(pixbuf, scale, for_window);
266#define dt_accels_new_global_action(a, b, c, d, e, f, g) dt_accels_new_action_shortcut(darktable.gui->accels, a, b, darktable.gui->accels->global_accels, c, d, e, f, FALSE, g)
268#define dt_accels_new_darkroom_action(a, b, c, d, e, f, g) dt_accels_new_action_shortcut(darktable.gui->accels, a, b, darktable.gui->accels->darkroom_accels, c, d, e, f, FALSE, g)
270#define dt_accels_new_lighttable_action(a, b, c, d, e, f, g) dt_accels_new_action_shortcut(darktable.gui->accels, a, b, darktable.gui->accels->lighttable_accels, c, d, e, f, FALSE, g)
272#define dt_accels_new_darkroom_locked_action(a, b, c, d, e, f, g) dt_accels_new_action_shortcut(darktable.gui->accels, a, b, darktable.gui->accels->darkroom_accels, c, d, e, f, TRUE, g)
277 gtk_widget_set_halign(label, GTK_ALIGN_FILL);
278 gtk_label_set_xalign (GTK_LABEL(label), 0.5f);
279 gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END);
285 gchar *str_cpy = g_strdup(str);
287 GtkWidget *label = gtk_label_new(str_cpy);
295 gchar *str_cpy = g_strdup(str);
297 GtkWidget *label = gtk_label_new(str_cpy);
299 gtk_widget_set_halign(label, GTK_ALIGN_START);
300 gtk_label_set_xalign (GTK_LABEL(label), 0.0f);
301 gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END);
312 const char *yes_text);
316 const char *no_text,
const char *yes_text);
349void dt_gui_menu_popup(GtkMenu *menu, GtkWidget *button, GdkGravity widget_anchor, GdkGravity menu_anchor);
361 const char *confname,
const char *label,
377GtkBox *
attach_popover(GtkWidget *widget,
const char *icon, GtkWidget *content);
406 if(!widget)
return NULL;
407 GtkWidget *toplevel = gtk_widget_get_toplevel(widget);
408 if(toplevel && gtk_widget_is_toplevel(toplevel))
return GTK_WINDOW(toplevel);
Handle default and user-set shortcuts (accelerators)
static void error(char *msg)
Definition ashift_lsd.c:191
uint32_t container(dt_lib_module_t *self)
Definition backgroundjobs.c:61
int width
Definition bilateral.h:1
int height
Definition bilateral.h:1
const char * tooltip
Definition common/image.h:163
darktable_t darktable
Definition darktable.c:111
#define PATH_MAX
Definition darktable.h:824
GtkWidget * dt_ui_toast_msg(dt_ui_t *ui)
get the toast message widget
Definition window_manager.c:94
gboolean dt_gui_get_scroll_deltas(const GdkEventScroll *event, gdouble *delta_x, gdouble *delta_y)
Definition gtk.c:97
GtkWidget * dt_ui_center(dt_ui_t *ui)
get the center drawable widget
Definition window_manager.c:81
void dt_gui_gtk_set_source_rgb(cairo_t *cr, dt_gui_color_t)
Definition gtk.c:306
GtkBox * attach_help_popover(GtkWidget *widget, const char *label)
Definition gtk.c:1806
void dt_gui_menu_popup(GtkMenu *menu, GtkWidget *button, GdkGravity widget_anchor, GdkGravity menu_anchor)
Definition gtk.c:1601
void dt_ui_container_foreach(dt_ui_t *ui, const dt_ui_container_t c, GtkCallback callback)
calls a callback on all children widgets from container
Definition gtk.c:885
gboolean dt_gui_get_scroll_delta(const GdkEventScroll *event, gdouble *delta)
Definition gtk.c:240
void dt_gui_container_remove_children(GtkContainer *container)
Definition gtk.c:1583
gboolean dt_gui_get_scroll_unit_deltas(const GdkEventScroll *event, int *delta_x, int *delta_y)
Definition gtk.c:157
static cairo_surface_t * dt_cairo_image_surface_create_from_png(const char *filename)
Definition gtk.h:166
gboolean dt_gui_get_scroll_unit_delta(const GdkEventScroll *event, int *delta)
Definition gtk.c:251
void dt_gui_search_stop(GtkSearchEntry *entry, GtkWidget *widget)
Definition gtk.c:1650
void dt_gui_new_collapsible_section(dt_gui_collapsible_section_t *cs, const char *confname, const char *label, GtkBox *parent)
Definition gtk.c:1725
void dt_gui_hide_collapsible_section(dt_gui_collapsible_section_t *cs)
Definition gtk.c:1718
void dt_gui_remove_class(GtkWidget *widget, const gchar *class_name)
Definition gtk.c:82
dt_gui_color_t
Definition gtk.h:52
@ DT_GUI_COLOR_BG
Definition gtk.h:53
@ DT_GUI_COLOR_DARKROOM_PREVIEW_BG
Definition gtk.h:55
@ DT_GUI_COLOR_LIGHTTABLE_FONT
Definition gtk.h:58
@ DT_GUI_COLOR_MAP_LOC_SHAPE_HIGH
Definition gtk.h:81
@ DT_GUI_COLOR_LOG_FG
Definition gtk.h:77
@ DT_GUI_COLOR_BRUSH_CURSOR
Definition gtk.h:60
@ DT_GUI_COLOR_LAST
Definition gtk.h:84
@ DT_GUI_COLOR_THUMBNAIL_FONT
Definition gtk.h:69
@ DT_GUI_COLOR_THUMBNAIL_SELECTED_BG
Definition gtk.h:64
@ DT_GUI_COLOR_MAP_COUNT_BG
Definition gtk.h:80
@ DT_GUI_COLOR_LOG_BG
Definition gtk.h:76
@ DT_GUI_COLOR_THUMBNAIL_SELECTED_BORDER
Definition gtk.h:73
@ DT_GUI_COLOR_THUMBNAIL_OUTLINE
Definition gtk.h:66
@ DT_GUI_COLOR_MAP_LOC_SHAPE_LOW
Definition gtk.h:82
@ DT_GUI_COLOR_LIGHTTABLE_BG
Definition gtk.h:56
@ DT_GUI_COLOR_BUTTON_FG
Definition gtk.h:62
@ DT_GUI_COLOR_DARKROOM_BG
Definition gtk.h:54
@ DT_GUI_COLOR_THUMBNAIL_BORDER
Definition gtk.h:72
@ DT_GUI_COLOR_LIGHTTABLE_PREVIEW_BG
Definition gtk.h:57
@ DT_GUI_COLOR_MAP_COUNT_SAME_LOC
Definition gtk.h:78
@ DT_GUI_COLOR_MAP_COUNT_DIFF_LOC
Definition gtk.h:79
@ DT_GUI_COLOR_THUMBNAIL_BG
Definition gtk.h:63
@ DT_GUI_COLOR_PREVIEW_HOVER_BORDER
Definition gtk.h:75
@ DT_GUI_COLOR_FILMSTRIP_BG
Definition gtk.h:74
@ DT_GUI_COLOR_BRUSH_TRACE
Definition gtk.h:61
@ DT_GUI_COLOR_THUMBNAIL_SELECTED_FONT
Definition gtk.h:70
@ DT_GUI_COLOR_THUMBNAIL_SELECTED_OUTLINE
Definition gtk.h:67
@ DT_GUI_COLOR_THUMBNAIL_HOVER_BG
Definition gtk.h:65
@ DT_GUI_COLOR_PRINT_BG
Definition gtk.h:59
@ DT_GUI_COLOR_MAP_LOC_SHAPE_DEF
Definition gtk.h:83
@ DT_GUI_COLOR_THUMBNAIL_HOVER_FONT
Definition gtk.h:71
@ DT_GUI_COLOR_THUMBNAIL_HOVER_OUTLINE
Definition gtk.h:68
struct _gui_collapsible_section_t dt_gui_collapsible_section_t
GtkWidget * dt_ui_notebook_page(GtkNotebook *notebook, const char *text, const char *tooltip)
Definition gtk.c:1391
GtkNotebook * dt_ui_notebook_new()
Definition gtk.c:1386
static GtkWindow * dt_gtk_get_window(GtkWidget *widget)
Definition gtk.h:404
static GdkPixbuf * dt_gdk_pixbuf_new_from_file_at_size(const char *filename, int width, int height, GError **error)
Definition gtk.h:186
void dt_gui_add_help_link(GtkWidget *widget, const char *link)
Definition gtk.c:1158
static cairo_surface_t * dt_cairo_image_surface_create(cairo_format_t format, int width, int height)
Definition gtk.h:154
void dt_ui_container_destroy_children(dt_ui_t *ui, const dt_ui_container_t c)
destroy all child widgets from container
Definition gtk.c:891
char * dt_gui_show_standalone_string_dialog(const char *title, const char *markup, const char *placeholder, const char *no_text, const char *yes_text)
Definition gtk.c:1074
int dt_gui_container_num_children(GtkContainer *container)
Definition gtk.c:1551
int dt_ui_panel_get_size(dt_ui_t *ui, const dt_ui_panel_t p)
get width of right, left, or bottom panel
Definition window_manager.c:49
void dt_gui_draw_rounded_rectangle(cairo_t *cr, float width, float height, float x, float y)
Definition gtk.c:1626
GtkWidget * dt_gui_container_nth_child(GtkContainer *container, int which)
Definition gtk.c:1569
static cairo_surface_t * dt_gdk_cairo_surface_create_from_pixbuf(const GdkPixbuf *pixbuf, int scale, GdkWindow *for_window)
Definition gtk.h:180
gboolean dt_ui_panel_visible(dt_ui_t *ui, const dt_ui_panel_t)
get visible state of panel
Definition display.c:174
void dt_gui_update_collapsible_section(dt_gui_collapsible_section_t *cs)
Definition gtk.c:1703
gboolean dt_ui_panel_ancestor(dt_ui_t *ui, const dt_ui_panel_t p, GtkWidget *w)
is the panel ancestor of widget
Definition window_manager.c:75
void dt_gui_load_theme(const char *theme)
Definition gtk.c:1165
void dt_capitalize_label(gchar *text)
Definition gtk.c:1763
int dt_gui_gtk_write_config()
Definition gtk.c:291
void dt_gui_store_last_preset(const char *name)
Definition gtk.c:340
void dt_ellipsize_combo(GtkComboBox *cbox)
Definition gtk.c:956
GdkModifierType dt_key_modifier_state()
Definition gtk.c:1318
void dt_configure_ppd_dpi(dt_gui_gtk_t *gui)
Definition gtk.c:719
void dt_gui_gtk_quit()
Definition gtk.c:318
void dt_ui_toggle_panels_visibility(dt_ui_t *ui)
toggle view of panels eg. collapse/expands to previous view state
Definition display.c:87
gboolean dt_gui_search_start(GtkWidget *widget, GdkEventKey *event, GtkSearchEntry *entry)
Definition gtk.c:1639
double dt_get_system_gui_ppd(GtkWidget *widget)
Definition gtk.c:702
void dt_gui_container_destroy_children(GtkContainer *container)
Definition gtk.c:1595
GtkWidget * dt_ui_log_msg(dt_ui_t *ui)
get the log message widget
Definition window_manager.c:90
void dt_ui_notify_user()
draw user's attention
Definition gtk.c:896
gboolean dt_gui_show_standalone_yes_no_dialog(const char *title, const char *markup, const char *no_text, const char *yes_text)
Definition gtk.c:989
void dt_ui_panel_show(dt_ui_t *ui, const dt_ui_panel_t, gboolean show, gboolean write)
shows/hide a panel
Definition display.c:99
int dt_gui_gtk_init(dt_gui_gtk_t *gui)
Definition gtk.c:511
GtkWidget * dt_ui_main_window(dt_ui_t *ui)
get the main window widget
Definition window_manager.c:99
static GtkWidget * dt_ui_section_label_new(const gchar *str)
Definition gtk.h:283
gboolean dt_gui_container_has_children(GtkContainer *container)
Definition gtk.c:1542
static int dt_cairo_image_surface_get_width(cairo_surface_t *surface)
Definition gtk.h:172
void dt_gui_refocus_center()
Definition gtk.c:1846
void dt_gui_gtk_set_source_rgba(cairo_t *cr, dt_gui_color_t, float opacity_coef)
Definition gtk.c:312
GtkWidget * dt_ui_scroll_wrap(GtkWidget *w, gint min_size, char *config_str)
Definition gtk.c:1530
static cairo_surface_t * dt_cairo_image_surface_create_for_data(unsigned char *data, cairo_format_t format, int width, int height, int stride)
Definition gtk.h:160
GtkBox * attach_popover(GtkWidget *widget, const char *icon, GtkWidget *content)
Definition gtk.c:1777
static void dt_ui_section_label_set(GtkWidget *label)
Definition gtk.h:275
void dt_gui_gtk_run(dt_gui_gtk_t *gui)
Definition gtk.c:668
GtkWidget * dt_gui_container_first_child(GtkContainer *container)
Definition gtk.c:1560
GtkWidget * dt_ui_center_base(dt_ui_t *ui)
Definition window_manager.c:85
void dt_accels_disconnect_on_text_input(GtkWidget *widget)
Disconnects accels when a text or search entry gets the focus, and reconnects them when it looses it....
Definition gtk.c:1837
void dt_gui_add_class(GtkWidget *widget, const gchar *class_name)
Definition gtk.c:72
static GtkWidget * dt_ui_label_new(const gchar *str)
Definition gtk.h:293
static int dt_cairo_image_surface_get_height(cairo_surface_t *surface)
Definition gtk.h:176
void dt_ui_container_focus_widget(dt_ui_t *ui, const dt_ui_container_t c, GtkWidget *w)
gives a widget focus in the container
Definition gtk.c:875
GtkBox * dt_ui_get_container(dt_ui_t *ui, const dt_ui_container_t c)
Definition window_manager.c:104
gchar * confname
Definition gtk.h:147
GtkBox * container
Definition gtk.h:150
GtkWidget * toggle
Definition gtk.h:148
GtkWidget * expander
Definition gtk.h:149
GtkBox * parent
Definition gtk.h:146
GtkWidget * label
Definition gtk.h:151
struct dt_gui_gtk_t * gui
Definition darktable.h:541
Definition accelerators.h:87
double dpi
Definition gtk.h:117
double ppd
Definition gtk.h:117
gint scroll_mask
Definition gtk.h:126
double overlay_contrast
Definition gtk.h:115
int32_t center_tooltip
Definition gtk.h:101
cairo_surface_t * surface
Definition gtk.h:94
int32_t reset
Definition gtk.h:98
dt_accels_t * accels
Definition gtk.h:111
double overlay_red
Definition gtk.h:115
GtkMenu * presets_popup_menu
Definition gtk.h:95
struct dt_gui_gtk_t::@40 export_popup
GtkWidget * has_scroll_focus
Definition gtk.h:130
double overlay_green
Definition gtk.h:115
double dpi_factor
Definition gtk.h:117
dt_ui_t * ui
Definition gtk.h:90
GtkWidget * scroll_to[2]
Definition gtk.h:124
double overlay_blue
Definition gtk.h:115
dt_pthread_mutex_t mutex
Definition gtk.h:141
gboolean culling_mode
Definition gtk.h:104
int icon_size
Definition gtk.h:119
cairo_filter_t dr_filter_image
Definition gtk.h:133
gboolean selection_stacked
Definition gtk.h:108
char gtkrc[PATH_MAX]
Definition gtk.h:122
GtkWidget * window
Definition gtk.h:137
cairo_filter_t filter_image
Definition gtk.h:132
char * last_preset
Definition gtk.h:96
dt_gui_widgets_t widgets
Definition gtk.h:92
GList * input_devices
Definition gtk.h:113
GdkRGBA colors[DT_GUI_COLOR_LAST]
Definition gtk.h:99
Definition window_manager.h:66
A widget to manage and display image thumbnails in Ansel's lighttable and filmstrip views.
dt_ui_container_t
Definition window_manager.h:31
dt_ui_panel_t
Definition window_manager.h:17