diff --git a/src/bauhaus/bauhaus.c b/src/bauhaus/bauhaus.c index 26b771884b78..c69716b95479 100644 --- a/src/bauhaus/bauhaus.c +++ b/src/bauhaus/bauhaus.c @@ -673,7 +673,6 @@ static gboolean _popup_button_release(GtkWidget *widget, return TRUE; } - static gboolean _popup_button_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data) @@ -715,10 +714,10 @@ static gboolean _popup_button_press(GtkWidget *widget, return TRUE; } -static void _window_show(GtkWidget *w, gpointer user_data) +static void _window_show(GtkWidget *w, GtkWidget *area) { // make sure combo popup handles button release - gtk_grab_add(GTK_WIDGET(user_data)); + gtk_grab_add(area); } static void _widget_leave(GtkEventControllerMotion *controller, @@ -892,20 +891,17 @@ void dt_bauhaus_init() | GDK_KEY_PRESS_MASK | GDK_LEAVE_NOTIFY_MASK | darktable.gui->scroll_mask); - GObject *window = G_OBJECT(pop->window); - GObject *area = G_OBJECT(pop->area); - gtk_widget_realize(pop->window); g_signal_connect(gtk_widget_get_window(pop->window), "moved-to-rect", G_CALLBACK(_window_moved_to_rect), NULL); - g_signal_connect(window, "show", G_CALLBACK(_window_show), area); - g_signal_connect(window, "motion-notify-event", G_CALLBACK(_window_motion_notify), NULL); - g_signal_connect(area, "draw", G_CALLBACK(_popup_draw), NULL); - g_signal_connect(area, "leave-notify-event", G_CALLBACK(_popup_leave_notify), NULL); - g_signal_connect(area, "button-press-event", G_CALLBACK(_popup_button_press), NULL); - g_signal_connect(area, "button-release-event", G_CALLBACK (_popup_button_release), NULL); - g_signal_connect(area, "key-press-event", G_CALLBACK(_popup_key_press), NULL); - g_signal_connect(area, "scroll-event", G_CALLBACK(_popup_scroll), NULL); + g_signal_connect(pop->window, "show", G_CALLBACK(_window_show), pop->area); + g_signal_connect(pop->window, "motion-notify-event", G_CALLBACK(_window_motion_notify), NULL); + g_signal_connect(pop->area, "draw", G_CALLBACK(_popup_draw), NULL); + g_signal_connect(pop->area, "leave-notify-event", G_CALLBACK(_popup_leave_notify), NULL); + g_signal_connect(pop->area, "button-press-event", G_CALLBACK(_popup_button_press), NULL); + g_signal_connect(pop->area, "button-release-event", G_CALLBACK (_popup_button_release), NULL); + g_signal_connect(pop->area, "key-press-event", G_CALLBACK(_popup_key_press), NULL); + g_signal_connect(pop->area, "scroll-event", G_CALLBACK(_popup_scroll), NULL); dt_action_define(&darktable.control->actions_focus, NULL, N_("sliders"), NULL, &_action_def_focus_slider); diff --git a/src/bauhaus/bauhaus.h b/src/bauhaus/bauhaus.h index f941b9fb9c03..517f0595365f 100644 --- a/src/bauhaus/bauhaus.h +++ b/src/bauhaus/bauhaus.h @@ -212,7 +212,7 @@ static inline void dt_bauhaus_widget_set_quad(GtkWidget *widget, { dt_bauhaus_widget_set_quad_paint(widget, paint, 0, NULL); dt_bauhaus_widget_set_quad_toggle(widget, toggle); - g_signal_connect(G_OBJECT(widget), "quad-pressed", G_CALLBACK(callback), self); + g_signal_connect(widget, "quad-pressed", G_CALLBACK(callback), self); if(tooltip) dt_bauhaus_widget_set_quad_tooltip(widget, tooltip); } // get the tooltip for widget or quad button: diff --git a/src/common/camera_control.c b/src/common/camera_control.c index f89ccb46e7b1..66262710a899 100644 --- a/src/common/camera_control.c +++ b/src/common/camera_control.c @@ -1677,7 +1677,7 @@ static void _camera_build_property_menu(CameraWidget *widget, /* construct menu item for property */ gp_widget_get_name(child, &sk); GtkMenuItem *item = GTK_MENU_ITEM(gtk_menu_item_new_with_label(sk)); - g_signal_connect(G_OBJECT(item), "activate", item_activate, user_data); + g_signal_connect(item, "activate", G_CALLBACK((void(*)(GtkMenuItem*,gpointer))item_activate), user_data); /* add submenu item to menu */ gtk_menu_shell_append(GTK_MENU_SHELL(menu), GTK_WIDGET(item)); } diff --git a/src/control/crawler.c b/src/control/crawler.c index f5bec053640a..8cb07b33243f 100644 --- a/src/control/crawler.c +++ b/src/control/crawler.c @@ -348,25 +348,24 @@ static void _delete_selected_rows(dt_control_crawler_gui_t *gui) static void _select_all_callback(GtkButton *button, - gpointer user_data) + dt_control_crawler_gui_t *gui) { - dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data; GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree); gtk_tree_selection_select_all(selection); } -static void _select_none_callback(GtkButton *button, gpointer user_data) +static void _select_none_callback(GtkButton *button, + dt_control_crawler_gui_t *gui) { - dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data; GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree); gtk_tree_selection_unselect_all(selection); } -static void _select_invert_callback(GtkButton *button, gpointer user_data) +static void _select_invert_callback(GtkButton *button, + dt_control_crawler_gui_t *gui) { - dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data; GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree); GtkTreeIter iter; @@ -634,9 +633,8 @@ static void sync_oldest_to_newest(GtkTreeModel *model, } // overwrite database with xmp -static void _reload_button_clicked(GtkButton *button, gpointer user_data) +static void _reload_button_clicked(GtkButton *button, dt_control_crawler_gui_t *gui) { - dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data; GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree); gui->rows_to_remove = NULL; gtk_spinner_start(GTK_SPINNER(gui->spinner)); @@ -646,9 +644,8 @@ static void _reload_button_clicked(GtkButton *button, gpointer user_data) } // overwrite xmp with database -void _overwrite_button_clicked(GtkButton *button, gpointer user_data) +void _overwrite_button_clicked(GtkButton *button, dt_control_crawler_gui_t *gui) { - dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data; GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree); gui->rows_to_remove = NULL; gtk_spinner_start(GTK_SPINNER(gui->spinner)); @@ -658,9 +655,8 @@ void _overwrite_button_clicked(GtkButton *button, gpointer user_data) } // overwrite the oldest with the newest -static void _newest_button_clicked(GtkButton *button, gpointer user_data) +static void _newest_button_clicked(GtkButton *button, dt_control_crawler_gui_t *gui) { - dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data; GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree); gui->rows_to_remove = NULL; gtk_spinner_start(GTK_SPINNER(gui->spinner)); @@ -670,9 +666,8 @@ static void _newest_button_clicked(GtkButton *button, gpointer user_data) } // overwrite the newest with the oldest -static void _oldest_button_clicked(GtkButton *button, gpointer user_data) +static void _oldest_button_clicked(GtkButton *button, dt_control_crawler_gui_t *gui) { - dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data; GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree); gui->rows_to_remove = NULL; gtk_spinner_start(GTK_SPINNER(gui->spinner)); @@ -810,19 +805,19 @@ void dt_control_crawler_show_image_list(GList *images) GtkWidget *select_all = gtk_button_new_with_label(_("select all")); GtkWidget *select_none = gtk_button_new_with_label(_("select none")); GtkWidget *select_invert = gtk_button_new_with_label(_("invert selection")); - g_signal_connect(select_all, "clicked", G_CALLBACK(_select_all_callback), gui); - g_signal_connect(select_none, "clicked", G_CALLBACK(_select_none_callback), gui); - g_signal_connect(select_invert, "clicked", G_CALLBACK(_select_invert_callback), gui); + g_signal_connect(GTK_BUTTON(select_all), "clicked", G_CALLBACK(_select_all_callback), gui); + g_signal_connect(GTK_BUTTON(select_none), "clicked", G_CALLBACK(_select_none_callback), gui); + g_signal_connect(GTK_BUTTON(select_invert), "clicked", G_CALLBACK(_select_invert_callback), gui); GtkWidget *label = gtk_label_new_with_mnemonic(_("on the selection:")); GtkWidget *reload_button = gtk_button_new_with_label(_("keep the XMP edit")); GtkWidget *overwrite_button = gtk_button_new_with_label(_("keep the database edit")); GtkWidget *newest_button = gtk_button_new_with_label(_("keep the newest edit")); GtkWidget *oldest_button = gtk_button_new_with_label(_("keep the oldest edit")); - g_signal_connect(reload_button, "clicked", G_CALLBACK(_reload_button_clicked), gui); - g_signal_connect(overwrite_button, "clicked", G_CALLBACK(_overwrite_button_clicked), gui); - g_signal_connect(newest_button, "clicked", G_CALLBACK(_newest_button_clicked), gui); - g_signal_connect(oldest_button, "clicked", G_CALLBACK(_oldest_button_clicked), gui); + g_signal_connect(GTK_BUTTON(reload_button), "clicked", G_CALLBACK(_reload_button_clicked), gui); + g_signal_connect(GTK_BUTTON(overwrite_button), "clicked", G_CALLBACK(_overwrite_button_clicked), gui); + g_signal_connect(GTK_BUTTON(newest_button), "clicked", G_CALLBACK(_newest_button_clicked), gui); + g_signal_connect(GTK_BUTTON(oldest_button), "clicked", G_CALLBACK(_oldest_button_clicked), gui); /* Feedback spinner in case synch happens over network and stales */ gui->spinner = gtk_spinner_new(); diff --git a/src/control/signal.c b/src/control/signal.c index b2595d4c0736..e6f91b041a25 100644 --- a/src/control/signal.c +++ b/src/control/signal.c @@ -93,6 +93,7 @@ static void _image_geotag_destroy_callback(gpointer instance, gpointer imgs, con imgs = NULL; } } +#define G_CALLBACK(f) ((GCallback) (f)) static dt_signal_description _signal_description[DT_SIGNAL_COUNT] = { /* Global signals */ @@ -241,7 +242,7 @@ dt_control_signal_t *dt_control_signal_init() _signal_description[k].n_params, _signal_description[k].param_types); if(_signal_description[k].destructor) { - g_signal_connect_after(G_OBJECT(ctlsig->sink), _signal_description[k].name, + g_signal_connect_after(ctlsig->sink, _signal_description[k].name, _signal_description[k].destructor, NULL); } } @@ -394,7 +395,7 @@ void dt_control_signal_connect(const dt_control_signal_t *ctlsig, dt_signal_t si { _print_trace(signal, DT_DEBUG_SIGNAL_ACT_CONNECT, "connect"); - g_signal_connect(G_OBJECT(ctlsig->sink), _signal_description[signal].name, G_CALLBACK(cb), user_data); + g_signal_connect_data(ctlsig->sink, _signal_description[signal].name, G_CALLBACK(cb), user_data, NULL, 0); } void dt_control_signal_disconnect(const struct dt_control_signal_t *ctlsig, GCallback cb, gpointer user_data) diff --git a/src/develop/blend.h b/src/develop/blend.h index 4579f20d822a..65180f5fde5d 100644 --- a/src/develop/blend.h +++ b/src/develop/blend.h @@ -260,7 +260,7 @@ typedef struct dt_iop_gui_blendif_channel_t dt_develop_blendif_channels_t param_channels[2]; dt_dev_pixelpipe_display_mask_t display_channel; void (*scale_print)(float value, float boost_factor, char *string, int n); - int (*altdisplay)(GtkWidget *, dt_iop_module_t *, int); + int (*altdisplay)(GtkDarktableGradientSlider *, dt_iop_module_t *, int); char *name; } dt_iop_gui_blendif_channel_t; diff --git a/src/develop/blend_gui.c b/src/develop/blend_gui.c index 6394bd0fc427..fcc7c1e2af23 100644 --- a/src/develop/blend_gui.c +++ b/src/develop/blend_gui.c @@ -999,14 +999,13 @@ static float _magnifier_scale_callback(GtkWidget *self, return outval; } -static int _blendop_blendif_disp_alternative_worker(GtkWidget *widget, +static int _blendop_blendif_disp_alternative_worker(GtkDarktableGradientSlider *slider, dt_iop_module_t *module, const int mode, float (*scale_callback)(GtkWidget*, float, int), const char *label) { dt_iop_gui_blend_data_t *data = module->blend_data; - GtkDarktableGradientSlider *slider = (GtkDarktableGradientSlider *)widget; const int in_out = (slider == data->filter[1].slider) ? 1 : 0; @@ -1024,7 +1023,7 @@ static int _blendop_blendif_disp_alternative_worker(GtkWidget *widget, } -static int _blendop_blendif_disp_alternative_mag(GtkWidget *widget, +static int _blendop_blendif_disp_alternative_mag(GtkDarktableGradientSlider *widget, dt_iop_module_t *module, const int mode) { @@ -1032,7 +1031,7 @@ static int _blendop_blendif_disp_alternative_mag(GtkWidget *widget, (widget, module, mode, _magnifier_scale_callback, _(" (zoom)")); } -static int _blendop_blendif_disp_alternative_log(GtkWidget *widget, +static int _blendop_blendif_disp_alternative_log(GtkDarktableGradientSlider *widget, dt_iop_module_t *module, const int mode) { @@ -1040,7 +1039,7 @@ static int _blendop_blendif_disp_alternative_log(GtkWidget *widget, (widget, module, mode, _log10_scale_callback, _(" (log)")); } -static void _blendop_blendif_disp_alternative_reset(GtkWidget *widget, +static void _blendop_blendif_disp_alternative_reset(GtkDarktableGradientSlider *widget, dt_iop_module_t *module) { (void) _blendop_blendif_disp_alternative_worker(widget, module, 0, NULL, ""); @@ -1226,11 +1225,11 @@ static void _blendop_blendif_update_tab(dt_iop_module_t *module, if(channel->altdisplay) { data->altmode[tab][in_out] = - channel->altdisplay(GTK_WIDGET(sl->slider), module, data->altmode[tab][in_out]); + channel->altdisplay(sl->slider, module, data->altmode[tab][in_out]); } else { - _blendop_blendif_disp_alternative_reset(GTK_WIDGET(sl->slider), module); + _blendop_blendif_disp_alternative_reset(sl->slider, module); } } @@ -1963,7 +1962,7 @@ static gboolean _blendif_change_blend_colorspace(dt_iop_module_t *module, return FALSE; } -static void _blendif_select_colorspace(GtkMenuItem *menuitem, +static void _blendif_select_colorspace(GtkWidget *menuitem, dt_iop_module_t *module) { const dt_develop_blend_colorspace_t cst = @@ -1974,7 +1973,7 @@ static void _blendif_select_colorspace(GtkMenuItem *menuitem, } } -static void _blendif_show_output_channels(GtkMenuItem *menuitem, +static void _blendif_show_output_channels(GtkWidget *menuitem, dt_iop_module_t *module) { dt_iop_gui_blend_data_t *bd = module->blend_data; @@ -1986,7 +1985,7 @@ static void _blendif_show_output_channels(GtkMenuItem *menuitem, } } -static void _blendif_hide_output_channels(GtkMenuItem *menuitem, +static void _blendif_hide_output_channels(GtkWidget *menuitem, dt_iop_module_t *module) { dt_iop_gui_blend_data_t *bd = module->blend_data; @@ -2006,20 +2005,20 @@ static void _blendif_hide_output_channels(GtkMenuItem *menuitem, } } -static void _blendif_options_callback(GtkButton *button, - GdkEventButton *event, - dt_iop_module_t *module) +static gboolean _blendif_options_callback(GtkButton *button, + GdkEventButton *event, + dt_iop_module_t *module) { if(event->button != 1 && event->button != 2) - return; + return FALSE; const dt_iop_gui_blend_data_t *bd = module->blend_data; if(!bd || !bd->blendif_support || !bd->blendif_inited) - return; + return FALSE; GtkWidget *mi; GtkMenu *menu = GTK_MENU(gtk_menu_new()); @@ -2038,7 +2037,7 @@ static void _blendif_options_callback(GtkButton *button, mi = gtk_menu_item_new_with_label(_("reset to default blend colorspace")); g_object_set_data_full(G_OBJECT(mi), "dt-blend-cst", GINT_TO_POINTER(DEVELOP_BLEND_CS_NONE), NULL); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_blendif_select_colorspace), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); @@ -2056,7 +2055,7 @@ static void _blendif_options_callback(GtkButton *button, } g_object_set_data_full(G_OBJECT(mi), "dt-blend-cst", GINT_TO_POINTER(DEVELOP_BLEND_CS_LAB), NULL); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_blendif_select_colorspace), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } @@ -2070,7 +2069,7 @@ static void _blendif_options_callback(GtkButton *button, } g_object_set_data_full(G_OBJECT(mi), "dt-blend-cst", GINT_TO_POINTER(DEVELOP_BLEND_CS_RGB_DISPLAY), NULL); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_blendif_select_colorspace), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); @@ -2083,7 +2082,7 @@ static void _blendif_options_callback(GtkButton *button, } g_object_set_data_full(G_OBJECT(mi), "dt-blend-cst", GINT_TO_POINTER(DEVELOP_BLEND_CS_RGB_SCENE), NULL); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_blendif_select_colorspace), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); @@ -2092,14 +2091,14 @@ static void _blendif_options_callback(GtkButton *button, if(bd->output_channels_shown) { mi = gtk_menu_item_new_with_label(_("reset and hide output channels")); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_blendif_hide_output_channels), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } else { mi = gtk_menu_item_new_with_label(_("show output channels")); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_blendif_show_output_channels), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } @@ -2109,10 +2108,12 @@ static void _blendif_options_callback(GtkButton *button, GTK_WIDGET(button), GDK_GRAVITY_SOUTH_EAST, GDK_GRAVITY_NORTH_EAST); dtgtk_button_set_active(DTGTK_BUTTON(button), FALSE); + + return TRUE; } // activate channel/mask view -static void _blendop_blendif_channel_mask_view(GtkWidget *widget, +static void _blendop_blendif_channel_mask_view(GtkDarktableGradientSlider *widget, dt_iop_module_t *module, const dt_dev_pixelpipe_display_mask_t mode) { @@ -2126,7 +2127,7 @@ static void _blendop_blendif_channel_mask_view(GtkWidget *widget, { dt_dev_pixelpipe_display_mask_t channel = data->channel[data->tab].display_channel; - if(widget == GTK_WIDGET(data->filter[1].slider)) + if(widget == data->filter[1].slider) channel |= DT_DEV_PIXELPIPE_DISPLAY_OUTPUT; new_request_mask_display &= ~DT_DEV_PIXELPIPE_DISPLAY_ANY; @@ -2143,7 +2144,7 @@ static void _blendop_blendif_channel_mask_view(GtkWidget *widget, // toggle channel/mask view static void _blendop_blendif_channel_mask_view_toggle - (GtkWidget *widget, + (GtkDarktableGradientSlider *widget, dt_iop_module_t *module, const dt_dev_pixelpipe_display_mask_t mode) { @@ -2172,7 +2173,7 @@ static void _blendop_blendif_channel_mask_view_toggle { dt_dev_pixelpipe_display_mask_t channel = data->channel[data->tab].display_channel; - if(widget == GTK_WIDGET(data->filter[1].slider)) + if(widget == data->filter[1].slider) channel |= DT_DEV_PIXELPIPE_DISPLAY_OUTPUT; new_request_mask_display &= ~DT_DEV_PIXELPIPE_DISPLAY_ANY; @@ -2190,7 +2191,7 @@ static void _blendop_blendif_channel_mask_view_toggle // magic mode: if mouse cursor enters a gradient slider with shift // and/or control pressed we enter channel display and/or mask display // mode -static gboolean _blendop_blendif_enter(GtkWidget *widget, +static gboolean _blendop_blendif_enter(GtkDarktableGradientSlider *widget, GdkEventCrossing *event, dt_iop_module_t *module) { @@ -2232,7 +2233,7 @@ static gboolean _blendop_blendif_enter(GtkWidget *widget, _blendop_blendif_channel_mask_view(widget, module, mode); - gtk_widget_grab_focus(widget); + gtk_widget_grab_focus(GTK_WIDGET(widget)); return FALSE; } @@ -2263,7 +2264,7 @@ static gboolean _blendop_blendif_leave_delayed(gpointer data) } // de-activate magic mode when leaving the gradient slider -static gboolean _blendop_blendif_leave(GtkWidget *widget, +static gboolean _blendop_blendif_leave(GtkDarktableGradientSlider *widget, GdkEventCrossing *event, dt_iop_module_t *module) { @@ -2286,7 +2287,7 @@ static gboolean _blendop_blendif_leave(GtkWidget *widget, } -static gboolean _blendop_blendif_key_press(GtkWidget *widget, +static gboolean _blendop_blendif_key_press(GtkDarktableGradientSlider *widget, GdkEventKey *event, dt_iop_module_t *module) { @@ -2296,7 +2297,7 @@ static gboolean _blendop_blendif_key_press(GtkWidget *widget, gboolean handled = FALSE; const int tab = data->tab; - const int in_out = (widget == GTK_WIDGET(data->filter[1].slider)) ? 1 : 0; + const int in_out = (widget == data->filter[1].slider) ? 1 : 0; switch(event->keyval) { @@ -2650,17 +2651,17 @@ void dt_iop_gui_init_blendif(GtkWidget *blendw, dt_iop_module_t *module) "press 'm' to toggle mask view.")); gtk_widget_set_tooltip_text(GTK_WIDGET(sl->head), _(slider_tooltip[in_out])); - g_signal_connect(G_OBJECT(sl->slider), "value-changed", + g_signal_connect(sl->slider, "value-changed", G_CALLBACK(_blendop_blendif_sliders_callback), bd); - g_signal_connect(G_OBJECT(sl->slider), "value-reset", + g_signal_connect(sl->slider, "value-reset", G_CALLBACK(_blendop_blendif_sliders_reset_callback), bd); - g_signal_connect(G_OBJECT(sl->slider), "leave-notify-event", + g_signal_connect(sl->slider, "leave-notify-event", G_CALLBACK(_blendop_blendif_leave), module); - g_signal_connect(G_OBJECT(sl->slider), "enter-notify-event", + g_signal_connect(sl->slider, "enter-notify-event", G_CALLBACK(_blendop_blendif_enter), module); - g_signal_connect(G_OBJECT(sl->slider), "key-press-event", + g_signal_connect(sl->slider, "key-press-event", G_CALLBACK(_blendop_blendif_key_press), module); - g_signal_connect(G_OBJECT(sl->polarity), "toggled", + g_signal_connect(GTK_TOGGLE_BUTTON(sl->polarity), "toggled", G_CALLBACK(_blendop_blendif_polarity_callback), bd); sl->box = GTK_BOX(dt_gui_vbox(label_box, dt_gui_hbox(dt_gui_expand(sl->slider), sl->polarity))); @@ -2676,13 +2677,13 @@ void dt_iop_gui_init_blendif(GtkWidget *blendw, dt_iop_module_t *module) _("adjust the boost factor of the channel mask")); gtk_widget_set_sensitive(bd->channel_boost_factor_slider, FALSE); - g_signal_connect(G_OBJECT(bd->channel_boost_factor_slider), "value-changed", + g_signal_connect(bd->channel_boost_factor_slider, "value-changed", G_CALLBACK(_blendop_blendif_boost_factor_callback), bd); - g_signal_connect(G_OBJECT(bd->channel_tabs), "switch_page", + g_signal_connect(bd->channel_tabs, "switch-page", G_CALLBACK(_blendop_blendif_tab_switch), bd); - g_signal_connect(G_OBJECT(bd->colorpicker), "toggled", + g_signal_connect(bd->colorpicker, "toggled", G_CALLBACK(_update_gradient_slider_pickers), module); - g_signal_connect(G_OBJECT(bd->colorpicker_set_values), "toggled", + g_signal_connect(bd->colorpicker_set_values, "toggled", G_CALLBACK(_update_gradient_slider_pickers), module); dt_gui_box_add(bd->blendif_box, section, header, @@ -2765,7 +2766,7 @@ void dt_iop_gui_init_masks(GtkWidget *blendw, dt_iop_module_t *module) dt_bauhaus_widget_set_label(bd->masks_combo, N_("blend"), N_("drawn mask")); dt_bauhaus_combobox_add(bd->masks_combo, _("no mask used")); - g_signal_connect(G_OBJECT(bd->masks_combo), "value-changed", + g_signal_connect(bd->masks_combo, "value-changed", G_CALLBACK(dt_masks_iop_value_changed_callback), module); dt_bauhaus_combobox_add_populate_fct(bd->masks_combo, dt_masks_iop_combo_populate); @@ -2978,7 +2979,7 @@ void dt_iop_gui_init_raster(GtkWidget *blendw, dt_iop_module_t *module) bd->raster_combo = dt_bauhaus_combobox_new(module); dt_bauhaus_combobox_add(bd->raster_combo, _("no mask used")); - g_signal_connect(G_OBJECT(bd->raster_combo), "value-changed", + g_signal_connect(bd->raster_combo, "value-changed", G_CALLBACK(_raster_value_changed_callback), module); dt_bauhaus_combobox_add_populate_fct(bd->raster_combo, _raster_combo_populate); @@ -3476,7 +3477,7 @@ void dt_iop_gui_init_blending(GtkWidget *iopw, gtk_widget_set_tooltip_text(presets_button, _("blending options")); if(bd->blendif_support) { - g_signal_connect(G_OBJECT(presets_button), "button-press-event", + g_signal_connect(GTK_BUTTON(presets_button), "button-press-event", G_CALLBACK(_blendif_options_callback), module); } else @@ -3524,7 +3525,7 @@ void dt_iop_gui_init_blending(GtkWidget *iopw, dt_develop_blend_mode_names, -1, -1); gtk_widget_set_tooltip_text(bd->blend_modes_combo, _("choose blending mode")); - g_signal_connect(G_OBJECT(bd->blend_modes_combo), "value-changed", + g_signal_connect(bd->blend_modes_combo, "value-changed", G_CALLBACK(_blendop_blend_mode_callback), bd); dt_gui_add_help_link(GTK_WIDGET(bd->blend_modes_combo), "masks_blending_op"); @@ -3565,7 +3566,7 @@ void dt_iop_gui_init_blending(GtkWidget *iopw, N_("combine masks"), dt_develop_combine_masks_names, NULL, _("how to combine individual drawn mask and different channels of parametric mask")); - g_signal_connect(G_OBJECT(bd->masks_combine_combo), "value-changed", + g_signal_connect(bd->masks_combine_combo, "value-changed", G_CALLBACK(_blendop_masks_combine_callback), bd); dt_gui_add_help_link(GTK_WIDGET(bd->masks_combine_combo), "masks_combined"); @@ -3578,7 +3579,7 @@ void dt_iop_gui_init_blending(GtkWidget *iopw, _("adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" "negative values select flat areas")); - g_signal_connect(G_OBJECT(bd->details_slider), "value-changed", + g_signal_connect(bd->details_slider, "value-changed", G_CALLBACK(_blendop_blendif_details_callback), bd); bd->masks_feathering_guide_combo = _combobox_new_from_list @@ -3596,7 +3597,7 @@ void dt_iop_gui_init_blending(GtkWidget *iopw, dt_bauhaus_slider_set_format(bd->feathering_radius_slider, _(" px")); gtk_widget_set_tooltip_text(bd->feathering_radius_slider, _("spatial radius of feathering")); - g_signal_connect(G_OBJECT(bd->feathering_radius_slider), "value-changed", + g_signal_connect(bd->feathering_radius_slider, "value-changed", G_CALLBACK(_blendop_blendif_feathering_callback), bd); bd->blur_radius_slider = dt_bauhaus_slider_new_with_range(module, 0.0, 100.0, 0, 0.0, 1); @@ -3605,7 +3606,7 @@ void dt_iop_gui_init_blending(GtkWidget *iopw, dt_bauhaus_slider_set_format(bd->blur_radius_slider, _(" px")); gtk_widget_set_tooltip_text(bd->blur_radius_slider, _("radius for gaussian blur of blend mask")); - g_signal_connect(G_OBJECT(bd->blur_radius_slider), "value-changed", + g_signal_connect(bd->blur_radius_slider, "value-changed", G_CALLBACK(_blendop_blendif_feathering_callback), bd); bd->brightness_slider = dt_bauhaus_slider_new_with_range(module, -1.0, 1.0, 0, 0.0, 2); diff --git a/src/develop/imageop.c b/src/develop/imageop.c index 33f49acfc94c..c5dd86eef8b6 100644 --- a/src/develop/imageop.c +++ b/src/develop/imageop.c @@ -476,7 +476,7 @@ static void _header_menu_deactivate_callback(GtkMenuShell *menushell, dt_iop_show_hide_header_buttons(module, NULL, FALSE, FALSE); } -static void _gui_delete_callback(GtkButton *button, dt_iop_module_t *module) +static void _gui_delete_callback(GtkWidget *button, dt_iop_module_t *module) { dt_develop_t *dev = module->dev; @@ -628,7 +628,7 @@ dt_iop_module_t *dt_iop_gui_get_next_visible_module(const dt_iop_module_t *modul return next; } -static void _gui_movedown_callback(GtkButton *button, dt_iop_module_t *module) +static void _gui_movedown_callback(GtkWidget *button, dt_iop_module_t *module) { dt_ioppr_check_iop_order(module->dev, 0, "dt_iop_gui_movedown_callback begin"); @@ -663,7 +663,7 @@ static void _gui_movedown_callback(GtkButton *button, dt_iop_module_t *module) DT_CONTROL_SIGNAL_RAISE(DT_SIGNAL_DEVELOP_MODULE_MOVED); } -static void _gui_moveup_callback(GtkButton *button, dt_iop_module_t *module) +static void _gui_moveup_callback(GtkWidget *button, dt_iop_module_t *module) { dt_ioppr_check_iop_order(module->dev, 0, "dt_iop_gui_moveup_callback begin"); @@ -795,7 +795,7 @@ dt_iop_module_t *dt_iop_gui_duplicate(dt_iop_module_t *base, return module; } -static void _gui_copy_callback(GtkButton *button, dt_iop_module_t *base) +static void _gui_copy_callback(GtkWidget *button, dt_iop_module_t *base) { dt_iop_module_t *module = dt_iop_gui_duplicate(base, FALSE); @@ -806,7 +806,7 @@ static void _gui_copy_callback(GtkButton *button, dt_iop_module_t *base) dt_iop_gui_rename_module(module); } -static void _gui_duplicate_callback(GtkButton *button, dt_iop_module_t *base) +static void _gui_duplicate_callback(GtkWidget *button, dt_iop_module_t *base) { dt_iop_module_t *module = dt_iop_gui_duplicate(base, TRUE); @@ -914,7 +914,7 @@ void dt_iop_gui_rename_module(dt_iop_module_t *module) g_signal_connect(entry, "focus-out-event", G_CALLBACK(_rename_module_key_press), module); g_signal_connect(entry, "style-updated", - G_CALLBACK(_rename_module_resize), module); + G_CALLBACK((GtkCallback)_rename_module_resize), (gpointer)module); g_signal_connect(entry, "changed", G_CALLBACK(_rename_module_resize), module); g_signal_connect(entry, "enter-notify-event", @@ -927,7 +927,7 @@ void dt_iop_gui_rename_module(dt_iop_module_t *module) gtk_widget_grab_focus(entry); } -static void _gui_rename_callback(GtkButton *button, +static void _gui_rename_callback(GtkWidget *button, dt_iop_module_t *module) { dt_iop_gui_rename_module(module); @@ -978,7 +978,7 @@ static gboolean _gui_multiinstance_callback(GtkButton *button, if(event && event->button == GDK_BUTTON_SECONDARY) { if(!(module->flags() & IOP_FLAGS_ONE_INSTANCE)) - _gui_copy_callback(button, module); + _gui_copy_callback(NULL, module); return TRUE; } else if(event && event->button == GDK_BUTTON_MIDDLE) @@ -994,46 +994,46 @@ static gboolean _gui_multiinstance_callback(GtkButton *button, item = gtk_menu_item_new_with_label(_("new instance")); // gtk_widget_set_tooltip_text(item, _("add a new instance of this module to the pipe")); - g_signal_connect(G_OBJECT(item), "activate", + g_signal_connect(item, "activate", G_CALLBACK(_gui_copy_callback), module); gtk_widget_set_sensitive(item, multi_show.new); gtk_menu_shell_append(menu, item); item = gtk_menu_item_new_with_label(_("duplicate instance")); // gtk_widget_set_tooltip_text(item, _("add a copy of this instance to the pipe")); - g_signal_connect(G_OBJECT(item), "activate", + g_signal_connect(item, "activate", G_CALLBACK(_gui_duplicate_callback), module); gtk_widget_set_sensitive(item, multi_show.new); gtk_menu_shell_append(menu, item); item = gtk_menu_item_new_with_label(_("move up")); // gtk_widget_set_tooltip_text(item, _("move this instance up")); - g_signal_connect(G_OBJECT(item), "activate", + g_signal_connect(item, "activate", G_CALLBACK(_gui_moveup_callback), module); gtk_widget_set_sensitive(item, multi_show.up); gtk_menu_shell_append(menu, item); item = gtk_menu_item_new_with_label(_("move down")); // gtk_widget_set_tooltip_text(item, _("move this instance down")); - g_signal_connect(G_OBJECT(item), "activate", + g_signal_connect(item, "activate", G_CALLBACK(_gui_movedown_callback), module); gtk_widget_set_sensitive(item, multi_show.down); gtk_menu_shell_append(menu, item); item = gtk_menu_item_new_with_label(_("delete")); // gtk_widget_set_tooltip_text(item, _("delete this instance")); - g_signal_connect(G_OBJECT(item), "activate", + g_signal_connect(item, "activate", G_CALLBACK(_gui_delete_callback), module); gtk_widget_set_sensitive(item, multi_show.close); gtk_menu_shell_append(menu, item); gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); item = gtk_menu_item_new_with_label(_("rename")); - g_signal_connect(G_OBJECT(item), "activate", + g_signal_connect(item, "activate", G_CALLBACK(_gui_rename_callback), module); gtk_menu_shell_append(menu, item); - g_signal_connect(G_OBJECT(menu), "deactivate", + g_signal_connect(menu, "deactivate", G_CALLBACK(_header_menu_deactivate_callback), module); dt_gui_menu_popup(GTK_MENU(menu), GTK_WIDGET(button), @@ -2311,7 +2311,7 @@ static gboolean _presets_popup_callback(GtkButton *button, GtkMenu *menu = dt_gui_presets_popup_menu_show_for_module(module); - g_signal_connect(G_OBJECT(menu), "deactivate", + g_signal_connect(GTK_MENU_SHELL(menu), "deactivate", G_CALLBACK(_header_menu_deactivate_callback), module); dt_gui_menu_popup(menu, @@ -2531,9 +2531,8 @@ void dt_iop_gui_update_expanded(dt_iop_module_t *module) static gboolean _iop_plugin_body_button_press(GtkWidget *w, GdkEventButton *e, - gpointer user_data) + dt_iop_module_t *module) { - dt_iop_module_t *module = (dt_iop_module_t *)user_data; if(e->button == GDK_BUTTON_PRIMARY) { dt_iop_request_focus(module); @@ -2550,13 +2549,11 @@ static gboolean _iop_plugin_body_button_press(GtkWidget *w, static gboolean _iop_plugin_header_button_release(GtkWidget *w, GdkEventButton *e, - gpointer user_data) + dt_iop_module_t *module) { if(e->type == GDK_2BUTTON_PRESS || e->type == GDK_3BUTTON_PRESS) return TRUE; if(GTK_IS_BUTTON(gtk_get_event_widget((GdkEvent*)e))) return FALSE; - dt_iop_module_t *module = (dt_iop_module_t *)user_data; - if(e->button == GDK_BUTTON_PRIMARY) { if(dt_modifier_is(e->state, GDK_SHIFT_MASK | GDK_CONTROL_MASK)) @@ -2748,7 +2745,7 @@ gboolean dt_iop_show_hide_header_buttons(dt_iop_module_t *module, GtkWidget *space = gtk_drawing_area_new(); gtk_box_pack_end(GTK_BOX(header), space, TRUE, TRUE, 0); gtk_widget_show(space); - g_signal_connect(G_OBJECT(space), "size-allocate", + g_signal_connect(space, "size-allocate", G_CALLBACK(_header_size_callback), header); } } @@ -2851,9 +2848,9 @@ void dt_iop_add_remove_mask_indicator(dt_iop_module_t *module, gboolean add) { module->mask_indicator = dtgtk_togglebutton_new(dtgtk_cairo_paint_showmask, 0, NULL); dt_gui_add_class(module->mask_indicator, "dt_transparent_background"); - g_signal_connect(G_OBJECT(module->mask_indicator), "toggled", + g_signal_connect(GTK_TOGGLE_BUTTON(module->mask_indicator), "toggled", G_CALLBACK(_display_mask_indicator_callback), module); - g_signal_connect(G_OBJECT(module->mask_indicator), "query-tooltip", + g_signal_connect(module->mask_indicator, "query-tooltip", G_CALLBACK(_mask_indicator_tooltip), module); gtk_widget_set_has_tooltip(module->mask_indicator, TRUE); gtk_widget_set_sensitive(module->mask_indicator, module->enabled); @@ -2901,10 +2898,8 @@ gboolean _iop_tooltip_callback(GtkWidget *widget, const gint y, const gboolean keyboard_mode, GtkTooltip *tooltip, - gpointer user_data) + dt_iop_module_t *module) { - dt_iop_module_t *module = (dt_iop_module_t *)user_data; - const char **des = module->description(module); if(!des) return FALSE; @@ -2953,7 +2948,7 @@ gboolean _iop_tooltip_callback(GtkWidget *widget, gtk_box_pack_start(GTK_BOX(vbox), grid, FALSE, FALSE, 0); - g_signal_connect(G_OBJECT(vbox), "size-allocate", + g_signal_connect(vbox, "size-allocate", G_CALLBACK(_iop_tooltip_reposition), module->header); return dt_shortcut_tooltip_callback(widget, x, y, keyboard_mode, tooltip, vbox); @@ -2965,7 +2960,7 @@ GtkWidget *dt_iop_gui_header_button(dt_iop_module_t *module, GtkWidget *header) { GtkWidget *button; - gpointer callback = _gui_multiinstance_callback; + gboolean(*callback)(GtkButton*, GdkEventButton*, dt_iop_module_t*) = _gui_multiinstance_callback; if(element == DT_ACTION_ELEMENT_ENABLE) { @@ -2981,7 +2976,7 @@ GtkWidget *dt_iop_gui_header_button(dt_iop_module_t *module, gtk_widget_set_tooltip_text(button, tooltip); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), module->enabled); - g_signal_connect(button, "toggled", G_CALLBACK(_gui_off_callback), module); + g_signal_connect(GTK_TOGGLE_BUTTON(button), "toggled", G_CALLBACK(_gui_off_callback), module); gtk_box_pack_start(GTK_BOX(header), button, FALSE, FALSE, 0); } else @@ -3005,7 +3000,7 @@ GtkWidget *dt_iop_gui_header_button(dt_iop_module_t *module, g_signal_connect(button, "enter-notify-event", G_CALLBACK(_header_enter_notify_callback), GINT_TO_POINTER(element)); - g_signal_connect(button, "button-press-event", G_CALLBACK(callback), module); + g_signal_connect(GTK_BUTTON(button), "button-press-event", G_CALLBACK(callback), module); dt_action_define(&module->so->actions, NULL, NULL, button, NULL); gtk_widget_show(button); @@ -3122,21 +3117,21 @@ void dt_iop_gui_set_expander(dt_iop_module_t *module) module->header = header; /* setup the header box */ - g_signal_connect(G_OBJECT(header_evb), "button-release-event", + g_signal_connect(header_evb, "button-release-event", G_CALLBACK(_iop_plugin_header_button_release), module); gtk_widget_add_events(header_evb, GDK_POINTER_MOTION_MASK); - g_signal_connect(G_OBJECT(header_evb), "enter-notify-event", + g_signal_connect(header_evb, "enter-notify-event", G_CALLBACK(_header_motion_notify_show_callback), module); - g_signal_connect(G_OBJECT(header_evb), "leave-notify-event", + g_signal_connect(header_evb, "leave-notify-event", G_CALLBACK(_header_motion_notify_hide_callback), module); /* connect mouse button callbacks for focus and presets */ - g_signal_connect(G_OBJECT(body_evb), "button-press-event", + g_signal_connect(body_evb, "button-press-event", G_CALLBACK(_iop_plugin_body_button_press), module); gtk_widget_add_events(body_evb, GDK_POINTER_MOTION_MASK); - g_signal_connect(G_OBJECT(body_evb), "enter-notify-event", + g_signal_connect(body_evb, "enter-notify-event", G_CALLBACK(_header_motion_notify_show_callback), module); - g_signal_connect(G_OBJECT(body_evb), "leave-notify-event", + g_signal_connect(body_evb, "leave-notify-event", G_CALLBACK(_header_motion_notify_hide_callback), module); /* diff --git a/src/develop/imageop_gui.c b/src/develop/imageop_gui.c index 1b11d6e1d29d..56d402600d52 100644 --- a/src/develop/imageop_gui.c +++ b/src/develop/imageop_gui.c @@ -268,7 +268,7 @@ GtkWidget *dt_iop_togglebutton_new(dt_iop_module_t *self, const char *section, c DTGTKCairoPaintIconFunc paint, GtkWidget *box) { GtkWidget *w = dtgtk_togglebutton_new(paint, 0, NULL); - g_signal_connect(G_OBJECT(w), "button-press-event", callback, self); + g_signal_connect(w, "button-press-event", G_CALLBACK((gboolean(*)(GtkWidget*,GdkEventButton*, dt_iop_module_t*))callback), self); if(!ctrl_label) gtk_widget_set_tooltip_text(w, _(label)); @@ -304,7 +304,7 @@ GtkWidget *dt_iop_button_new(dt_iop_module_t *self, const gchar *label, gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(button))), PANGO_ELLIPSIZE_END); } - g_signal_connect(G_OBJECT(button), "clicked", callback, (gpointer)self); + g_signal_connect(button, "clicked", G_CALLBACK((GtkCallback)callback), (gpointer)self); dt_action_t *ac = dt_action_define_iop(self, NULL, label, button, &dt_action_def_button); dt_shortcut_register(ac, 0, 0, accel_key, mods); diff --git a/src/dtgtk/culling.c b/src/dtgtk/culling.c index f057a1d55fd4..32c3f95d171c 100644 --- a/src/dtgtk/culling.c +++ b/src/dtgtk/culling.c @@ -540,11 +540,9 @@ static void _toggle_zoom_all(dt_culling_t *table, } static gboolean _event_scroll(GtkWidget *widget, - GdkEvent *event, - gpointer user_data) + GdkEventScroll *e, + dt_culling_t *table) { - GdkEventScroll *e = (GdkEventScroll *)event; - dt_culling_t *table = (dt_culling_t *)user_data; int delta; if(dt_gui_get_scroll_unit_delta(e, &delta)) @@ -583,9 +581,8 @@ static gboolean _event_draw(GtkWidget *widget, cairo_t *cr, gpointer user_data) static gboolean _event_leave_notify(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) + dt_culling_t *table) { - dt_culling_t *table = (dt_culling_t *)user_data; // if the leaving cause is the hide of the widget, no mouseover change if(!gtk_widget_is_visible(widget)) { @@ -607,7 +604,7 @@ static gboolean _event_leave_notify(GtkWidget *widget, static gboolean _event_enter_notify(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) + dt_culling_t *table) { // we only handle the case where we enter thumbtable from an // inferior (a thumbnail) this is when the mouse enter an "empty" @@ -620,10 +617,8 @@ static gboolean _event_enter_notify(GtkWidget *widget, static gboolean _event_button_press(GtkWidget *widget, GdkEventButton *event, - gpointer user_data) + dt_culling_t *table) { - dt_culling_t *table = (dt_culling_t *)user_data; - if(event->button == GDK_BUTTON_PRIMARY && event->type == GDK_BUTTON_PRESS) { // make sure any edition field loses the focus @@ -741,9 +736,8 @@ static gboolean _event_motion_notify(GtkWidget *widget, static gboolean _event_button_release(GtkWidget *widget, GdkEventButton *event, - gpointer user_data) + dt_culling_t *table) { - dt_culling_t *table = (dt_culling_t *)user_data; table->panning = FALSE; const dt_imgid_t overid = dt_control_get_mouse_over_id(); @@ -965,19 +959,19 @@ dt_culling_t *dt_culling_new(dt_culling_mode_t mode) gtk_widget_set_app_paintable(table->widget, TRUE); gtk_widget_set_can_focus(table->widget, TRUE); - g_signal_connect(G_OBJECT(table->widget), "scroll-event", + g_signal_connect(table->widget, "scroll-event", G_CALLBACK(_event_scroll), table); - g_signal_connect(G_OBJECT(table->widget), "draw", + g_signal_connect(table->widget, "draw", G_CALLBACK(_event_draw), table); - g_signal_connect(G_OBJECT(table->widget), "leave-notify-event", + g_signal_connect(table->widget, "leave-notify-event", G_CALLBACK(_event_leave_notify), table); - g_signal_connect(G_OBJECT(table->widget), "enter-notify-event", + g_signal_connect(table->widget, "enter-notify-event", G_CALLBACK(_event_enter_notify), table); - g_signal_connect(G_OBJECT(table->widget), "button-press-event", + g_signal_connect(table->widget, "button-press-event", G_CALLBACK(_event_button_press), table); - g_signal_connect(G_OBJECT(table->widget), "motion-notify-event", + g_signal_connect(table->widget, "motion-notify-event", G_CALLBACK(_event_motion_notify), table); - g_signal_connect(G_OBJECT(table->widget), "button-release-event", + g_signal_connect(table->widget, "button-release-event", G_CALLBACK(_event_button_release), table); // we register globals signals diff --git a/src/dtgtk/expander.c b/src/dtgtk/expander.c index 543816e38e83..4216c66a8298 100644 --- a/src/dtgtk/expander.c +++ b/src/dtgtk/expander.c @@ -167,12 +167,12 @@ static gboolean _expander_scroll(GtkWidget *widget, GdkFrameClock *frame_clock, return G_SOURCE_REMOVE; } -static void _expander_resize(GtkWidget *widget, GdkRectangle *allocation, gpointer user_data) +static void _expander_resize(GtkWidget *widget, GdkRectangle *allocation, GtkWidget *frame) { if(widget == _scroll_widget || _drop_widget ? widget != _drop_widget : - ((!(gtk_widget_get_state_flags(user_data) & GTK_STATE_FLAG_SELECTED) || + ((!(gtk_widget_get_state_flags(frame) & GTK_STATE_FLAG_SELECTED) || gtk_widget_get_allocated_height(widget) == _start_pos.height) && (!darktable.lib->gui_module || darktable.lib->gui_module->expander != widget))) return; @@ -288,7 +288,7 @@ GtkWidget *dtgtk_expander_new(GtkWidget *header, GtkWidget *body) g_signal_connect(expander->header_evb, "drag-begin", G_CALLBACK(_expander_drag_begin), NULL); g_signal_connect(expander->header_evb, "drag-end", G_CALLBACK(_expander_drag_end), NULL); g_signal_connect(expander, "drag-leave", G_CALLBACK(_expander_drag_leave), NULL); - g_signal_connect(expander, "size-allocate", G_CALLBACK(_expander_resize), frame); + g_signal_connect(GTK_WIDGET(expander), "size-allocate", G_CALLBACK(_expander_resize), frame); return GTK_WIDGET(expander); } diff --git a/src/dtgtk/range.c b/src/dtgtk/range.c index 4fae45590752..1c8cb1082d27 100644 --- a/src/dtgtk/range.c +++ b/src/dtgtk/range.c @@ -115,10 +115,9 @@ typedef enum _range_signal } _range_signal; static guint _signals[LAST_SIGNAL] = { 0 }; -static void _dt_pref_changed(gpointer instance, gpointer user_data) +static void _dt_pref_changed(GtkWidget *widget, GtkDarktableRangeSelect *range) { - if(!user_data) return; - GtkDarktableRangeSelect *range = (GtkDarktableRangeSelect *)user_data; + if(!range) return; GtkStyleContext *context = gtk_widget_get_style_context(GTK_WIDGET(range->band)); GtkStateFlags state = gtk_widget_get_state_flags(range->band); @@ -752,7 +751,7 @@ static void _popup_date_tree_row_activated(GtkTreeView *self, GtkTreePath *path, gtk_widget_activate(pop->ok_btn); } -static void _popup_date_tree_selection_change(GtkTreeView *self, GtkDarktableRangeSelect *range) +static void _popup_date_tree_selection_change(GtkTreeSelection *self, GtkDarktableRangeSelect *range) { if(!range->date_popup || range->date_popup->internal_change) return; _range_date_popup *pop = range->date_popup; @@ -937,7 +936,7 @@ static void _popup_date_init(GtkDarktableRangeSelect *range) // the type of date selection pop->type = dt_bauhaus_combobox_new(NULL); dt_bauhaus_widget_set_label(pop->type, NULL, _("date type")); - g_signal_connect(G_OBJECT(pop->type), "value-changed", G_CALLBACK(_popup_date_type_changed), range); + g_signal_connect(pop->type, "value-changed", G_CALLBACK(_popup_date_type_changed), range); // the label to explain the reference date for relative values pop->relative_label = gtk_label_new(""); @@ -953,8 +952,8 @@ static void _popup_date_init(GtkDarktableRangeSelect *range) gtk_widget_set_no_show_all(pop->calendar, TRUE); gtk_widget_set_tooltip_text(pop->calendar, _("click to select date\n" "double-click to use the date directly")); - g_signal_connect(G_OBJECT(pop->calendar), "day_selected", G_CALLBACK(_popup_date_changed), range); - g_signal_connect(G_OBJECT(pop->calendar), "day_selected-double-click", + g_signal_connect(pop->calendar, "day_selected", G_CALLBACK(_popup_date_changed), range); + g_signal_connect(pop->calendar, "day_selected-double-click", G_CALLBACK(_popup_date_day_selected_2click), range); // the relative date box @@ -966,7 +965,7 @@ static void _popup_date_init(GtkDarktableRangeSelect *range) pop->years = gtk_entry_new(); gtk_entry_set_width_chars(GTK_ENTRY(pop->years), 3); gtk_widget_set_halign(pop->years, GTK_ALIGN_START); - g_signal_connect(G_OBJECT(pop->years), "changed", G_CALLBACK(_popup_date_changed), range); + g_signal_connect(pop->years, "changed", G_CALLBACK(_popup_date_changed), range); gtk_grid_attach(GTK_GRID(pop->relative_date_box), pop->years, 1, 0, 1, 1); lb = gtk_label_new(_("months: ")); gtk_label_set_xalign(GTK_LABEL(lb), 1.0); @@ -974,7 +973,7 @@ static void _popup_date_init(GtkDarktableRangeSelect *range) pop->months = gtk_entry_new(); gtk_entry_set_width_chars(GTK_ENTRY(pop->months), 3); gtk_widget_set_halign(pop->months, GTK_ALIGN_START); - g_signal_connect(G_OBJECT(pop->months), "changed", G_CALLBACK(_popup_date_changed), range); + g_signal_connect(pop->months, "changed", G_CALLBACK(_popup_date_changed), range); gtk_grid_attach(GTK_GRID(pop->relative_date_box), pop->months, 1, 1, 1, 1); lb = gtk_label_new(_("days: ")); gtk_label_set_xalign(GTK_LABEL(lb), 1.0); @@ -982,7 +981,7 @@ static void _popup_date_init(GtkDarktableRangeSelect *range) pop->days = gtk_entry_new(); gtk_entry_set_width_chars(GTK_ENTRY(pop->days), 3); gtk_widget_set_halign(pop->days, GTK_ALIGN_START); - g_signal_connect(G_OBJECT(pop->days), "changed", G_CALLBACK(_popup_date_changed), range); + g_signal_connect(pop->days, "changed", G_CALLBACK(_popup_date_changed), range); gtk_grid_attach(GTK_GRID(pop->relative_date_box), pop->days, 1, 2, 1, 1); gtk_widget_show_all(pop->relative_date_box); gtk_widget_set_no_show_all(pop->relative_date_box, TRUE); @@ -993,13 +992,13 @@ static void _popup_date_init(GtkDarktableRangeSelect *range) pop->hours = gtk_entry_new(); gtk_entry_set_width_chars(GTK_ENTRY(pop->hours), 2); - g_signal_connect(G_OBJECT(pop->hours), "changed", G_CALLBACK(_popup_date_changed), range); + g_signal_connect(pop->hours, "changed", G_CALLBACK(_popup_date_changed), range); pop->minutes = gtk_entry_new(); gtk_entry_set_width_chars(GTK_ENTRY(pop->minutes), 2); - g_signal_connect(G_OBJECT(pop->minutes), "changed", G_CALLBACK(_popup_date_changed), range); + g_signal_connect(pop->minutes, "changed", G_CALLBACK(_popup_date_changed), range); pop->seconds = gtk_entry_new(); gtk_entry_set_width_chars(GTK_ENTRY(pop->seconds), 2); - g_signal_connect(G_OBJECT(pop->seconds), "changed", G_CALLBACK(_popup_date_changed), range); + g_signal_connect(pop->seconds, "changed", G_CALLBACK(_popup_date_changed), range); // the treeview GtkTreeModel *model = GTK_TREE_MODEL(gtk_tree_store_new(DATETIME_NUM_COLS, G_TYPE_STRING, G_TYPE_UINT, @@ -1008,8 +1007,8 @@ static void _popup_date_init(GtkDarktableRangeSelect *range) gtk_widget_set_tooltip_text(pop->calendar, _("click to select date\n" "double-click to use the date directly")); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(pop->treeview), FALSE); - g_signal_connect(G_OBJECT(pop->treeview), "row-activated", G_CALLBACK(_popup_date_tree_row_activated), range); - g_signal_connect(G_OBJECT(gtk_tree_view_get_selection(GTK_TREE_VIEW(pop->treeview))), "changed", + g_signal_connect(pop->treeview, "row-activated", G_CALLBACK(_popup_date_tree_row_activated), range); + g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(pop->treeview)), "changed", G_CALLBACK(_popup_date_tree_selection_change), range); GtkTreeViewColumn *col = gtk_tree_view_column_new(); @@ -1025,10 +1024,10 @@ static void _popup_date_init(GtkDarktableRangeSelect *range) pop->now_btn = gtk_button_new_with_label(_("now")); gtk_widget_set_no_show_all(pop->now_btn, TRUE); gtk_widget_set_tooltip_text(pop->now_btn, _("set the value to always match current datetime")); - g_signal_connect(G_OBJECT(pop->now_btn), "clicked", G_CALLBACK(_popup_date_now_clicked), range); + g_signal_connect(pop->now_btn, "clicked", G_CALLBACK(_popup_date_now_clicked), range); pop->ok_btn = gtk_button_new_with_label(_("apply")); gtk_widget_set_tooltip_text(pop->ok_btn, _("set the range bound with this value")); - g_signal_connect(G_OBJECT(pop->ok_btn), "clicked", G_CALLBACK(_popup_date_ok_clicked), range); + g_signal_connect(pop->ok_btn, "clicked", G_CALLBACK(_popup_date_ok_clicked), range); GtkWidget *time = dt_gui_hbox(pop->hours, gtk_label_new(" : "), pop->minutes, gtk_label_new(" : "), pop->seconds); gtk_widget_set_halign(time, GTK_ALIGN_CENTER); @@ -1045,9 +1044,8 @@ static void _popup_date_init(GtkDarktableRangeSelect *range) gtk_container_add(GTK_CONTAINER(pop->popup), vbox); } -static void _popup_item_activate(GtkWidget *w, gpointer user_data) +static void _popup_item_activate(GtkWidget *w, GtkDarktableRangeSelect *range) { - GtkDarktableRangeSelect *range = (GtkDarktableRangeSelect *)user_data; // retrieve block and source values GtkWidget *source = GTK_WIDGET(g_object_get_data(G_OBJECT(w), "source_widget")); _range_block *blo = (_range_block *)g_object_get_data(G_OBJECT(w), "range_block"); @@ -1095,7 +1093,7 @@ static GtkWidget *_popup_get_numeric_menu(GtkDarktableRangeSelect *range, GtkWid g_free(txt); g_object_set_data(G_OBJECT(smt), "range_block", blo); g_object_set_data(G_OBJECT(smt), "source_widget", w); - g_signal_connect(G_OBJECT(smt), "activate", G_CALLBACK(_popup_item_activate), range); + g_signal_connect(smt, "activate", G_CALLBACK(_popup_item_activate), range); gtk_menu_shell_append(pop, smt); nb++; @@ -1122,7 +1120,7 @@ static GtkWidget *_popup_get_numeric_menu(GtkDarktableRangeSelect *range, GtkWid g_free(txt); g_object_set_data(G_OBJECT(smt), "range_block", blo); g_object_set_data(G_OBJECT(smt), "source_widget", w); - g_signal_connect(G_OBJECT(smt), "activate", G_CALLBACK(_popup_item_activate), range); + g_signal_connect(smt, "activate", G_CALLBACK(_popup_item_activate), range); gtk_menu_shell_append(pop, smt); } @@ -1160,9 +1158,8 @@ static void _popup_show(GtkDarktableRangeSelect *range, GtkWidget *w) } } -static gboolean _event_entry_press(GtkWidget *w, GdkEventButton *e, gpointer user_data) +static gboolean _event_entry_press(GtkWidget *w, GdkEventButton *e, GtkDarktableRangeSelect *range) { - GtkDarktableRangeSelect *range = (GtkDarktableRangeSelect *)user_data; if(e->button == GDK_BUTTON_SECONDARY) { _popup_show(range, w); @@ -1171,18 +1168,17 @@ static gboolean _event_entry_press(GtkWidget *w, GdkEventButton *e, gpointer use return FALSE; } -static void _event_entry_activated(GtkWidget *entry, gpointer user_data) +static void _event_entry_activated(GtkWidget *entry, GtkDarktableRangeSelect *range) { - GtkDarktableRangeSelect *range = (GtkDarktableRangeSelect *)user_data; _range_bound bound = BOUND_MIN; if(entry == range->entry_max) bound = BOUND_MAX; _bound_change(range, gtk_entry_get_text(GTK_ENTRY(entry)), bound); } -static gboolean _event_entry_focus_out(GtkWidget *entry, GdkEventFocus *event, gpointer user_data) +static gboolean _event_entry_focus_out(GtkWidget *entry, GdkEventFocus *event, GtkDarktableRangeSelect *range) { - _event_entry_activated(entry, user_data); + _event_entry_activated(entry, range); return FALSE; } @@ -1488,9 +1484,8 @@ void dtgtk_range_select_redraw(GtkDarktableRangeSelect *range) gtk_widget_queue_draw(range->band); } -static gboolean _event_band_motion(GtkWidget *widget, GdkEventMotion *event, gpointer user_data) +static gboolean _event_band_motion(GtkWidget *widget, GdkEventMotion *event, GtkDarktableRangeSelect *range) { - GtkDarktableRangeSelect *range = (GtkDarktableRangeSelect *)user_data; range->current_x_px = event->x - range->alloc_padding.x; // if we are outside the graph, don't go further @@ -1538,9 +1533,8 @@ static gboolean _event_band_motion(GtkWidget *widget, GdkEventMotion *event, gpo return TRUE; } -static gboolean _event_band_leave(GtkWidget *w, GdkEventCrossing *e, gpointer user_data) +static gboolean _event_band_leave(GtkWidget *w, GdkEventCrossing *e, GtkDarktableRangeSelect *range) { - GtkDarktableRangeSelect *range = (GtkDarktableRangeSelect *)user_data; range->mouse_inside = HOVER_OUTSIDE; dt_control_change_cursor(GDK_LEFT_PTR); _current_hide_popup(range); @@ -1549,9 +1543,8 @@ static gboolean _event_band_leave(GtkWidget *w, GdkEventCrossing *e, gpointer us return TRUE; } -static gboolean _event_band_press(GtkWidget *w, GdkEventButton *e, gpointer user_data) +static gboolean _event_band_press(GtkWidget *w, GdkEventButton *e, GtkDarktableRangeSelect *range) { - GtkDarktableRangeSelect *range = (GtkDarktableRangeSelect *)user_data; if(e->button == GDK_BUTTON_PRIMARY && e->type == GDK_2BUTTON_PRESS) { dtgtk_range_select_set_selection(range, DT_RANGE_BOUND_MIN | DT_RANGE_BOUND_MAX, range->min_r, range->max_r, @@ -1595,9 +1588,8 @@ static gboolean _event_band_press(GtkWidget *w, GdkEventButton *e, gpointer user } return TRUE; } -static gboolean _event_band_release(GtkWidget *w, GdkEventButton *e, gpointer user_data) +static gboolean _event_band_release(GtkWidget *w, GdkEventButton *e, GtkDarktableRangeSelect *range) { - GtkDarktableRangeSelect *range = (GtkDarktableRangeSelect *)user_data; if(!range->set_selection) return TRUE; range->select_max_r = _graph_value_from_pos(range, e->x - range->alloc_padding.x, TRUE); const double min_pos_px = _graph_value_to_pos(range, range->select_min_r); @@ -1667,12 +1659,12 @@ GtkWidget *dtgtk_range_select_new(const gchar *property, const gboolean show_ent range->band = gtk_drawing_area_new(); gtk_widget_set_events(range->band, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); - g_signal_connect(G_OBJECT(range->band), "draw", G_CALLBACK(_event_band_draw), range); - g_signal_connect(G_OBJECT(range->band), "button-press-event", G_CALLBACK(_event_band_press), range); - g_signal_connect(G_OBJECT(range->band), "button-release-event", G_CALLBACK(_event_band_release), range); - g_signal_connect(G_OBJECT(range->band), "motion-notify-event", G_CALLBACK(_event_band_motion), range); - g_signal_connect(G_OBJECT(range->band), "leave-notify-event", G_CALLBACK(_event_band_leave), range); - g_signal_connect(G_OBJECT(range->band), "style-updated", G_CALLBACK(_dt_pref_changed), range); + g_signal_connect(range->band, "draw", G_CALLBACK(_event_band_draw), range); + g_signal_connect(range->band, "button-press-event", G_CALLBACK(_event_band_press), range); + g_signal_connect(range->band, "button-release-event", G_CALLBACK(_event_band_release), range); + g_signal_connect(range->band, "motion-notify-event", G_CALLBACK(_event_band_motion), range); + g_signal_connect(range->band, "leave-notify-event", G_CALLBACK(_event_band_leave), range); + g_signal_connect(range->band, "style-updated", G_CALLBACK(_dt_pref_changed), range); gtk_widget_set_name(GTK_WIDGET(range->band), "dt-range-band"); gtk_widget_set_can_default(range->band, TRUE); @@ -1703,17 +1695,17 @@ GtkWidget *dtgtk_range_select_new(const gchar *property, const gboolean show_ent range->entry_min = dt_ui_entry_new(0); gtk_widget_set_can_default(range->entry_min, TRUE); _entry_set_tooltip(range->entry_min, BOUND_MIN, range->type); - g_signal_connect(G_OBJECT(range->entry_min), "activate", G_CALLBACK(_event_entry_activated), range); - g_signal_connect(G_OBJECT(range->entry_min), "focus-out-event", G_CALLBACK(_event_entry_focus_out), range); - g_signal_connect(G_OBJECT(range->entry_min), "button-press-event", G_CALLBACK(_event_entry_press), range); + g_signal_connect(range->entry_min, "activate", G_CALLBACK(_event_entry_activated), range); + g_signal_connect(range->entry_min, "focus-out-event", G_CALLBACK(_event_entry_focus_out), range); + g_signal_connect(range->entry_min, "button-press-event", G_CALLBACK(_event_entry_press), range); range->entry_max = dt_ui_entry_new(0); gtk_widget_set_can_default(range->entry_max, TRUE); gtk_entry_set_alignment(GTK_ENTRY(range->entry_max), 1.0); _entry_set_tooltip(range->entry_max, BOUND_MAX, range->type); - g_signal_connect(G_OBJECT(range->entry_max), "activate", G_CALLBACK(_event_entry_activated), range); - g_signal_connect(G_OBJECT(range->entry_max), "focus-out-event", G_CALLBACK(_event_entry_focus_out), range); - g_signal_connect(G_OBJECT(range->entry_max), "button-press-event", G_CALLBACK(_event_entry_press), range); + g_signal_connect(range->entry_max, "activate", G_CALLBACK(_event_entry_activated), range); + g_signal_connect(range->entry_max, "focus-out-event", G_CALLBACK(_event_entry_focus_out), range); + g_signal_connect(range->entry_max, "button-press-event", G_CALLBACK(_event_entry_press), range); dt_gui_box_add(vbox, dt_gui_hbox(dt_gui_expand(range->entry_min), dt_gui_expand(range->entry_max))); } diff --git a/src/dtgtk/resetlabel.c b/src/dtgtk/resetlabel.c index dcc43ebbc746..b3285d89c22a 100644 --- a/src/dtgtk/resetlabel.c +++ b/src/dtgtk/resetlabel.c @@ -64,7 +64,7 @@ GtkWidget *dtgtk_reset_label_new(const gchar *text, dt_iop_module_t *module, voi gtk_widget_set_tooltip_text(GTK_WIDGET(label), _("double-click to reset")); gtk_container_add(GTK_CONTAINER(label), GTK_WIDGET(label->lb)); gtk_widget_add_events(GTK_WIDGET(label), GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(label), "button-press-event", G_CALLBACK(_reset_label_callback), (gpointer)NULL); + g_signal_connect(label, "button-press-event", G_CALLBACK(_reset_label_callback), (gpointer)NULL); return (GtkWidget *)label; } diff --git a/src/dtgtk/stylemenu.c b/src/dtgtk/stylemenu.c index 5844056cc51c..e70b3255849c 100644 --- a/src/dtgtk/stylemenu.c +++ b/src/dtgtk/stylemenu.c @@ -118,7 +118,7 @@ static void _build_style_submenus(GtkMenuShell *menu, { menu_data->name = g_strdup(style_name); menu_data->user_data = user_data; - g_signal_connect_data(G_OBJECT(mi), "activate", + g_signal_connect_data(mi, "activate", G_CALLBACK(activate_callback), menu_data, (GClosureNotify)_free_menu_data, 0); } @@ -130,7 +130,7 @@ static void _build_style_submenus(GtkMenuShell *menu, { menu_data->name = g_strdup(style_name); menu_data->user_data = user_data; - g_signal_connect_data(G_OBJECT(mi), "button-press-event", + g_signal_connect_data(mi, "button-press-event", G_CALLBACK(button_callback), menu_data, (GClosureNotify)_free_menu_data, 0); } diff --git a/src/dtgtk/thumbnail.c b/src/dtgtk/thumbnail.c index 730ff6a92cbc..2a9c91a5f714 100644 --- a/src/dtgtk/thumbnail.c +++ b/src/dtgtk/thumbnail.c @@ -411,7 +411,7 @@ static void _thumb_write_extension(dt_thumbnail_t *thumb) static gboolean _event_cursor_draw(GtkWidget *widget, cairo_t *cr, - gpointer user_data) + dt_thumbnail_t *thumb) { const double w_width = gtk_widget_get_allocated_width(widget); const double w_height = gtk_widget_get_allocated_height(widget); @@ -627,11 +627,9 @@ static void _thumb_set_image_area(dt_thumbnail_t *thumb, static gboolean _event_image_draw(GtkWidget *widget, cairo_t *cr, - gpointer user_data) + dt_thumbnail_t *thumb) { - if(!user_data) - return TRUE; - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; + if(!thumb) return TRUE; if(!dt_is_valid_imgid(thumb->imgid)) { @@ -967,10 +965,9 @@ static void _thumbs_show_overlays(dt_thumbnail_t *thumb) static gboolean _event_main_motion(GtkWidget *widget, GdkEventMotion *event, - gpointer user_data) + dt_thumbnail_t *thumb) { - if(!user_data) return TRUE; - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; + if(!thumb) return TRUE; // first, we hide the block overlays after a delay if the mouse hasn't move _thumbs_show_overlays(thumb); @@ -981,16 +978,15 @@ static gboolean _event_main_motion(GtkWidget *widget, static gboolean _event_rating_press(GtkWidget *widget, GdkEventButton *event, - gpointer user_data) + dt_thumbnail_t *thumb) { return TRUE; } static gboolean _event_rating_release(GtkWidget *widget, GdkEventButton *event, - gpointer user_data) + dt_thumbnail_t *thumb) { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; if(thumb->disable_actions) return FALSE; if(dtgtk_thumbnail_btn_is_hidden(widget)) @@ -1026,9 +1022,8 @@ static gboolean _event_rating_release(GtkWidget *widget, static gboolean _event_grouping_release(GtkWidget *widget, GdkEventButton *event, - gpointer user_data) + dt_thumbnail_t *thumb) { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; if(thumb->disable_actions) return FALSE; if(dtgtk_thumbnail_btn_is_hidden(widget)) @@ -1076,9 +1071,8 @@ static gboolean _event_grouping_release(GtkWidget *widget, static gboolean _event_audio_release(GtkWidget *widget, GdkEventButton *event, - gpointer user_data) + dt_thumbnail_t *thumb) { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; if(thumb->disable_actions) return FALSE; if(dtgtk_thumbnail_btn_is_hidden(widget)) @@ -1106,10 +1100,9 @@ static gboolean _event_audio_release(GtkWidget *widget, // this is called each time the images info change static void _dt_image_info_changed_callback(gpointer instance, const gpointer imgs, - gpointer user_data) + dt_thumbnail_t *thumb) { - if(!user_data || !imgs) return; - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; + if(!thumb || !imgs) return; for(const GList *i = imgs; i; i = g_list_next(i)) { if(GPOINTER_TO_INT(i->data) == thumb->imgid) @@ -1127,10 +1120,9 @@ static void _dt_collection_changed_callback(gpointer instance, dt_collection_properties_t changed_property, const gpointer imgs, const int next, - gpointer user_data) + dt_thumbnail_t *thumb) { - if(!user_data || !imgs) return; - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; + if(!thumb || !imgs) return; for(const GList *i = imgs; i; i = g_list_next(i)) { if(GPOINTER_TO_INT(i->data) == thumb->imgid) @@ -1162,20 +1154,17 @@ void dt_thumbnail_update_selection(dt_thumbnail_t *thumb) } static void _dt_selection_changed_callback(gpointer instance, - gpointer user_data) + dt_thumbnail_t *thumb) { - if(!user_data) + if(!thumb) return; - dt_thumbnail_update_selection((dt_thumbnail_t *)user_data); + dt_thumbnail_update_selection(thumb); } static void _dt_active_images_callback(gpointer instance, - gpointer user_data) + dt_thumbnail_t *thumb) { - if(!user_data) - return; - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; - + if(!thumb) return; gboolean active = FALSE; for(GSList *l = darktable.view_manager->active_images; l; @@ -1202,10 +1191,9 @@ static void _dt_active_images_callback(gpointer instance, } static void _dt_preview_updated_callback(gpointer instance, - gpointer user_data) + dt_thumbnail_t *thumb) { - if(!user_data) return; - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; + if(!thumb) return; if(!gtk_widget_is_visible(thumb->w_main)) return; if(dt_view_get_current() == DT_VIEW_DARKROOM @@ -1221,10 +1209,9 @@ static void _dt_preview_updated_callback(gpointer instance, static void _dt_mipmaps_updated_callback(gpointer instance, const dt_imgid_t imgid, - gpointer user_data) + dt_thumbnail_t *thumb) { - if(!user_data) return; - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; + if(!thumb) return; if(dt_is_valid_imgid(imgid) && thumb->imgid != imgid) return; // we recompte the history tooltip if needed @@ -1237,9 +1224,8 @@ static void _dt_mipmaps_updated_callback(gpointer instance, static gboolean _event_box_enter_leave(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) + dt_thumbnail_t *thumb) { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; // if we leave for ancestor, that means we leave for blank thumbtable area if(event->type == GDK_LEAVE_NOTIFY && event->detail == GDK_NOTIFY_ANCESTOR) @@ -1258,10 +1244,8 @@ static gboolean _event_box_enter_leave(GtkWidget *widget, static gboolean _event_image_enter_leave(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) + dt_thumbnail_t *thumb) { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; - // we ensure that the image has mouse over if(!thumb->mouse_over && event->type == GDK_ENTER_NOTIFY && !thumb->disable_mouseover) @@ -1274,10 +1258,8 @@ static gboolean _event_image_enter_leave(GtkWidget *widget, static gboolean _event_btn_enter_leave(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) + dt_thumbnail_t *thumb) { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; - darktable.control->element = (event->type == GDK_ENTER_NOTIFY && widget == thumb->w_reject) ? DT_VIEW_REJECT @@ -1300,9 +1282,8 @@ static gboolean _event_btn_enter_leave(GtkWidget *widget, static gboolean _event_star_enter(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) + dt_thumbnail_t *thumb) { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; if(thumb->disable_actions) return TRUE; if(!thumb->mouse_over && !thumb->disable_mouseover) dt_control_set_mouse_over_id(thumb->imgid); @@ -1326,9 +1307,8 @@ static gboolean _event_star_enter(GtkWidget *widget, } static gboolean _event_star_leave(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) + dt_thumbnail_t *thumb) { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; // if we leave for ancestor, that means we leave for blank thumbtable area if(event->type == GDK_LEAVE_NOTIFY && event->detail == GDK_NOTIFY_ANCESTOR) @@ -1345,7 +1325,7 @@ static gboolean _event_star_leave(GtkWidget *widget, static gboolean _event_main_leave(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) + dt_thumbnail_t *thumb) { // if we leave for ancestor, that means we leave for blank thumbtable area if(event->detail == GDK_NOTIFY_ANCESTOR) dt_control_set_mouse_over_id(NO_IMGID); @@ -1358,9 +1338,9 @@ static gboolean _event_main_drag_motion(GtkWidget *widget, const gint x, const gint y, const guint time, - gpointer user_data) + dt_thumbnail_t *thumb) { - _event_main_motion(widget, NULL, user_data); + _event_main_motion(widget, NULL, thumb); return TRUE; } @@ -1402,7 +1382,7 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, // all dragging actions take place inside thumbatble.c gtk_drag_dest_set(thumb->w_main, GTK_DEST_DEFAULT_MOTION, target_list_all, n_targets_all, GDK_ACTION_MOVE); - g_signal_connect(G_OBJECT(thumb->w_main), "drag-motion", + g_signal_connect(thumb->w_main, "drag-motion", G_CALLBACK(_event_main_drag_motion), thumb); g_object_set_data(G_OBJECT(thumb->w_main), "thumb", thumb); @@ -1421,9 +1401,9 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); gtk_widget_set_name(thumb->w_back, "thumb-back"); - g_signal_connect(G_OBJECT(thumb->w_back), "motion-notify-event", + g_signal_connect(thumb->w_back, "motion-notify-event", G_CALLBACK(_event_main_motion), thumb); - g_signal_connect(G_OBJECT(thumb->w_back), "leave-notify-event", + g_signal_connect(thumb->w_back, "leave-notify-event", G_CALLBACK(_event_main_leave), thumb); gtk_widget_show(thumb->w_back); gtk_container_add(GTK_CONTAINER(thumb->w_main), thumb->w_back); @@ -1454,11 +1434,11 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, | GDK_STRUCTURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); - g_signal_connect(G_OBJECT(evt_image), "motion-notify-event", + g_signal_connect(evt_image, "motion-notify-event", G_CALLBACK(_event_main_motion), thumb); - g_signal_connect(G_OBJECT(evt_image), "enter-notify-event", + g_signal_connect(evt_image, "enter-notify-event", G_CALLBACK(_event_image_enter_leave), thumb); - g_signal_connect(G_OBJECT(evt_image), "leave-notify-event", + g_signal_connect(evt_image, "leave-notify-event", G_CALLBACK(_event_image_enter_leave), thumb); gtk_widget_show(evt_image); gtk_overlay_add_overlay(GTK_OVERLAY(thumb->w_image_box), evt_image); @@ -1471,15 +1451,15 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); - g_signal_connect(G_OBJECT(thumb->w_image), "draw", + g_signal_connect(thumb->w_image, "draw", G_CALLBACK(_event_image_draw), thumb); - g_signal_connect(G_OBJECT(thumb->w_image), "motion-notify-event", + g_signal_connect(thumb->w_image, "motion-notify-event", G_CALLBACK(_event_main_motion), thumb); - g_signal_connect(G_OBJECT(thumb->w_image), "enter-notify-event", + g_signal_connect(thumb->w_image, "enter-notify-event", G_CALLBACK(_event_image_enter_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_image), "leave-notify-event", + g_signal_connect(thumb->w_image, "leave-notify-event", G_CALLBACK(_event_image_enter_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_image), "style-updated", + g_signal_connect(thumb->w_image, "style-updated", G_CALLBACK(_event_image_style_updated), thumb); gtk_widget_show(thumb->w_image); gtk_overlay_add_overlay(GTK_OVERLAY(thumb->w_image_box), thumb->w_image); @@ -1490,7 +1470,7 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, gtk_widget_set_name(thumb->w_cursor, "thumb-cursor"); gtk_widget_set_valign(thumb->w_cursor, GTK_ALIGN_START); gtk_widget_set_halign(thumb->w_cursor, GTK_ALIGN_CENTER); - g_signal_connect(G_OBJECT(thumb->w_cursor), "draw", + g_signal_connect(thumb->w_cursor, "draw", G_CALLBACK(_event_cursor_draw), thumb); gtk_overlay_add_overlay(GTK_OVERLAY(thumb->w_main), thumb->w_cursor); @@ -1502,10 +1482,10 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, // the infos background thumb->w_bottom_eb = gtk_event_box_new(); gtk_widget_set_name(thumb->w_bottom_eb, "thumb-bottom"); - g_signal_connect(G_OBJECT(thumb->w_bottom_eb), "enter-notify-event", + g_signal_connect(thumb->w_bottom_eb, "enter-notify-event", G_CALLBACK(_event_box_enter_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_bottom_eb), "leave-notify-event", + g_signal_connect(thumb->w_bottom_eb, "leave-notify-event", G_CALLBACK(_event_box_enter_leave), thumb); gtk_widget_set_valign(thumb->w_bottom_eb, GTK_ALIGN_END); @@ -1541,13 +1521,13 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, gtk_widget_set_valign(thumb->w_reject, GTK_ALIGN_END); gtk_widget_set_halign(thumb->w_reject, GTK_ALIGN_START); gtk_widget_show(thumb->w_reject); - g_signal_connect(G_OBJECT(thumb->w_reject), "button-press-event", + g_signal_connect(thumb->w_reject, "button-press-event", G_CALLBACK(_event_rating_press), thumb); - g_signal_connect(G_OBJECT(thumb->w_reject), "button-release-event", + g_signal_connect(thumb->w_reject, "button-release-event", G_CALLBACK(_event_rating_release), thumb); - g_signal_connect(G_OBJECT(thumb->w_reject), "enter-notify-event", + g_signal_connect(thumb->w_reject, "enter-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_reject), "leave-notify-event", + g_signal_connect(thumb->w_reject, "leave-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); gtk_overlay_add_overlay(GTK_OVERLAY(overlays_parent), thumb->w_reject); @@ -1555,13 +1535,13 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, for(int i = 0; i < MAX_STARS; i++) { thumb->w_stars[i] = dtgtk_thumbnail_btn_new(dtgtk_cairo_paint_star, 0, NULL); - g_signal_connect(G_OBJECT(thumb->w_stars[i]), "enter-notify-event", + g_signal_connect(thumb->w_stars[i], "enter-notify-event", G_CALLBACK(_event_star_enter), thumb); - g_signal_connect(G_OBJECT(thumb->w_stars[i]), "leave-notify-event", + g_signal_connect(thumb->w_stars[i], "leave-notify-event", G_CALLBACK(_event_star_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_stars[i]), "button-press-event", + g_signal_connect(thumb->w_stars[i], "button-press-event", G_CALLBACK(_event_rating_press), thumb); - g_signal_connect(G_OBJECT(thumb->w_stars[i]), "button-release-event", + g_signal_connect(thumb->w_stars[i], "button-release-event", G_CALLBACK(_event_rating_release), thumb); gtk_widget_set_name(thumb->w_stars[i], "thumb-star"); @@ -1582,9 +1562,9 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, gtk_widget_set_valign(thumb->w_color, GTK_ALIGN_END); gtk_widget_set_halign(thumb->w_color, GTK_ALIGN_END); gtk_widget_set_no_show_all(thumb->w_color, TRUE); - g_signal_connect(G_OBJECT(thumb->w_color), "enter-notify-event", + g_signal_connect(thumb->w_color, "enter-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_color), "leave-notify-event", + g_signal_connect(thumb->w_color, "leave-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); gtk_overlay_add_overlay(GTK_OVERLAY(overlays_parent), thumb->w_color); @@ -1595,10 +1575,10 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, gtk_widget_set_valign(thumb->w_local_copy, GTK_ALIGN_START); gtk_widget_set_halign(thumb->w_local_copy, GTK_ALIGN_END); gtk_widget_set_no_show_all(thumb->w_local_copy, TRUE); - g_signal_connect(G_OBJECT(thumb->w_local_copy), "enter-notify-event", + g_signal_connect(thumb->w_local_copy, "enter-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_local_copy), "leave-notify-event", + g_signal_connect(thumb->w_local_copy, "leave-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); gtk_overlay_add_overlay(GTK_OVERLAY(overlays_parent), thumb->w_local_copy); @@ -1609,9 +1589,9 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, gtk_widget_set_valign(thumb->w_altered, GTK_ALIGN_START); gtk_widget_set_halign(thumb->w_altered, GTK_ALIGN_END); gtk_widget_set_no_show_all(thumb->w_altered, TRUE); - g_signal_connect(G_OBJECT(thumb->w_altered), "enter-notify-event", + g_signal_connect(thumb->w_altered, "enter-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_altered), "leave-notify-event", + g_signal_connect(thumb->w_altered, "leave-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); gtk_overlay_add_overlay(GTK_OVERLAY(overlays_parent), thumb->w_altered); @@ -1621,20 +1601,20 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, gtk_widget_set_valign(thumb->w_tags, GTK_ALIGN_START); gtk_widget_set_halign(thumb->w_tags, GTK_ALIGN_END); gtk_widget_set_no_show_all(thumb->w_tags, TRUE); - g_signal_connect(G_OBJECT(thumb->w_tags), "enter-notify-event", + g_signal_connect(thumb->w_tags, "enter-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_tags), "leave-notify-event", + g_signal_connect(thumb->w_tags, "leave-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); gtk_overlay_add_overlay(GTK_OVERLAY(overlays_parent), thumb->w_tags); // the group bouton thumb->w_group = dtgtk_thumbnail_btn_new(dtgtk_cairo_paint_grouping, 0, NULL); gtk_widget_set_name(thumb->w_group, "thumb-group-audio"); - g_signal_connect(G_OBJECT(thumb->w_group), "button-release-event", + g_signal_connect(thumb->w_group, "button-release-event", G_CALLBACK(_event_grouping_release), thumb); - g_signal_connect(G_OBJECT(thumb->w_group), "enter-notify-event", + g_signal_connect(thumb->w_group, "enter-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_group), "leave-notify-event", + g_signal_connect(thumb->w_group, "leave-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); gtk_widget_set_valign(thumb->w_group, GTK_ALIGN_START); gtk_widget_set_halign(thumb->w_group, GTK_ALIGN_END); @@ -1644,11 +1624,11 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, // the sound icon thumb->w_audio = dtgtk_thumbnail_btn_new(dtgtk_cairo_paint_audio, 0, NULL); gtk_widget_set_name(thumb->w_audio, "thumb-group-audio"); - g_signal_connect(G_OBJECT(thumb->w_audio), "button-release-event", + g_signal_connect(thumb->w_audio, "button-release-event", G_CALLBACK(_event_audio_release), thumb); - g_signal_connect(G_OBJECT(thumb->w_audio), "enter-notify-event", + g_signal_connect(thumb->w_audio, "enter-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); - g_signal_connect(G_OBJECT(thumb->w_audio), "leave-notify-event", + g_signal_connect(thumb->w_audio, "leave-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); gtk_widget_set_valign(thumb->w_audio, GTK_ALIGN_START); gtk_widget_set_halign(thumb->w_audio, GTK_ALIGN_END); @@ -1657,7 +1637,7 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, // the zoom indicator thumb->w_zoom_eb = gtk_event_box_new(); - g_signal_connect(G_OBJECT(thumb->w_zoom_eb), "enter-notify-event", + g_signal_connect(thumb->w_zoom_eb, "enter-notify-event", G_CALLBACK(_event_btn_enter_leave), thumb); gtk_widget_set_name(thumb->w_zoom_eb, "thumb-zoom"); gtk_widget_set_valign(thumb->w_zoom_eb, GTK_ALIGN_START); diff --git a/src/dtgtk/thumbtable.c b/src/dtgtk/thumbtable.c index e85e6d87203e..8859ccfd4cb3 100644 --- a/src/dtgtk/thumbtable.c +++ b/src/dtgtk/thumbtable.c @@ -1479,7 +1479,7 @@ static gboolean _event_button_press(GtkWidget *widget, if(event->x < button->x && event->x > button->x - button->width && event->y < button->y && event->y > button->y - button->height) { - dt_gui_show_help(NULL); + dt_gui_show_help(NULL, NULL); } return TRUE; @@ -2461,19 +2461,19 @@ dt_thumbtable_t *dt_thumbtable_new() g_signal_connect(table->widget, "drag-data-received", G_CALLBACK(dt_thumbtable_event_dnd_received), table); - g_signal_connect(G_OBJECT(table->widget), "scroll-event", + g_signal_connect(table->widget, "scroll-event", G_CALLBACK(_event_scroll), table); - g_signal_connect(G_OBJECT(table->widget), "draw", + g_signal_connect(table->widget, "draw", G_CALLBACK(_event_draw), table); - g_signal_connect(G_OBJECT(table->widget), "leave-notify-event", + g_signal_connect(table->widget, "leave-notify-event", G_CALLBACK(_event_leave_notify), table); - g_signal_connect(G_OBJECT(table->widget), "enter-notify-event", + g_signal_connect(table->widget, "enter-notify-event", G_CALLBACK(_event_enter_notify), table); - g_signal_connect(G_OBJECT(table->widget), "button-press-event", + g_signal_connect(table->widget, "button-press-event", G_CALLBACK(_event_button_press), table); - g_signal_connect(G_OBJECT(table->widget), "motion-notify-event", + g_signal_connect(table->widget, "motion-notify-event", G_CALLBACK(_event_motion_notify), table); - g_signal_connect(G_OBJECT(table->widget), "button-release-event", + g_signal_connect(table->widget, "button-release-event", G_CALLBACK(_event_button_release), table); // we register globals signals diff --git a/src/dtgtk/togglebutton.c b/src/dtgtk/togglebutton.c index 5a978d2b3078..a6c8cf004901 100644 --- a/src/dtgtk/togglebutton.c +++ b/src/dtgtk/togglebutton.c @@ -141,7 +141,7 @@ GtkWidget *dtgtk_togglebutton_new(DTGTKCairoPaintIconFunc paint, gint paintflags gtk_container_add(GTK_CONTAINER(button), button->canvas); dt_gui_add_class(GTK_WIDGET(button), "dt_module_btn"); gtk_widget_set_name(GTK_WIDGET(button->canvas), "button-canvas"); - g_signal_connect(G_OBJECT(button), "toggled", G_CALLBACK(gtk_widget_queue_draw), NULL); + g_signal_connect(GTK_WIDGET(button), "toggled", G_CALLBACK((GtkCallback)gtk_widget_queue_draw), NULL); return (GtkWidget *)button; } diff --git a/src/gui/about.c b/src/gui/about.c index cb0295b9f493..d3f109f4026b 100644 --- a/src/gui/about.c +++ b/src/gui/about.c @@ -22,7 +22,7 @@ #include "osx/osx.h" #endif -void darktable_show_about_dialog() +void darktable_show_about_dialog(void) { GtkWidget *dialog = gtk_about_dialog_new(); gtk_widget_set_name (dialog, "about-dialog"); diff --git a/src/gui/about.h b/src/gui/about.h index 9bec9cd2f330..cb26f57d2070 100644 --- a/src/gui/about.h +++ b/src/gui/about.h @@ -16,4 +16,4 @@ along with darktable. If not, see . */ -void darktable_show_about_dialog(); +void darktable_show_about_dialog(void); diff --git a/src/gui/accelerators.c b/src/gui/accelerators.c index c650e17598ea..c447e875e4f4 100644 --- a/src/gui/accelerators.c +++ b/src/gui/accelerators.c @@ -1219,7 +1219,7 @@ gboolean dt_shortcut_tooltip_callback(GtkWidget *widget, gtk_widget_show_all(vbox); gtk_tooltip_set_custom(tooltip, vbox); - g_signal_connect(G_OBJECT(vbox), "size-allocate", G_CALLBACK(_tooltip_reposition), widget); + g_signal_connect(vbox, "size-allocate", G_CALLBACK(_tooltip_reposition), widget); return TRUE; } @@ -1779,11 +1779,9 @@ static void _element_editing_started(GtkCellRenderer *renderer, static void _element_changed(GtkCellRendererCombo *combo, char *path_string, GtkTreeIter *new_iter, - gpointer data) + GtkTreeModel *model) { - dt_shortcut_t *s = _find_edited_shortcut(data, path_string); - - GtkTreeModel *model = NULL; + dt_shortcut_t *s = _find_edited_shortcut(model, path_string); g_object_get(combo, "model", &model, NULL); GtkTreePath *path = gtk_tree_model_get_path(model, new_iter); const gint new_index = gtk_tree_path_get_indices(path)[0]; @@ -1902,11 +1900,9 @@ static void _effect_editing_started(GtkCellRenderer *renderer, static void _effect_changed(GtkCellRendererCombo *combo, char *path_string, GtkTreeIter *new_iter, - gpointer data) + GtkTreeModel *model) { - dt_shortcut_t *s = _find_edited_shortcut(data, path_string); - - GtkTreeModel *model = NULL; + dt_shortcut_t *s = _find_edited_shortcut(model, path_string); g_object_get(combo, "model", &model, NULL); GtkTreePath *path = gtk_tree_model_get_path(model, new_iter); const gint new_index = s->effect = gtk_tree_path_get_indices(path)[0]; @@ -1986,18 +1982,17 @@ static void _shortcut_row_activated(GtkTreeView *tree_view, _grab_in_tree_view(tree_view); } -static gboolean _view_key_pressed(GtkWidget *widget, +static gboolean _view_key_pressed(GtkTreeView *view, GdkEventKey *event, - gpointer user_data) + GtkSearchEntry *search) { - GtkTreeView *view = GTK_TREE_VIEW(widget); GtkTreeSelection *selection = gtk_tree_view_get_selection(view); GtkTreeIter iter; GtkTreeModel *model = NULL; if(gtk_tree_selection_get_selected(selection, &model, &iter)) { - if(!strcmp(gtk_widget_get_name(widget), "actions_view")) + if(!strcmp(gtk_widget_get_name(GTK_WIDGET(view)), "actions_view")) { // if control key pressed, copy lua command to clipboard (CTRL+C will work) if(dt_modifier_is(event->state, GDK_CONTROL_MASK)) @@ -2043,7 +2038,7 @@ static gboolean _view_key_pressed(GtkWidget *widget, } } - return dt_gui_search_start(widget, event, user_data); + return dt_gui_search_start(GTK_WIDGET(view), event, search); } static void _add_shortcuts_to_tree() @@ -2211,7 +2206,7 @@ static gboolean _shortcut_selection_function(GtkTreeSelection *selection, } static void _shortcut_selection_changed(GtkTreeSelection *selection, - gpointer data) + GtkTreeView *view) { GtkTreeModel *model = NULL; GtkTreeIter iter; @@ -2225,7 +2220,7 @@ static void _shortcut_selection_changed(GtkTreeSelection *selection, else _selected_shortcut = NULL; - gtk_widget_queue_draw(GTK_WIDGET(data)); + gtk_widget_queue_draw(GTK_WIDGET(view)); } static gboolean _action_find_and_expand(GtkTreeModel *model, @@ -2258,11 +2253,10 @@ static gboolean _action_find_and_expand(GtkTreeModel *model, return FALSE; } -static gboolean _action_view_click(GtkWidget *widget, +static gboolean _action_view_click(GtkTreeView *view, GdkEventButton *event, - gpointer data) + gpointer user_data) { - GtkTreeView *view = GTK_TREE_VIEW(widget); GtkTreeModel *model = gtk_tree_view_get_model(view); if(event->button == GDK_BUTTON_PRIMARY) @@ -2289,7 +2283,7 @@ static gboolean _action_view_click(GtkWidget *widget, gtk_tree_view_set_cursor(view, path, NULL, FALSE); } - gtk_widget_grab_focus(widget); + gtk_widget_grab_focus(GTK_WIDGET(view)); } else gtk_tree_selection_unselect_all(selection); @@ -2320,7 +2314,7 @@ static gboolean _action_view_show(GtkTreeView *view, } static void _action_selection_changed(GtkTreeSelection *selection, - gpointer data) + GtkTreeView *shortcuts_view) { GtkTreeIter iter; GtkTreeModel *model = NULL; @@ -2337,7 +2331,6 @@ static void _action_selection_changed(GtkTreeSelection *selection, gtk_tree_path_free(path); } - GtkTreeView *shortcuts_view = GTK_TREE_VIEW(data); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER (gtk_tree_view_get_model(shortcuts_view))); gtk_tree_view_expand_all(shortcuts_view); @@ -2507,12 +2500,11 @@ static void _shortcuts_load(const gchar *shortcuts_file, const dt_input_device_t load_dev, const gboolean clear); -static void _fallbacks_toggled(GtkToggleButton *button, gpointer data) +static void _fallbacks_toggled(GtkWidget *button, GtkTreeView *shortcuts_view) { dt_conf_set_bool("accel/enable_fallbacks", (darktable.control->enable_fallbacks = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))); - GtkTreeView *shortcuts_view = GTK_TREE_VIEW(data); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER (gtk_tree_view_get_model(shortcuts_view))); } @@ -2570,8 +2562,8 @@ static void _restore_clicked(GtkButton *button, gpointer user_data) dt_shortcuts_save(NULL, FALSE); } -static void _import_export_dev_changed(GtkComboBox *widget, - gpointer user_data) +static void _import_export_dev_changed(GtkWidget *widget, + GtkWidget *user_data) { gint dev = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); g_object_set_data(G_OBJECT(user_data), "device", GINT_TO_POINTER(dev)); @@ -2580,8 +2572,8 @@ static void _import_export_dev_changed(GtkComboBox *widget, gtk_widget_set_visible(gtk_widget_get_parent(GTK_WIDGET(user_data)), dev > 1); } -static void _export_id_changed(GtkComboBox *widget, - gpointer user_data) +static void _export_id_changed(GtkWidget *widget, + GtkWidget *user_data) { gint dev = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "device")); gint id = dev <= 1 ? 0 : @@ -2671,9 +2663,9 @@ static void _export_clicked(GtkButton *button, gpointer user_data) g_object_unref(chooser); } -static void _import_id_changed(GtkComboBox *widget, gpointer user_data) +static void _import_id_changed(GtkWidget *widget, GtkWidget *user_data) { - gint id = gtk_combo_box_get_active(widget); + gint id = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); gtk_combo_box_set_active(GTK_COMBO_BOX(user_data), id); } @@ -2891,14 +2883,14 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget) g_object_unref(G_OBJECT(filtered_shortcuts)); gtk_tree_view_set_search_column(shortcuts_view, 0); // fake column for _search_func gtk_tree_view_set_search_equal_func(shortcuts_view, _search_func, shortcuts_view, NULL); - GtkWidget *search_shortcuts = gtk_search_entry_new(); + GtkSearchEntry *search_shortcuts = GTK_SEARCH_ENTRY(gtk_search_entry_new()); gtk_entry_set_placeholder_text(GTK_ENTRY(search_shortcuts), _("search shortcuts list")); gtk_widget_set_tooltip_text(GTK_WIDGET(search_shortcuts), _("incrementally search the list of shortcuts\npress up or down keys to cycle through matches")); - g_signal_connect(G_OBJECT(search_shortcuts), "activate", + g_signal_connect(search_shortcuts, "activate", G_CALLBACK(dt_gui_search_stop), shortcuts_view); - g_signal_connect(G_OBJECT(search_shortcuts), "stop-search", + g_signal_connect(search_shortcuts, "stop-search", G_CALLBACK(dt_gui_search_stop), shortcuts_view); gtk_tree_view_set_search_entry(shortcuts_view, GTK_ENTRY(search_shortcuts)); @@ -2906,11 +2898,11 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget) _shortcut_selection_function, NULL, NULL); g_object_set(shortcuts_view, "has-tooltip", TRUE, NULL); gtk_widget_set_name(GTK_WIDGET(shortcuts_view), "shortcuts_view"); - g_signal_connect(G_OBJECT(shortcuts_view), "row-activated", + g_signal_connect(shortcuts_view, "row-activated", G_CALLBACK(_shortcut_row_activated), filtered_shortcuts); - g_signal_connect(G_OBJECT(shortcuts_view), "key-press-event", + g_signal_connect(shortcuts_view, "key-press-event", G_CALLBACK(_view_key_pressed), search_shortcuts); - g_signal_connect(G_OBJECT(_shortcuts_store), "row-inserted", + g_signal_connect(_shortcuts_store, "row-inserted", G_CALLBACK(_shortcut_row_inserted), shortcuts_view); // Setting up the cell renderers @@ -2927,7 +2919,8 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget) g_object_set(renderer, "model", elements, "text-column", 0, "has-entry", FALSE, NULL); g_signal_connect(renderer, "editing-started" , G_CALLBACK(_element_editing_started), filtered_shortcuts); - g_signal_connect(renderer, "changed", G_CALLBACK(_element_changed), filtered_shortcuts); + g_signal_connect(GTK_CELL_RENDERER_COMBO(renderer), "changed", + G_CALLBACK(_element_changed), filtered_shortcuts); _add_prefs_column(shortcuts_view, renderer, _("element"), SHORTCUT_VIEW_ELEMENT); renderer = gtk_cell_renderer_combo_new(); @@ -2935,7 +2928,8 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget) g_object_set(renderer, "model", effects, "text-column", 0, "has-entry", FALSE, NULL); g_signal_connect(renderer, "editing-started" , G_CALLBACK(_effect_editing_started), filtered_shortcuts); - g_signal_connect(renderer, "changed", G_CALLBACK(_effect_changed), filtered_shortcuts); + g_signal_connect(GTK_CELL_RENDERER_COMBO(renderer), "changed", + G_CALLBACK(_effect_changed), filtered_shortcuts); _add_prefs_column(shortcuts_view, renderer, _("effect"), SHORTCUT_VIEW_EFFECT); renderer = gtk_cell_renderer_spin_new(); @@ -2992,29 +2986,29 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget) g_object_unref(_actions_store); gtk_tree_view_set_search_column(actions_view, 1); // fake column for _search_func gtk_tree_view_set_search_equal_func(actions_view, _search_func, actions_view, NULL); - GtkWidget *search_actions = gtk_search_entry_new(); + GtkSearchEntry *search_actions = GTK_SEARCH_ENTRY(gtk_search_entry_new()); gtk_entry_set_placeholder_text(GTK_ENTRY(search_actions), _("search actions list")); gtk_widget_set_tooltip_text(GTK_WIDGET(search_actions), _("incrementally search the list of actions\npress up or down keys to cycle through matches")); - g_signal_connect(G_OBJECT(search_actions), "activate", + g_signal_connect(search_actions, "activate", G_CALLBACK(dt_gui_search_stop), actions_view); - g_signal_connect(G_OBJECT(search_actions), "stop-search", + g_signal_connect(search_actions, "stop-search", G_CALLBACK(dt_gui_search_stop), actions_view); gtk_tree_view_set_search_entry(actions_view, GTK_ENTRY(search_actions)); g_object_set(actions_view, "has-tooltip", TRUE, NULL); gtk_widget_set_name(GTK_WIDGET(actions_view), "actions_view"); - g_signal_connect(G_OBJECT(actions_view), "row-activated", + g_signal_connect(actions_view, "row-activated", G_CALLBACK(_action_row_activated), _actions_store); - g_signal_connect(G_OBJECT(actions_view), "button-press-event", - G_CALLBACK(_action_view_click), _actions_store); - g_signal_connect(G_OBJECT(actions_view), "key-press-event", + g_signal_connect(actions_view, "button-press-event", + G_CALLBACK(_action_view_click), NULL); + g_signal_connect(actions_view, "key-press-event", G_CALLBACK(_view_key_pressed), search_actions); - g_signal_connect(G_OBJECT(gtk_tree_view_get_selection(actions_view)), "changed", + g_signal_connect(gtk_tree_view_get_selection(actions_view), "changed", G_CALLBACK(_action_selection_changed), shortcuts_view); - g_signal_connect(G_OBJECT(gtk_tree_view_get_selection(shortcuts_view)), "changed", + g_signal_connect(gtk_tree_view_get_selection(shortcuts_view), "changed", G_CALLBACK(_shortcut_selection_changed), actions_view); renderer = gtk_cell_renderer_text_new(); @@ -3053,7 +3047,7 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget) const int split_position = dt_conf_get_int("shortcuts/window_split"); if(split_position) gtk_paned_set_position(GTK_PANED(container), split_position); - g_signal_connect(G_OBJECT(container), "notify::position", + g_signal_connect(container, "notify::position", G_CALLBACK(_resize_shortcuts_view), container); GtkWidget *btn_fallbacks = gtk_check_button_new_with_label(_("enable fallbacks")); @@ -3070,20 +3064,19 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget) GtkWidget *btn_restore = gtk_button_new_with_label(_("restore...")); gtk_widget_set_tooltip_text(btn_restore, _("restore default shortcuts or previous state")); - g_signal_connect(btn_restore, "clicked", G_CALLBACK(_restore_clicked), NULL); + g_signal_connect(GTK_BUTTON(btn_restore), "clicked", G_CALLBACK(_restore_clicked), NULL); GtkWidget *btn_importx = gtk_button_new_with_label(_("import extras")); gtk_widget_set_tooltip_text(btn_importx, _("import extended default shortcuts")); - g_signal_connect(btn_importx, "clicked", G_CALLBACK(_import_extended_clicked), NULL); + g_signal_connect(GTK_BUTTON(btn_importx), "clicked", G_CALLBACK(_import_extended_clicked), NULL); GtkWidget *btn_import = gtk_button_new_with_label(_("import...")); gtk_widget_set_tooltip_text(btn_import, _("fully or partially import shortcuts from file")); - g_signal_connect(btn_import, "clicked", G_CALLBACK(_import_clicked), NULL); + g_signal_connect(GTK_BUTTON(btn_import), "clicked", G_CALLBACK(_import_clicked), NULL); GtkWidget *btn_export = gtk_button_new_with_label(_("export...")); gtk_widget_set_tooltip_text(btn_export, _("fully or partially export shortcuts to file")); - g_signal_connect(btn_export, "clicked", G_CALLBACK(_export_clicked), NULL); - + g_signal_connect(GTK_BUTTON(btn_export), "clicked", G_CALLBACK(_export_clicked), NULL); GtkWidget *button_bar = dt_gui_hbox(search_actions, search_shortcuts, btn_fallbacks, dt_gui_align_right(btn_help), btn_export, btn_importx, btn_import, btn_restore); @@ -4910,7 +4903,7 @@ dt_action_t *dt_action_define(dt_action_t *owner, } gtk_widget_set_has_tooltip(widget, TRUE); - g_signal_connect(G_OBJECT(widget), "leave-notify-event", + g_signal_connect(widget, "leave-notify-event", G_CALLBACK(_reset_element_on_leave), NULL); } } @@ -5259,7 +5252,7 @@ GtkWidget *dt_action_button_new(dt_lib_module_t *self, gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(button))), PANGO_ELLIPSIZE_END); if(tooltip) gtk_widget_set_tooltip_text(button, tooltip); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(callback), data); + g_signal_connect(button, "clicked", G_CALLBACK((GtkCallback)callback), data); if(self) { @@ -5285,7 +5278,7 @@ GtkWidget *dt_action_entry_new(dt_action_t *ac, gtk_entry_set_text (GTK_ENTRY(entry), text); if(tooltip) gtk_widget_set_tooltip_text(entry, tooltip); - g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(callback), data); + g_signal_connect(entry, "changed", G_CALLBACK((GtkCallback)callback), data); dt_action_define(ac, NULL, label, entry, &dt_action_def_entry); diff --git a/src/gui/color_picker_proxy.c b/src/gui/color_picker_proxy.c index e131a8fed818..8a337c9842af 100644 --- a/src/gui/color_picker_proxy.c +++ b/src/gui/color_picker_proxy.c @@ -404,7 +404,7 @@ static GtkWidget *_color_picker_new(dt_iop_module_t *module, color_picker->picker_cst = cst; color_picker->fixed_cst = TRUE; } - g_signal_connect_data(G_OBJECT(button), "button-press-event", + g_signal_connect_data(button, "button-press-event", G_CALLBACK(_color_picker_callback_button_press), color_picker, (GClosureNotify)g_free, 0); if(w) gtk_box_pack_start(GTK_BOX(w), button, FALSE, FALSE, 0); @@ -422,7 +422,7 @@ static GtkWidget *_color_picker_new(dt_iop_module_t *module, color_picker->picker_cst = cst; color_picker->fixed_cst = TRUE; } - g_signal_connect_data(G_OBJECT(w), "quad-pressed", + g_signal_connect_data(w, "quad-pressed", G_CALLBACK(_color_picker_callback), color_picker, (GClosureNotify)g_free, 0); diff --git a/src/gui/gtk.c b/src/gui/gtk.c index 228f9ad21f63..32fd7c7bbec0 100644 --- a/src/gui/gtk.c +++ b/src/gui/gtk.c @@ -752,10 +752,10 @@ static gboolean _borders_scrolled(GtkWidget *widget, return TRUE; } -static gboolean _scrollbar_changed(GtkWidget *widget, - gpointer user_data) +static void _scrollbar_changed(GtkWidget *widget, + gpointer user_data) { - if(darktable.gui->reset) return FALSE; + if(darktable.gui->reset) return; GtkAdjustment *adjustment_x = gtk_range_get_adjustment(GTK_RANGE(darktable.gui->scrollbars.hscrollbar)); @@ -766,8 +766,6 @@ static gboolean _scrollbar_changed(GtkWidget *widget, const gdouble value_y = gtk_adjustment_get_value(adjustment_y); dt_view_manager_scrollbar_changed(darktable.view_manager, value_x, value_y); - - return TRUE; } gboolean _valid_window_placement(const gint saved_x, @@ -1190,7 +1188,7 @@ static void _osx_add_view_menu_item(GtkWidget* menu, GtkWidget *mi = gtk_menu_item_new_with_label(label); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); gtk_widget_show(mi); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_osx_ctl_switch_mode_to), mode); } @@ -1342,13 +1340,13 @@ int dt_gui_gtk_init(dt_gui_gtk_t *gui) gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_manual); gtk_widget_show(help_manual); dt_gui_add_help_link(help_manual, "document_root"); - g_signal_connect(G_OBJECT(help_manual), "activate", + g_signal_connect(help_manual, "activate", G_CALLBACK(dt_gui_show_help), help_manual); GtkWidget *help_home = gtk_menu_item_new_with_label(C_("menu", "darktable Homepage")); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_home); gtk_widget_show(help_home); - g_signal_connect(G_OBJECT(help_home), "activate", + g_signal_connect(help_home, "activate", G_CALLBACK(_open_url), "https://www.darktable.org"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(help_root_menu), help_menu); @@ -1366,21 +1364,21 @@ int dt_gui_gtk_init(dt_gui_gtk_t *gui) // GTK automatically translates the item with index 0 so no need to localize. // Furthermore, the application name (darktable) is automatically appended. GtkWidget *mi_about = gtk_menu_item_new_with_label("About"); - g_signal_connect(G_OBJECT(mi_about), "activate", + g_signal_connect(mi_about, "activate", G_CALLBACK(darktable_show_about_dialog), NULL); gtkosx_application_insert_app_menu_item(OSXApp, mi_about, 0); GtkWidget *mi_prefs = gtk_menu_item_new_with_label(C_("menu", "Preferences")); - g_signal_connect(G_OBJECT(mi_prefs), "activate", + g_signal_connect(mi_prefs, "activate", G_CALLBACK(dt_gui_preferences_show), NULL); gtkosx_application_insert_app_menu_item(OSXApp, mi_prefs, 1); gtkosx_application_set_window_menu(OSXApp, GTK_MENU_ITEM(window_root_menu)); gtkosx_application_set_help_menu(OSXApp, GTK_MENU_ITEM(help_root_menu)); - g_signal_connect(G_OBJECT(OSXApp), "NSApplicationBlockTermination", + g_signal_connect(OSXApp, "NSApplicationBlockTermination", G_CALLBACK(_osx_quit_callback), NULL); - g_signal_connect(G_OBJECT(OSXApp), "NSApplicationOpenFile", + g_signal_connect(OSXApp, "NSApplicationOpenFile", G_CALLBACK(_osx_openfile_callback), NULL); #endif @@ -1431,7 +1429,7 @@ int dt_gui_gtk_init(dt_gui_gtk_t *gui) _init_widgets(gui); widget = dt_ui_center(darktable.gui->ui); - g_signal_connect(G_OBJECT(widget), "configure-event", + g_signal_connect(widget, "configure-event", G_CALLBACK(_configure), gui); for(int i = 2; i; i--, widget = dt_ui_snapshot(darktable.gui->ui)) { @@ -1440,19 +1438,19 @@ int dt_gui_gtk_init(dt_gui_gtk_t *gui) | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | darktable.gui->scroll_mask); - g_signal_connect(G_OBJECT(widget), "draw", + g_signal_connect(widget, "draw", G_CALLBACK(_draw), NULL); - g_signal_connect(G_OBJECT(widget), "motion-notify-event", + g_signal_connect(widget, "motion-notify-event", G_CALLBACK(_mouse_moved), gui); - g_signal_connect(G_OBJECT(widget), "leave-notify-event", + g_signal_connect(widget, "leave-notify-event", G_CALLBACK(_center_leave), NULL); - g_signal_connect(G_OBJECT(widget), "enter-notify-event", + g_signal_connect(widget, "enter-notify-event", G_CALLBACK(_center_enter), NULL); - g_signal_connect(G_OBJECT(widget), "button-press-event", + g_signal_connect(widget, "button-press-event", G_CALLBACK(_button_pressed), NULL); - g_signal_connect(G_OBJECT(widget), "button-release-event", + g_signal_connect(widget, "button-release-event", G_CALLBACK(_button_released), NULL); - g_signal_connect(G_OBJECT(widget), "scroll-event", + g_signal_connect(widget, "scroll-event", G_CALLBACK(_scrolled), NULL); } @@ -1460,11 +1458,11 @@ int dt_gui_gtk_init(dt_gui_gtk_t *gui) // leave-notify-event widget = darktable.gui->scrollbars.vscrollbar; - g_signal_connect(G_OBJECT(widget), "value-changed", + g_signal_connect(widget, "value-changed", G_CALLBACK(_scrollbar_changed), NULL); widget = darktable.gui->scrollbars.hscrollbar; - g_signal_connect(G_OBJECT(widget), "value-changed", + g_signal_connect(widget, "value-changed", G_CALLBACK(_scrollbar_changed), NULL); dt_action_t *pnl = dt_action_section(&darktable.control->actions_global, N_("panels")); @@ -1501,7 +1499,7 @@ int dt_gui_gtk_init(dt_gui_gtk_t *gui) */ // update the profile when the window is moved. resize is already handled in configure() widget = dt_ui_main_window(darktable.gui->ui); - g_signal_connect(G_OBJECT(widget), "configure-event", + g_signal_connect(widget, "configure-event", G_CALLBACK(_window_configure), NULL); g_signal_override_class_handler("query-tooltip", gtk_widget_get_type(), G_CALLBACK(dt_shortcut_tooltip_callback)); @@ -1590,7 +1588,7 @@ int dt_gui_gtk_init(dt_gui_gtk_t *gui) dtgtk_togglebutton_new(dtgtk_cairo_paint_focus_peaking, 0, NULL); gtk_widget_set_tooltip_text(darktable.gui->focus_peaking_button, _("toggle focus-peaking mode")); - g_signal_connect(G_OBJECT(darktable.gui->focus_peaking_button), "clicked", + g_signal_connect(darktable.gui->focus_peaking_button, "clicked", G_CALLBACK(_focuspeaking_switch_button_callback), NULL); _update_focus_peaking_button(); @@ -1689,27 +1687,19 @@ void dt_configure_ppd_dpi(dt_gui_gtk_t *gui) } static gboolean _focus_in_out_event(GtkWidget *widget, - GdkEvent *event, - const gpointer user_data) + GdkEventFocus *event, + GtkWidget *window) { - gtk_window_set_urgency_hint(GTK_WINDOW(user_data), FALSE); + gtk_window_set_urgency_hint(GTK_WINDOW(window), FALSE); return FALSE; } static gboolean _ui_log_button_press_event(GtkWidget *widget, GdkEvent *event, - const gpointer user_data) -{ - gtk_widget_hide(GTK_WIDGET(user_data)); - return TRUE; -} - -static gboolean _ui_toast_button_press_event(GtkWidget *widget, - GdkEvent *event, - const gpointer user_data) + GtkWidget *log) { - gtk_widget_hide(GTK_WIDGET(user_data)); + gtk_widget_hide(log); return TRUE; } @@ -1767,11 +1757,11 @@ static void _init_widgets(dt_gui_gtk_t *gui) gtk_window_set_icon_name(GTK_WINDOW(widget), "darktable"); gtk_window_set_title(GTK_WINDOW(widget), "darktable"); - g_signal_connect(G_OBJECT(widget), "delete_event", + g_signal_connect(widget, "delete-event", G_CALLBACK(_gui_quit_callback), NULL); - g_signal_connect(G_OBJECT(widget), "focus-in-event", + g_signal_connect(widget, "focus-in-event", G_CALLBACK(_focus_in_out_event), widget); - g_signal_connect(G_OBJECT(widget), "focus-out-event", + g_signal_connect(widget, "focus-out-event", G_CALLBACK(_focus_in_out_event), widget); container = widget; @@ -1866,7 +1856,7 @@ static void _init_main_table(GtkWidget *container) /* the log message */ GtkWidget *eb = gtk_event_box_new(); darktable.gui->ui->log_msg = gtk_label_new(""); - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_ui_log_button_press_event), darktable.gui->ui->log_msg); gtk_label_set_ellipsize(GTK_LABEL(darktable.gui->ui->log_msg), PANGO_ELLIPSIZE_MIDDLE); @@ -1880,11 +1870,11 @@ static void _init_main_table(GtkWidget *container) /* the toast message */ eb = gtk_event_box_new(); darktable.gui->ui->toast_msg = gtk_label_new(""); - g_signal_connect(G_OBJECT(eb), "button-press-event", - G_CALLBACK(_ui_toast_button_press_event), + g_signal_connect(eb, "button-press-event", + G_CALLBACK(_ui_log_button_press_event), darktable.gui->ui->toast_msg); gtk_widget_set_events(eb, GDK_BUTTON_PRESS_MASK | darktable.gui->scroll_mask); - g_signal_connect(G_OBJECT(eb), "scroll-event", G_CALLBACK(_scrolled), NULL); + g_signal_connect(eb, "scroll-event", G_CALLBACK(_scrolled), NULL); gtk_label_set_ellipsize(GTK_LABEL(darktable.gui->ui->toast_msg), PANGO_ELLIPSIZE_MIDDLE); PangoAttrList *attrlist = pango_attr_list_new(); @@ -2353,7 +2343,8 @@ static GtkWidget *_ui_init_panel_container_top(GtkWidget *container) } static gboolean _ui_init_panel_container_center_scroll_event(GtkWidget *widget, - const GdkEventScroll *event) + const GdkEventScroll *event, + gpointer user_data) { // just make sure nothing happens unless ctrl-alt are pressed: return (((event->state & gtk_accelerator_get_default_mod_mask()) @@ -2361,7 +2352,7 @@ static gboolean _ui_init_panel_container_center_scroll_event(GtkWidget *widget, != dt_conf_get_bool("darkroom/ui/sidebar_scroll_default")); } -static gboolean _on_drag_motion_drop(GtkWidget *empty, GdkDragContext *dc, const gint x, const gint y, const guint time, const gboolean drop) +static gboolean _on_drag_motion_drop(GtkWidget *empty, GdkDragContext *dc, const gint x, const gint y, const guint time, gpointer drop) { GtkWidget *widget = gtk_widget_get_parent(empty); if(drop) gtk_widget_set_opacity(gtk_drag_get_source_widget(dc), 1.0); @@ -2489,14 +2480,13 @@ static GtkWidget *_ui_init_panel_container_center(GtkWidget *container, gtk_scrolled_window_set_propagate_natural_width(GTK_SCROLLED_WINDOW(widget), TRUE); // we want the left/right window border to scroll the module lists - g_signal_connect(G_OBJECT(left - ? darktable.gui->widgets.right_border - : darktable.gui->widgets.left_border), + g_signal_connect(left ? darktable.gui->widgets.right_border + : darktable.gui->widgets.left_border, "scroll-event", G_CALLBACK(_borders_scrolled), widget); /* avoid scrolling with wheel, it's distracting (you'll end up over * a control, and scroll it's value) */ - g_signal_connect(G_OBJECT(widget), "scroll-event", + g_signal_connect(widget, "scroll-event", G_CALLBACK(_ui_init_panel_container_center_scroll_event), NULL); @@ -2532,7 +2522,7 @@ static GtkWidget *_ui_init_panel_container_bottom(GtkWidget *container) static gboolean _panel_handle_button_callback(GtkWidget *w, const GdkEventButton *e, - gpointer user_data) + GtkWidget *widget) { if(e->button == GDK_BUTTON_PRIMARY) { @@ -2563,7 +2553,7 @@ static gboolean _panel_handle_button_callback(GtkWidget *w, } static gboolean _panel_handle_cursor_callback(GtkWidget *w, const GdkEventCrossing *e, - gpointer user_data) + GtkWidget *widget) { if(strcmp(gtk_widget_get_name(w), "panel-handle-bottom") == 0) dt_control_change_cursor((e->type == GDK_ENTER_NOTIFY) @@ -2577,9 +2567,8 @@ static gboolean _panel_handle_cursor_callback(GtkWidget *w, } static gboolean _panel_handle_motion_callback(GtkWidget *w, const GdkEventMotion *e, - const gpointer user_data) + GtkWidget *widget) { - GtkWidget *widget = (GtkWidget *)user_data; if(darktable.gui->widgets.panel_handle_dragging) { gint sx = gtk_widget_get_allocated_width(widget); @@ -2639,15 +2628,15 @@ static void _ui_init_panel_left(dt_ui_t *ui, | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); gtk_widget_set_name(GTK_WIDGET(handle), "panel-handle-left"); - g_signal_connect(G_OBJECT(handle), "button-press-event", + g_signal_connect(handle, "button-press-event", G_CALLBACK(_panel_handle_button_callback), handle); - g_signal_connect(G_OBJECT(handle), "button-release-event", + g_signal_connect(handle, "button-release-event", G_CALLBACK(_panel_handle_button_callback), handle); - g_signal_connect(G_OBJECT(handle), "motion-notify-event", + g_signal_connect(handle, "motion-notify-event", G_CALLBACK(_panel_handle_motion_callback), widget); - g_signal_connect(G_OBJECT(handle), "leave-notify-event", + g_signal_connect(handle, "leave-notify-event", G_CALLBACK(_panel_handle_cursor_callback), handle); - g_signal_connect(G_OBJECT(handle), "enter-notify-event", + g_signal_connect(handle, "enter-notify-event", G_CALLBACK(_panel_handle_cursor_callback), handle); gtk_widget_show(handle); @@ -2689,15 +2678,15 @@ static void _ui_init_panel_right(dt_ui_t *ui, | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); gtk_widget_set_name(GTK_WIDGET(handle), "panel-handle-right"); - g_signal_connect(G_OBJECT(handle), "button-press-event", + g_signal_connect(handle, "button-press-event", G_CALLBACK(_panel_handle_button_callback), handle); - g_signal_connect(G_OBJECT(handle), "button-release-event", + g_signal_connect(handle, "button-release-event", G_CALLBACK(_panel_handle_button_callback), handle); - g_signal_connect(G_OBJECT(handle), "motion-notify-event", + g_signal_connect(handle, "motion-notify-event", G_CALLBACK(_panel_handle_motion_callback), widget); - g_signal_connect(G_OBJECT(handle), "leave-notify-event", + g_signal_connect(handle, "leave-notify-event", G_CALLBACK(_panel_handle_cursor_callback), handle); - g_signal_connect(G_OBJECT(handle), "enter-notify-event", + g_signal_connect(handle, "enter-notify-event", G_CALLBACK(_panel_handle_cursor_callback), handle); gtk_widget_show(handle); @@ -2776,15 +2765,15 @@ static void _ui_init_panel_bottom(dt_ui_t *ui, | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); gtk_widget_set_name(GTK_WIDGET(handle), "panel-handle-bottom"); - g_signal_connect(G_OBJECT(handle), "button-press-event", + g_signal_connect(handle, "button-press-event", G_CALLBACK(_panel_handle_button_callback), handle); - g_signal_connect(G_OBJECT(handle), "button-release-event", + g_signal_connect(handle, "button-release-event", G_CALLBACK(_panel_handle_button_callback), handle); - g_signal_connect(G_OBJECT(handle), "motion-notify-event", + g_signal_connect(handle, "motion-notify-event", G_CALLBACK(_panel_handle_motion_callback), widget); - g_signal_connect(G_OBJECT(handle), "leave-notify-event", + g_signal_connect(handle, "leave-notify-event", G_CALLBACK(_panel_handle_cursor_callback), handle); - g_signal_connect(G_OBJECT(handle), "enter-notify-event", + g_signal_connect(handle, "enter-notify-event", G_CALLBACK(_panel_handle_cursor_callback), handle); gtk_widget_show(handle); @@ -3061,7 +3050,7 @@ gboolean dt_gui_show_standalone_yes_no_dialog(const char *title, { button = gtk_button_new_with_mnemonic(no_text); result.button_no = button; - g_signal_connect(G_OBJECT(button), "clicked", + g_signal_connect(button, "clicked", G_CALLBACK(_yes_no_button_handler), &result); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); } @@ -3070,7 +3059,7 @@ gboolean dt_gui_show_standalone_yes_no_dialog(const char *title, { button = gtk_button_new_with_mnemonic(yes_text); result.button_yes = button; - g_signal_connect(G_OBJECT(button), "clicked", + g_signal_connect(button, "clicked", G_CALLBACK(_yes_no_button_handler), &result); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); } @@ -3148,7 +3137,7 @@ char *dt_gui_show_standalone_string_dialog(const char *title, { button = gtk_button_new_with_label(no_text); result.button_no = button; - g_signal_connect(G_OBJECT(button), "clicked", + g_signal_connect(button, "clicked", G_CALLBACK(_yes_no_button_handler), &result); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); } @@ -3157,7 +3146,7 @@ char *dt_gui_show_standalone_string_dialog(const char *title, { button = gtk_button_new_with_label(yes_text); result.button_yes = button; - g_signal_connect(G_OBJECT(button), "clicked", + g_signal_connect(button, "clicked", G_CALLBACK(_yes_no_button_handler), &result); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); } @@ -3274,7 +3263,7 @@ static char *_get_base_url() return base_url; } -void dt_gui_show_help(GtkWidget *widget) +void dt_gui_show_help(GtkWidget *widget, gpointer user_data) { // TODO: When the widget doesn't have a help url set we should // probably look at the parent(s) @@ -3603,7 +3592,7 @@ static void _reset_all_bauhaus(GtkNotebook *notebook, static void _notebook_size_callback(GtkNotebook *notebook, GdkRectangle *allocation, - gpointer *data) + gpointer data) { const int n = gtk_notebook_get_n_pages(notebook); g_return_if_fail(n > 0); @@ -3820,13 +3809,13 @@ GtkWidget *dt_ui_notebook_page(GtkNotebook *notebook, !g_signal_handler_find(G_OBJECT(notebook), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _notebook_size_callback, NULL)) { - g_signal_connect(G_OBJECT(notebook), "size-allocate", + g_signal_connect(notebook, "size-allocate", G_CALLBACK(_notebook_size_callback), NULL); - g_signal_connect(G_OBJECT(notebook), "motion-notify-event", + g_signal_connect(notebook, "motion-notify-event", G_CALLBACK(_notebook_motion_notify_callback), NULL); - g_signal_connect(G_OBJECT(notebook), "scroll-event", + g_signal_connect(notebook, "scroll-event", G_CALLBACK(_notebook_scroll_callback), NULL); - g_signal_connect(G_OBJECT(notebook), "button-press-event", + g_signal_connect(notebook, "button-press-event", G_CALLBACK(_notebook_button_press_callback), NULL); gtk_widget_add_events(GTK_WIDGET(notebook), darktable.gui->scroll_mask); } @@ -3915,8 +3904,8 @@ static gint _get_container_row_heigth(GtkWidget *w) } static gboolean _resize_wrap_draw(GtkWidget *w, - void *cr, - const char *config_str) + cairo_t *cr, + char *config_str) { GtkWidget *sw = gtk_widget_get_parent(w); if(GTK_IS_VIEWPORT(sw)) sw = gtk_widget_get_parent(sw); @@ -3972,7 +3961,7 @@ static gboolean _resize_wrap_draw(GtkWidget *w, static gboolean _resize_wrap_scroll(GtkScrolledWindow *sw, GdkEventScroll *event, - const char *config_str) + char *config_str) { // no move needed int delta_y = 0; @@ -4018,7 +4007,7 @@ static gboolean _resize_wrap_scroll(GtkScrolledWindow *sw, static gboolean _scroll_wrap_height(GtkWidget *w, const GdkEventScroll *event, - const char *config_str) + char *config_str) { if(dt_modifier_is(event->state, GDK_SHIFT_MASK | GDK_MOD1_MASK)) { @@ -4062,7 +4051,7 @@ static gboolean _resize_wrap_draw_handle(GtkWidget *w, static gboolean _resize_wrap_motion(GtkWidget *widget, const GdkEventMotion *event, - const char *config_str) + char *config_str) { if(_resize_wrap_dragging) { @@ -4094,7 +4083,7 @@ static gboolean _resize_wrap_motion(GtkWidget *widget, static gboolean _resize_wrap_button(GtkWidget *widget, const GdkEventButton *event, - const char *config_str) + char *config_str) { if(_resize_wrap_dragging && event->type == GDK_BUTTON_RELEASE) @@ -4113,10 +4102,9 @@ static gboolean _resize_wrap_button(GtkWidget *widget, return FALSE; } - static gboolean _resize_wrap_enter_leave(GtkWidget *widget, const GdkEventCrossing *event, - const char *config_str) + char *config_str) { _resize_wrap_hovered = event->type == GDK_ENTER_NOTIFY @@ -4147,10 +4135,9 @@ GtkWidget *dt_ui_resize_wrap(GtkWidget *w, { const float height = dt_conf_get_int(config_str); dtgtk_drawing_area_set_height(w, height); - g_signal_connect(G_OBJECT(w), - "scroll-event", - G_CALLBACK(_scroll_wrap_height), - config_str); + g_signal_connect(w, "scroll-event", + G_CALLBACK(_scroll_wrap_height), + config_str); } else { @@ -4159,9 +4146,9 @@ GtkWidget *dt_ui_resize_wrap(GtkWidget *w, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW(sw), - DT_PIXEL_APPLY_DPI(min_size)); - g_signal_connect(G_OBJECT(sw), "scroll-event", + g_signal_connect(GTK_SCROLLED_WINDOW(sw), "scroll-event", G_CALLBACK(_resize_wrap_scroll), config_str); - g_signal_connect(G_OBJECT(w), "draw", + g_signal_connect(w, "draw", G_CALLBACK(_resize_wrap_draw), config_str); gtk_widget_set_margin_bottom(sw, DT_RESIZE_HANDLE_SIZE); w = gtk_event_box_new(); @@ -4171,17 +4158,17 @@ GtkWidget *dt_ui_resize_wrap(GtkWidget *w, gtk_widget_add_events(w, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK | darktable.gui->scroll_mask); - g_signal_connect(G_OBJECT(w), "motion-notify-event", + g_signal_connect(w, "motion-notify-event", G_CALLBACK(_resize_wrap_motion), config_str); - g_signal_connect(G_OBJECT(w), "button-press-event", + g_signal_connect(w, "button-press-event", G_CALLBACK(_resize_wrap_button), config_str); - g_signal_connect(G_OBJECT(w), "button-release-event", + g_signal_connect(w, "button-release-event", G_CALLBACK(_resize_wrap_button), config_str); - g_signal_connect(G_OBJECT(w), "enter-notify-event", + g_signal_connect(w, "enter-notify-event", G_CALLBACK(_resize_wrap_enter_leave), config_str); - g_signal_connect(G_OBJECT(w), "leave-notify-event", + g_signal_connect(w, "leave-notify-event", G_CALLBACK(_resize_wrap_enter_leave), config_str); - g_signal_connect_after(G_OBJECT(w), "draw", + g_signal_connect_after(w, "draw", G_CALLBACK(_resize_wrap_draw_handle), NULL); return w; @@ -4256,7 +4243,7 @@ void dt_gui_menu_popup(GtkMenu *menu, { gtk_widget_show_all(GTK_WIDGET(menu)); g_object_ref_sink(G_OBJECT(menu)); - g_signal_connect(G_OBJECT(menu), "deactivate", G_CALLBACK(g_object_unref), NULL); + g_signal_connect(menu, "deactivate", G_CALLBACK(g_object_unref), NULL); GdkEvent *event = gtk_get_current_event(); if(button && event) @@ -4310,7 +4297,7 @@ gboolean dt_gui_search_start(GtkWidget *widget, GdkEventKey *event, GtkSearchEntry *entry) { - if(gtk_search_entry_handle_event(entry, (GdkEvent *)event)) + if(gtk_search_entry_handle_event(GTK_SEARCH_ENTRY(entry), (GdkEvent *)event)) { gtk_entry_grab_focus_without_selecting(GTK_ENTRY(entry)); return TRUE; @@ -4320,27 +4307,25 @@ gboolean dt_gui_search_start(GtkWidget *widget, } void dt_gui_search_stop(GtkSearchEntry *entry, - GtkWidget *widget) + GtkTreeView *widget) { - gtk_widget_grab_focus(widget); + gtk_widget_grab_focus(GTK_WIDGET(widget)); gtk_entry_set_text(GTK_ENTRY(entry), ""); - if(GTK_IS_TREE_VIEW(widget)) + if(widget) { GtkTreePath *path = NULL; - gtk_tree_view_get_cursor(GTK_TREE_VIEW(widget), &path, NULL); + gtk_tree_view_get_cursor(widget, &path, NULL); gtk_tree_selection_select_path - (gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)), path); + (gtk_tree_view_get_selection(widget), path); gtk_tree_path_free(path); } } -static void _collapse_button_changed(GtkDarktableToggleButton *widget, - const gpointer user_data) +static void _collapse_button_changed(GtkWidget *widget, + dt_gui_collapsible_section_t *cs) { - const dt_gui_collapsible_section_t *cs = (dt_gui_collapsible_section_t *)user_data; - if(cs->module && cs->module->type == DT_ACTION_TYPE_IOP_INSTANCE) dt_iop_request_focus((dt_iop_module_t *)cs->module); else if(cs->module && cs->module->type == DT_ACTION_TYPE_LIB) @@ -4356,12 +4341,10 @@ static void _collapse_button_changed(GtkDarktableToggleButton *widget, static gboolean _collapse_expander_click(GtkWidget *widget, const GdkEventButton *e, - const gpointer user_data) + dt_gui_collapsible_section_t *cs) { if(e->button != 1) return FALSE; - const dt_gui_collapsible_section_t *cs = (dt_gui_collapsible_section_t *)user_data; - const gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cs->toggle)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cs->toggle), !active); @@ -4424,10 +4407,10 @@ void dt_gui_new_collapsible_section(dt_gui_collapsible_section_t *cs, dtgtk_expander_set_expanded(DTGTK_EXPANDER(cs->expander), expanded); gtk_widget_set_name(cs->expander, "collapse-block"); - g_signal_connect(G_OBJECT(cs->toggle), "toggled", + g_signal_connect(cs->toggle, "toggled", G_CALLBACK(_collapse_button_changed), cs); - g_signal_connect(G_OBJECT(header_evb), "button-press-event", + g_signal_connect(header_evb, "button-press-event", G_CALLBACK(_collapse_expander_click), cs); } @@ -4448,9 +4431,9 @@ gboolean dt_gui_long_click(const guint second, return second - delay > first; } -static void _gesture_cancel(GtkGestureSingle *gesture, +static void _gesture_cancel(GtkGesture *gesture, GdkEventSequence *sequence, - GtkWidget *widget) + gpointer user_data) { g_signal_emit_by_name(gesture, "released", 1, .0, .0); } @@ -4461,14 +4444,14 @@ GtkGestureSingle *(dt_gui_connect_click)(GtkWidget *widget, gpointer data) { GtkGesture *gesture = gtk_gesture_multi_press_new(widget); - g_object_weak_ref(G_OBJECT (widget), (GWeakNotify) g_object_unref, gesture); + g_object_weak_ref(G_OBJECT(widget), (GWeakNotify) g_object_unref, gesture); // GTK4 GtkGesture *gesture = gtk_gesture_click_new(); // gtk_widget_add_controller(widget, GTK_EVENT_CONTROLLER(gesture)); - if(pressed) g_signal_connect(gesture, "pressed", pressed, data); + if(pressed) g_signal_connect(gesture, "pressed", G_CALLBACK(pressed), data); if(released) { - g_signal_connect(gesture, "released", released, data); + g_signal_connect(gesture, "released", G_CALLBACK(released), data); g_signal_connect(gesture, "cancel", G_CALLBACK(_gesture_cancel), NULL); } @@ -4488,9 +4471,9 @@ GtkEventController *(dt_gui_connect_motion)(GtkWidget *widget, gtk_widget_add_events(widget, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); // still needed for now by _main_do_event_keymap - if(motion) g_signal_connect(controller, "motion", motion, data); - if(enter) g_signal_connect(controller, "enter", enter, data); - if(leave) g_signal_connect(controller, "leave", leave, data); + if(motion) g_signal_connect(controller, "motion", G_CALLBACK(motion), data); + if(enter) g_signal_connect(controller, "enter", G_CALLBACK(enter), data); + if(leave) g_signal_connect(controller, "leave", G_CALLBACK(leave), data); return controller; } diff --git a/src/gui/gtk.h b/src/gui/gtk.h index 8ee46777e981..c5d09a960597 100644 --- a/src/gui/gtk.h +++ b/src/gui/gtk.h @@ -460,7 +460,7 @@ void dt_gui_add_help_link(GtkWidget *widget, char *dt_gui_get_help_url(GtkWidget *widget); void dt_gui_dialog_add_help(GtkDialog *dialog, const char *topic); -void dt_gui_show_help(GtkWidget *widget); +void dt_gui_show_help(GtkWidget *widget, gpointer user_data); // load a CSS theme void dt_gui_load_theme(const char *theme); // read them and add user tweaks @@ -521,7 +521,7 @@ gboolean dt_gui_search_start(GtkWidget *widget, // event handler for "stop-search" of GtkSearchEntry void dt_gui_search_stop(GtkSearchEntry *entry, - GtkWidget *widget); + GtkTreeView *widget); // create a collapsible section, insert in parent, return the container void dt_gui_new_collapsible_section(dt_gui_collapsible_section_t *cs, @@ -569,6 +569,154 @@ GtkEventController *(dt_gui_connect_motion)(GtkWidget *widget, ASSERT_FUNC_TYPE(leave, void(*)(GtkEventControllerMotion *, __typeof__(data))), \ dt_gui_connect_motion(GTK_WIDGET(widget), G_CALLBACK(motion), G_CALLBACK(enter), G_CALLBACK(leave), (data))) +// Enable compile-time checking of signal handler signatures +// Uncomment the _Static_assert to stop compilation on mismatch +// Otherwise errors will be printed at runtime, but only when the signal is connected +// (so all dialogs, menus etc must be opened to see all errors) +// No code is generated when the test is passed +#if 1 && !defined(__cplusplus) +#undef G_CALLBACK +static inline GCallback G_CALLBACK(void *f) { return (GCallback)f; } // as a macro it gets expanded before reaching here +#define DISABLINGPREFIXG_CALLBACK + +#define SIGNAME(num, signal, name) !strcmp((signal), #name) ? 1 << num : +#define RETURN_HANDLER(num, ret, instance, data, ...) ret(*)(instance, __VA_OPT__(__VA_ARGS__,) data) : 1 << num, +#define BOOL_HANDLER(num, instance, data, ...) RETURN_HANDLER(num, gboolean, instance, data, __VA_ARGS__) +#define VOID_HANDLER(num, instance, data, ...) RETURN_HANDLER(num, void, instance, data, __VA_ARGS__) +#define EVENT_HANDLER(num, instance, data, event) BOOL_HANDLER(num, instance, data, GdkEvent##event*) \ + BOOL_HANDLER(num, instance, data, const GdkEvent##event*) +#define MATCH_HANDLER(c_handler, instance, data) \ + _Generic((DISABLINGPREFIX##c_handler), \ + GCallback : 1 << 0, \ + EVENT_HANDLER(1, instance, data, ) \ + EVENT_HANDLER(1, instance, data, Button) \ + EVENT_HANDLER(1, instance, data, Motion) \ + EVENT_HANDLER(1, instance, data, Scroll) \ + EVENT_HANDLER(1, instance, data, Key) \ + EVENT_HANDLER(1, instance, data, Focus) \ + EVENT_HANDLER(1, instance, data, Crossing) \ + EVENT_HANDLER(1, instance, data, Configure) \ + VOID_HANDLER( 2, instance, data) \ + VOID_HANDLER( 3, instance, data, char*, GtkTreeIter*) \ + VOID_HANDLER( 4, instance, data, GdkRectangle*, GdkRectangle*, gboolean, gboolean) \ + VOID_HANDLER( 5, instance, data, char*) \ + BOOL_HANDLER( 6, instance, data, gint, gint, gboolean, GtkTooltip*) \ + BOOL_HANDLER( 7, instance, data, cairo_t*) \ + VOID_HANDLER( 8, instance, data, GtkWidget*) \ + VOID_HANDLER( 8, instance, data, GdkRectangle*) \ + VOID_HANDLER( 8, instance, data, GdkEventSequence*) \ + VOID_HANDLER( 8, instance, data, GdkDragContext*) \ + VOID_HANDLER( 9, instance, data, GdkDragContext*, guint) \ + VOID_HANDLER( 9, instance, data, GtkWidget*, guint) \ + BOOL_HANDLER(10, instance, data, GdkDragContext*, const gint, const gint, const guint) \ + VOID_HANDLER(11, instance, data, GtkTreePath*, GtkTreeViewColumn*) \ + VOID_HANDLER(12, instance, data, gint) \ + VOID_HANDLER(13, instance, data, GdkDragContext*, gint, gint, GtkSelectionData*, guint, guint) \ + VOID_HANDLER(14, instance, data, GdkDragContext*, GtkSelectionData*, guint, guint) \ + BOOL_HANDLER(15, instance, data, GdkDragContext*, GtkDragResult) \ + VOID_HANDLER(16, instance, data, GtkCellEditable*, char*) \ + VOID_HANDLER(17, instance, data, const gchar*, const gchar*) \ + BOOL_HANDLER(18, instance, data, GtkDirectionType) \ + BOOL_HANDLER(19, instance, data) \ + VOID_HANDLER(20, instance, data, const gchar*, const gint, gint*) \ + VOID_HANDLER(21, instance, data, GtkTreePath*, GtkTreeIter*) \ + VOID_HANDLER(22, instance, data, GParamSpec*) \ + VOID_HANDLER(23, instance, data, GtkTreeIter*, GtkTreePath*) \ + BOOL_HANDLER(24, instance, data, GtkTreeModel*, GtkTreeIter*) \ + default : 0) +#define MATCH_HANDLER_BOTH(c_handler, instance, data) MATCH_HANDLER(c_handler, instance, data) ?: \ + MATCH_HANDLER(c_handler, instance, gpointer) +#undef _Static_assert +#undef g_signal_connect +#define g_signal_connect(instance, signal, c_handler, user_data) do { \ + const int required_signature = \ + SIGNAME( 0, signal, pressed) \ + SIGNAME( 0, signal, released) \ + SIGNAME( 0, signal, motion) \ + SIGNAME( 0, signal, enter) \ + SIGNAME( 0, signal, leave) \ + SIGNAME( 1, signal, event) \ + SIGNAME( 1, signal, button-press-event) \ + SIGNAME( 1, signal, button-release-event) \ + SIGNAME( 1, signal, motion-notify-event) \ + SIGNAME( 1, signal, scroll-event) \ + SIGNAME( 1, signal, enter-notify-event) \ + SIGNAME( 1, signal, leave-notify-event) \ + SIGNAME( 1, signal, key-press-event) \ + SIGNAME( 1, signal, focus-out-event) \ + SIGNAME( 1, signal, focus-in-event) \ + SIGNAME( 1, signal, delete-event) \ + SIGNAME( 1, signal, configure-event) \ + SIGNAME( 1 | 1 << 2 | 1 << 3 , signal, changed) \ + SIGNAME( 2 | 1 << 5, signal, toggled) \ + SIGNAME( 2, signal, clicked) \ + SIGNAME( 2, signal, value-changed) \ + SIGNAME( 2, signal, value-reset) \ + SIGNAME( 2, signal, quad-pressed) \ + SIGNAME( 2, signal, show) \ + SIGNAME( 2, signal, closed) \ + SIGNAME( 2, signal, stopped) \ + SIGNAME( 2, signal, stop-search) \ + SIGNAME( 2, signal, day_selected) \ + SIGNAME( 2, signal, day_selected-double-click) \ + SIGNAME( 2, signal, selection-changed) \ + SIGNAME( 2, signal, activate) \ + SIGNAME( 2, signal, deactivate) \ + SIGNAME( 2, signal, editing-done) \ + SIGNAME( 2, signal, style-updated) \ + SIGNAME( 2, signal, search-changed) \ + SIGNAME( 2, signal, mounts-changed) \ + SIGNAME( 2, signal, color-set) \ + SIGNAME( 2, signal, font-set) \ + SIGNAME( 2, signal, destroy) \ + SIGNAME( 4, signal, moved-to-rect) \ + SIGNAME( 6, signal, query-tooltip) \ + SIGNAME( 7, signal, draw) \ + SIGNAME( 8, signal, add) \ + SIGNAME( 8, signal, remove) \ + SIGNAME( 8, signal, cancel) \ + SIGNAME( 8, signal, size-allocate) \ + SIGNAME( 8, signal, populate-popup) \ + SIGNAME( 8, signal, drag-begin) \ + SIGNAME( 8, signal, drag-end) \ + SIGNAME( 9, signal, drag-leave) \ + SIGNAME( 9, signal, switch-page) \ + SIGNAME(10, signal, drag-motion) \ + SIGNAME(10, signal, drag-drop) \ + SIGNAME(11, signal, row-activated) \ + SIGNAME(12, signal, response) \ + SIGNAME(13, signal, drag-data-received) \ + SIGNAME(14, signal, drag-data-get) \ + SIGNAME(15, signal, drag-failed) \ + SIGNAME(16, signal, editing-started) \ + SIGNAME(17, signal, edited) \ + SIGNAME(18, signal, focus) \ + SIGNAME(19, signal, popup-menu) \ + SIGNAME(20, signal, insert-text) \ + SIGNAME(21, signal, row-inserted) \ + SIGNAME(22, signal, notify::position) \ + SIGNAME(22, signal, notify::visible) \ + SIGNAME(23, signal, row-expanded) \ + SIGNAME(24, signal, match-selected) \ + 0; \ + const int found_signature = MATCH_HANDLER_BOTH(c_handler, __typeof__(instance), __typeof__(user_data)) ?: \ + MATCH_HANDLER_BOTH(c_handler, GtkWidget*, __typeof__(user_data)) ?: \ + MATCH_HANDLER_BOTH(c_handler, GtkEntry*, __typeof__(user_data)) ?: \ + MATCH_HANDLER_BOTH(c_handler, GtkDrawingArea*, __typeof__(user_data)) ?: \ + MATCH_HANDLER_BOTH(c_handler, GtkTreeView*, __typeof__(user_data)) ?: \ + MATCH_HANDLER_BOTH(c_handler, GtkTextView*, __typeof__(user_data)) ?: \ + MATCH_HANDLER_BOTH(c_handler, GtkColorButton*, __typeof__(user_data)) ?: \ + MATCH_HANDLER_BOTH(c_handler, GtkToggleButton*, __typeof__(user_data)) ?: \ + MATCH_HANDLER_BOTH(c_handler, GtkButton*, __typeof__(user_data)); \ + if(required_signature == 0) \ + dt_print_nts_ext("%s:%d: connecting unknown signal %s\n", __FILE__, __LINE__, signal); \ + else if(!(required_signature & found_signature)) \ + dt_print_nts_ext("%s:%d: connecting signal %s to %s with incorrect signature %d-%d\n", __FILE__, __LINE__, signal, #c_handler, required_signature, found_signature); \ + /*_Static_assert(required_signature, "unknown signal encountered: " signal ); */\ + /*_Static_assert(required_signature & found_signature, "incorrect function connected to " signal ); */\ + g_signal_connect_data ((instance), (signal), (c_handler), (user_data), NULL, (GConnectFlags) 0); } while(0) +#endif // __cplusplus + // GTK4 gtk_event_controller_get_current_event_state(GTK_EVENT_CONTROLLER(controller)); #define dt_modifier_eq(controller, mask)\ dt_modifier_is(dt_key_modifier_state(), mask) diff --git a/src/gui/gtkentry.c b/src/gui/gtkentry.c index e02007626364..d738189c2b00 100644 --- a/src/gui/gtkentry.c +++ b/src/gui/gtkentry.c @@ -279,7 +279,7 @@ void dt_gtkentry_setup_variables_completion(GtkEntry *entry) GtkEntryCompletion *completion = gtk_entry_completion_new(); gtk_entry_completion_set_text_column(completion, COMPL_DESCRIPTION); gtk_entry_set_completion(entry, completion); - g_signal_connect(G_OBJECT(completion), "match-selected", G_CALLBACK(_on_match_select), NULL); + g_signal_connect(completion, "match-selected", G_CALLBACK(_on_match_select), NULL); gtk_entry_completion_set_model(completion, GTK_TREE_MODEL(_completion_model)); gtk_entry_completion_set_match_func(completion, _on_match_func, NULL, NULL); diff --git a/src/gui/guides.c b/src/gui/guides.c index f0060e522370..8f335c2f5768 100644 --- a/src/gui/guides.c +++ b/src/gui/guides.c @@ -236,7 +236,7 @@ static GtkWidget *_guides_gui_grid(dt_iop_module_t *self, dt_bauhaus_slider_set(grid_horizontal, dt_conf_key_exists(key) ? dt_conf_get_int(key) : 3); g_free(key); - g_signal_connect(G_OBJECT(grid_horizontal), "value-changed", + g_signal_connect(grid_horizontal, "value-changed", G_CALLBACK(_grid_horizontal_changed), user_data); GtkWidget *grid_vertical = dt_bauhaus_slider_new_with_range(NULL, 0, 12, 1, 3, 0); @@ -246,7 +246,7 @@ static GtkWidget *_guides_gui_grid(dt_iop_module_t *self, key = _conf_get_path("global", "grid_nbv", NULL); dt_bauhaus_slider_set(grid_vertical, dt_conf_key_exists(key) ? dt_conf_get_int(key) : 3); g_free(key); - g_signal_connect(G_OBJECT(grid_vertical), "value-changed", + g_signal_connect(grid_vertical, "value-changed", G_CALLBACK(_grid_vertical_changed), user_data); GtkWidget *grid_subdiv = dt_bauhaus_slider_new_with_range(NULL, 0, 10, 1, 3, 0); @@ -256,7 +256,7 @@ static GtkWidget *_guides_gui_grid(dt_iop_module_t *self, key = _conf_get_path("global", "grid_subdiv", NULL); dt_bauhaus_slider_set(grid_subdiv, dt_conf_key_exists(key) ? dt_conf_get_int(key) : 3); g_free(key); - g_signal_connect(G_OBJECT(grid_subdiv), "value-changed", + g_signal_connect(grid_subdiv, "value-changed", G_CALLBACK(_grid_subdiv_changed), user_data); return dt_gui_vbox(grid_horizontal, grid_vertical, grid_subdiv); @@ -802,7 +802,7 @@ static void _settings_colors_changed(GtkWidget *combo, } static void _settings_contrast_changed(GtkWidget *slider, - _guides_settings_t *gw) + gpointer user_data) { dt_conf_set_float("darkroom/ui/overlay_contrast", dt_bauhaus_slider_get(slider)); dt_guides_set_overlay_colors(); @@ -865,7 +865,7 @@ GtkWidget *dt_guides_popover(dt_view_t *self, _("set the contrast between the lightest and darkest part of the guide overlays")); dt_bauhaus_slider_set(contrast, dt_conf_get_float("darkroom/ui/overlay_contrast")); - g_signal_connect(G_OBJECT(contrast), "value-changed", + g_signal_connect(contrast, "value-changed", G_CALLBACK(_settings_contrast_changed), NULL); GtkWidget *vbox = dt_gui_vbox(lb, gw->g_widgets, gw->g_flip, darktable.view_manager->guides, @@ -984,7 +984,7 @@ void dt_guides_add_module_menuitem(void *menu, gchar *key = _conf_get_path(module->op, "autoshow", NULL); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi), dt_conf_get_bool(key)); g_free(key); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_settings_autoshow_change), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } @@ -1036,14 +1036,14 @@ void dt_guides_init_module_widget(GtkWidget *iopw, gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb), dt_conf_get_bool(key)); g_free(key); - g_signal_connect(G_OBJECT(cb), "toggled", + g_signal_connect(cb, "toggled", G_CALLBACK(_settings_autoshow_change2), module); gtk_widget_set_tooltip_text(cb, _("show guide overlay when this module has focus")); GtkWidget *ic = dtgtk_button_new(dtgtk_cairo_paint_grid, 0, NULL); gtk_widget_set_tooltip_text (ic, _("change global guide settings\nnote that these settings are applied globally " "and will impact any module that shows guide overlays")); - g_signal_connect(G_OBJECT(ic), "clicked", + g_signal_connect(ic, "clicked", G_CALLBACK(_settings_autoshow_menu), module); GtkWidget *box = dt_gui_hbox(dt_gui_expand(cb), ic); diff --git a/src/gui/hist_dialog.c b/src/gui/hist_dialog.c index 4b15472e9902..3f3663620c5d 100644 --- a/src/gui/hist_dialog.c +++ b/src/gui/hist_dialog.c @@ -143,10 +143,8 @@ static void _gui_hist_copy_response(GtkDialog *dialog, static void _gui_hist_item_toggled(GtkCellRendererToggle *cell, const gchar *path_str, - gpointer data) + dt_history_copy_item_t *d) { - dt_history_copy_item_t *d = (dt_history_copy_item_t *)data; - const _styles_columns_t col = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cell), "column")); @@ -274,7 +272,7 @@ int dt_gui_hist_dialog_new(dt_history_copy_item_t *d, GtkCellRenderer *renderer = gtk_cell_renderer_toggle_new(); gtk_cell_renderer_toggle_set_activatable(GTK_CELL_RENDERER_TOGGLE(renderer), TRUE); g_object_set_data(G_OBJECT(renderer), "column", (gint *)DT_HIST_ITEMS_COL_ENABLED); - g_signal_connect(renderer, "toggled", G_CALLBACK(_gui_hist_item_toggled), d); + g_signal_connect(GTK_CELL_RENDERER_TOGGLE(renderer), "toggled", G_CALLBACK(_gui_hist_item_toggled), d); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW(d->items), -1, _("include"), renderer, "active", @@ -284,7 +282,7 @@ int dt_gui_hist_dialog_new(dt_history_copy_item_t *d, renderer = gtk_cell_renderer_toggle_new(); gtk_cell_renderer_toggle_set_activatable(GTK_CELL_RENDERER_TOGGLE(renderer), TRUE); g_object_set_data(G_OBJECT(renderer), "column", (gint *)DT_HIST_ITEMS_COL_AUTOINIT); - g_signal_connect(renderer, "toggled", G_CALLBACK(_gui_hist_item_toggled), d); + g_signal_connect(GTK_CELL_RENDERER_TOGGLE(renderer), "toggled", G_CALLBACK(_gui_hist_item_toggled), d); gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(d->items), -1, _("reset"), renderer, "active", @@ -374,7 +372,7 @@ int dt_gui_hist_dialog_new(dt_history_copy_item_t *d, } g_signal_connect(GTK_TREE_VIEW(d->items), "row-activated", - (GCallback)tree_on_row_activated, GTK_WIDGET(dialog)); + G_CALLBACK(tree_on_row_activated), GTK_WIDGET(dialog)); g_object_unref(liststore); g_signal_connect(dialog, "response", G_CALLBACK(_gui_hist_copy_response), d); diff --git a/src/gui/import_metadata.c b/src/gui/import_metadata.c index a30ec603d09a..5fc8f054ea85 100644 --- a/src/gui/import_metadata.c +++ b/src/gui/import_metadata.c @@ -420,16 +420,16 @@ static void _fill_metadata_grid(dt_import_metadata_t *metadata) const char *str = dt_conf_get_string_const(setting); _set_up_entry(metadata_entry, str, metadata_name, i + DT_META_META_VALUE, metadata); g_free(setting); - g_signal_connect(GTK_ENTRY(metadata_entry), "changed", + g_signal_connect(metadata_entry, "changed", G_CALLBACK(_import_metadata_changed), metadata); - g_signal_connect(GTK_EVENT_BOX(labelev), "button-press-event", + g_signal_connect(labelev, "button-press-event", G_CALLBACK(_import_metadata_reset), metadata_entry); GtkWidget *metadata_imported = gtk_check_button_new(); g_object_set_data(G_OBJECT(metadata_imported), "tagname", md->tagname); _set_up_toggle_button(metadata_imported, flag & DT_METADATA_FLAG_IMPORTED, metadata_name, i + DT_META_META_VALUE, metadata); - g_signal_connect(GTK_TOGGLE_BUTTON(metadata_imported), "toggled", + g_signal_connect(metadata_imported, "toggled", G_CALLBACK(_import_metadata_toggled), metadata); i++; } diff --git a/src/gui/metadata_tags.c b/src/gui/metadata_tags.c index 86d711ea93c9..08cccaa52324 100644 --- a/src/gui/metadata_tags.c +++ b/src/gui/metadata_tags.c @@ -102,7 +102,7 @@ GtkWidget *dt_metadata_tags_dialog(GtkWidget *parent, gpointer metadata_activate gtk_entry_set_text(GTK_ENTRY(sel_entry), ""); gtk_widget_set_tooltip_text(sel_entry, _("list filter")); gtk_entry_set_activates_default(GTK_ENTRY(sel_entry), TRUE); - g_signal_connect(G_OBJECT(sel_entry), "changed", G_CALLBACK(_tag_name_changed), NULL); + g_signal_connect(sel_entry, "changed", G_CALLBACK(_tag_name_changed), NULL); sel_view = GTK_TREE_VIEW(gtk_tree_view_new()); GtkWidget *w = dt_gui_scroll_wrap(GTK_WIDGET(sel_view)); @@ -150,7 +150,7 @@ GtkWidget *dt_metadata_tags_dialog(GtkWidget *parent, gpointer metadata_activate gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(liststore), DT_METADATA_TAGS_COL_XMP, GTK_SORT_ASCENDING); gtk_tree_view_set_model(sel_view, model); g_object_unref(model); - g_signal_connect(G_OBJECT(sel_view), "row-activated", G_CALLBACK(metadata_activated_callback), user_data); + g_signal_connect(sel_view, "row-activated", G_CALLBACK(metadata_activated_callback), user_data); dt_gui_dialog_add(GTK_DIALOG(dialog), sel_entry, w); return dialog; diff --git a/src/gui/preferences.c b/src/gui/preferences.c index d839bb1257f2..98634ca41a7a 100644 --- a/src/gui/preferences.c +++ b/src/gui/preferences.c @@ -353,8 +353,8 @@ static void init_tab_general(GtkWidget *dialog, dt_bauhaus_combobox_set(widget, darktable.l10n->selected); dt_bauhaus_combobox_set_default(widget, darktable.l10n->sys_default); - g_signal_connect(G_OBJECT(widget), "value-changed", - G_CALLBACK(language_callback), 0); + g_signal_connect(widget, "value-changed", + G_CALLBACK(language_callback), NULL); gtk_widget_set_tooltip_text(labelev, _("double-click to reset to the system language")); gtk_event_box_set_visible_window(GTK_EVENT_BOX(labelev), FALSE); gtk_widget_set_tooltip_text(widget, @@ -363,8 +363,8 @@ static void init_tab_general(GtkWidget *dialog, "(restart required)")); gtk_grid_attach(GTK_GRID(grid), labelev, 0, line++, 1, 1); gtk_grid_attach_next_to(GTK_GRID(grid), widget, labelev, GTK_POS_RIGHT, 1, 1); - g_signal_connect(G_OBJECT(labelev), "button-press-event", - G_CALLBACK(reset_language_widget), (gpointer)widget); + g_signal_connect(labelev, "button-press-event", + G_CALLBACK(reset_language_widget), widget); // theme @@ -399,7 +399,7 @@ static void init_tab_general(GtkWidget *dialog, dt_bauhaus_combobox_set(widget, selected); - g_signal_connect(G_OBJECT(widget), "value-changed", + g_signal_connect(widget, "value-changed", G_CALLBACK(theme_callback), 0); gtk_widget_set_tooltip_text(widget, _("set the theme for the user interface")); @@ -426,10 +426,10 @@ static void init_tab_general(GtkWidget *dialog, gtk_widget_set_tooltip_text(usesysfont, _("use system font size")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(usesysfont), dt_conf_get_bool("use_system_font")); - g_signal_connect(G_OBJECT(usesysfont), "toggled", - G_CALLBACK(use_sys_font_callback), (gpointer)fontsize); - g_signal_connect(G_OBJECT(labelev), "button-press-event", - G_CALLBACK(_gui_preferences_bool_click), (gpointer)usesysfont); + g_signal_connect(usesysfont, "toggled", + G_CALLBACK(use_sys_font_callback), fontsize); + g_signal_connect(labelev, "button-press-event", + G_CALLBACK(_gui_preferences_bool_click), usesysfont); //font size selector @@ -448,7 +448,7 @@ static void init_tab_general(GtkWidget *dialog, gtk_grid_attach_next_to(GTK_GRID(grid), fontsize, labelev, GTK_POS_RIGHT, 1, 1); gtk_widget_set_tooltip_text(fontsize, _("font size in points")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(fontsize), dt_conf_get_float("font_size")); - g_signal_connect(G_OBJECT(fontsize), "value_changed", + g_signal_connect(fontsize, "value-changed", G_CALLBACK(font_size_changed_callback), 0); GtkWidget *screen_dpi_overwrite = gtk_spin_button_new_with_range(-1.0f, 360, 1.f); @@ -469,7 +469,7 @@ static void init_tab_general(GtkWidget *dialog, "(restart required)")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(screen_dpi_overwrite), dt_conf_get_float("screen_dpi_overwrite")); - g_signal_connect(G_OBJECT(screen_dpi_overwrite), "value_changed", + g_signal_connect(screen_dpi_overwrite, "value-changed", G_CALLBACK(dpi_scaling_changed_callback), 0); GtkWidget *panel_reset = gtk_button_new_with_label(_("reset view panels")); @@ -494,10 +494,10 @@ static void init_tab_general(GtkWidget *dialog, _("modify theme with CSS keyed below (saved to user.css)")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(tw->apply_toggle), dt_conf_get_bool("themes/usercss")); - g_signal_connect(G_OBJECT(tw->apply_toggle), "toggled", + g_signal_connect(tw->apply_toggle, "toggled", G_CALLBACK(usercss_callback), 0); g_signal_connect(G_OBJECT(labelev), "button-press-event", - G_CALLBACK(_gui_preferences_bool_click), (gpointer)tw->apply_toggle); + G_CALLBACK(_gui_preferences_bool_click), tw->apply_toggle); //scrollable textarea with save button to allow user to directly modify user.css file GtkWidget *usercssbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); @@ -516,9 +516,9 @@ static void init_tab_general(GtkWidget *dialog, GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); tw->save_button = gtk_button_new_with_label(C_("usercss", "save CSS and apply")); - g_signal_connect(G_OBJECT(tw->save_button), "clicked", + g_signal_connect(tw->save_button, "clicked", G_CALLBACK(save_usercss_callback), tw); - g_signal_connect(G_OBJECT(dialog), "response", + g_signal_connect(dialog, "response", G_CALLBACK(usercss_dialog_callback), tw); gtk_box_pack_end(GTK_BOX(hbox), tw->save_button, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(usercssbox), hbox, FALSE, FALSE, 0); @@ -567,7 +567,7 @@ static void init_tab_general(GtkWidget *dialog, ///////////// end of gui and theme language selection -void dt_gui_preferences_show() +void dt_gui_preferences_show(void) { GtkWindow *win = GTK_WINDOW(dt_ui_main_window(darktable.gui->ui)); _preferences_dialog = @@ -985,30 +985,30 @@ static void init_tab_presets(GtkWidget *stack) GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_name(hbox, "preset-controls"); - GtkWidget *search_presets = gtk_search_entry_new(); - gtk_box_pack_start(GTK_BOX(hbox), search_presets, FALSE, TRUE, 0); + GtkSearchEntry *search_presets = GTK_SEARCH_ENTRY(gtk_search_entry_new()); + dt_gui_box_add(hbox, search_presets); gtk_entry_set_placeholder_text(GTK_ENTRY(search_presets), _("search presets list")); gtk_widget_set_tooltip_text (GTK_WIDGET(search_presets), _("incrementally search the list of presets\n" "press up or down keys to cycle through matches")); - g_signal_connect(G_OBJECT(search_presets), "activate", + g_signal_connect(search_presets, "activate", G_CALLBACK(dt_gui_search_stop), tree); - g_signal_connect(G_OBJECT(search_presets), "stop-search", + g_signal_connect(search_presets, "stop-search", G_CALLBACK(dt_gui_search_stop), tree); - g_signal_connect(G_OBJECT(tree), "key-press-event", + g_signal_connect(tree, "key-press-event", G_CALLBACK(dt_gui_search_start), search_presets); gtk_tree_view_set_search_entry(tree, GTK_ENTRY(search_presets)); GtkWidget *button = gtk_button_new_with_label(C_("preferences", "import...")); gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, TRUE, 0); - g_signal_connect(G_OBJECT(button), "clicked", - G_CALLBACK(import_preset), (gpointer)model); + g_signal_connect(button, "clicked", + G_CALLBACK(import_preset), model); button = gtk_button_new_with_label(C_("preferences", "export...")); gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, TRUE, 0); - g_signal_connect(G_OBJECT(button), "clicked", - G_CALLBACK(export_preset), (gpointer)model); + g_signal_connect(button, "clicked", + G_CALLBACK(export_preset), model); button = gtk_button_new_with_label(_("?")); dt_gui_add_help_link(button, "presets"); @@ -1018,12 +1018,12 @@ static void init_tab_presets(GtkWidget *stack) // Attaching treeview signals // row-activated either expands/collapses a row or activates editing - g_signal_connect(G_OBJECT(tree), "row-activated", + g_signal_connect(tree, "row-activated", G_CALLBACK(tree_row_activated_presets), NULL); // A keypress may delete preset - g_signal_connect(G_OBJECT(tree), "key-press-event", - G_CALLBACK(tree_key_press_presets), (gpointer)model); + g_signal_connect(tree, "key-press-event", + G_CALLBACK(tree_key_press_presets), model); // Setting up the search functionality gtk_tree_view_set_search_equal_func(tree, _search_func, tree, NULL); @@ -1372,10 +1372,10 @@ GtkWidget *dt_gui_preferences_bool(GtkGrid *grid, gtk_grid_attach(GTK_GRID(grid), labelev, swap ? (col + 1) : col, line, 1, 1); gtk_grid_attach(GTK_GRID(grid), w, swap ? col : (col + 1), line, 1, 1); - g_signal_connect(G_OBJECT(w), "toggled", + g_signal_connect(w, "toggled", G_CALLBACK(_gui_preferences_bool_callback), (gpointer)key); - g_signal_connect(G_OBJECT(labelev), "button-press-event", - G_CALLBACK(_gui_preferences_bool_click), (gpointer)w); + g_signal_connect(labelev, "button-press-event", + G_CALLBACK(_gui_preferences_bool_click), w); return w; } @@ -1433,10 +1433,10 @@ GtkWidget *dt_gui_preferences_int(GtkGrid *grid, gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), dt_conf_get_int(key)); gtk_grid_attach(GTK_GRID(grid), labelev, col, line, 1, 1); gtk_grid_attach(GTK_GRID(grid), w, col + 1, line, 1, 1); - g_signal_connect(G_OBJECT(w), "value-changed", + g_signal_connect(w, "value-changed", G_CALLBACK(_gui_preferences_int_callback), (gpointer)key); - g_signal_connect(G_OBJECT(labelev), "button-press-event", - G_CALLBACK(_gui_preferences_int_reset), (gpointer)w); + g_signal_connect(labelev, "button-press-event", + G_CALLBACK(_gui_preferences_int_reset), w); return w; } @@ -1485,7 +1485,7 @@ GtkWidget *dt_gui_preferences_enum(dt_action_t *action, i++; } - g_signal_connect(G_OBJECT(w), "value-changed", + g_signal_connect(w, "value-changed", G_CALLBACK(_gui_preferences_enum_callback), (gpointer)key); return w; } @@ -1544,10 +1544,10 @@ GtkWidget *dt_gui_preferences_string(GtkGrid *grid, gtk_grid_attach(GTK_GRID(grid), labelev, col, line, 1, 1); gtk_grid_attach(GTK_GRID(grid), w, col + 1, line, 1, 1); - g_signal_connect(G_OBJECT(w), "changed", + g_signal_connect(w, "changed", G_CALLBACK(_gui_preferences_string_callback), (gpointer)key); - g_signal_connect(G_OBJECT(labelev), "button-press-event", - G_CALLBACK(_gui_preferences_string_reset), (gpointer)w); + g_signal_connect(labelev, "button-press-event", + G_CALLBACK(_gui_preferences_string_reset), w); return w; } diff --git a/src/gui/preferences.h b/src/gui/preferences.h index 096700541c32..9856e67953a0 100644 --- a/src/gui/preferences.h +++ b/src/gui/preferences.h @@ -19,7 +19,7 @@ #pragma once /** shows the preferences dialog and blocks until it's closed. */ -void dt_gui_preferences_show(); +void dt_gui_preferences_show(void); // return the widget for a given preference key GtkWidget *dt_gui_preferences_bool(GtkGrid *grid, const char *key, const guint col, diff --git a/src/gui/presets.c b/src/gui/presets.c index 862839c7411b..bb95143dc490 100644 --- a/src/gui/presets.c +++ b/src/gui/presets.c @@ -634,9 +634,9 @@ static void _presets_show_edit_dialog(dt_gui_presets_edit_dialog_t *g, gtk_widget_set_sensitive(GTK_WIDGET(g->filter), TRUE); } - g_signal_connect(G_OBJECT(g->autoapply), "toggled", + g_signal_connect(g->autoapply, "toggled", G_CALLBACK(_check_buttons_activated), g); - g_signal_connect(G_OBJECT(g->filter), "toggled", + g_signal_connect(g->filter, "toggled", G_CALLBACK(_check_buttons_activated), g); int line = 0; @@ -678,13 +678,13 @@ static void _presets_show_edit_dialog(dt_gui_presets_edit_dialog_t *g, gtk_widget_set_halign(label, GTK_ALIGN_START); g->iso_min = gtk_entry_new(); gtk_widget_set_tooltip_text(g->iso_min, _("minimum ISO value")); - g_signal_connect(G_OBJECT(g->iso_min), "insert-text", + g_signal_connect(g->iso_min, "insert-text", G_CALLBACK(_insert_text_event), NULL); g->iso_max = gtk_entry_new(); gtk_widget_set_tooltip_text (g->iso_max, _("maximum ISO value\nif left blank, it is equivalent to no upper limit")); - g_signal_connect(G_OBJECT(g->iso_max), "insert-text", + g_signal_connect(g->iso_max, "insert-text", G_CALLBACK(_insert_text_event), NULL); gtk_grid_attach(GTK_GRID(g->details), label, 0, line++, 1, 1); gtk_grid_attach_next_to(GTK_GRID(g->details), g->iso_min, label, GTK_POS_RIGHT, 2, 1); @@ -981,7 +981,7 @@ static void _edit_preset(const char *name_in, dt_iop_module_t *module) name = g_strdup(name_in); dt_gui_presets_show_iop_edit_dialog - (name, module, (GCallback)_edit_preset_final_callback, NULL, TRUE, TRUE, + (name, module, G_CALLBACK(_edit_preset_final_callback), NULL, TRUE, TRUE, FALSE, GTK_WINDOW(dt_ui_main_window(darktable.gui->ui))); g_free(name); } @@ -1336,13 +1336,13 @@ static void _menuitem_connect_preset(GtkWidget *mi, g_object_set_data_full(G_OBJECT(mi), "dt-preset-name", g_strdup(name), g_free); g_object_set_data(G_OBJECT(mi), "dt-preset-module", iop); dt_action_define(&iop->so->actions, "preset", name, mi, NULL); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_activate_preset), iop); - g_signal_connect(G_OBJECT(mi), "button-press-event", + g_signal_connect(mi, "button-press-event", G_CALLBACK(_menuitem_button_preset), iop); - g_signal_connect(G_OBJECT(mi), "button-release-event", + g_signal_connect(mi, "button-release-event", G_CALLBACK(_menuitem_button_preset), iop); - g_signal_connect(G_OBJECT(mi), "motion-notify-event", + g_signal_connect(mi, "motion-notify-event", G_CALLBACK(_menuitem_motion_preset), iop); gtk_widget_set_has_tooltip(mi, TRUE); } @@ -1611,7 +1611,7 @@ void dt_gui_favorite_presets_menu_show(GtkWidget *w) gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); GtkMenuItem *smi_manage = (GtkMenuItem *)gtk_menu_item_new_with_label (_("manage quick presets list...")); - g_signal_connect(G_OBJECT(smi_manage), "activate", + g_signal_connect(smi_manage, "activate", G_CALLBACK(_menuitem_manage_quick_presets), NULL); gtk_menu_shell_append(GTK_MENU_SHELL(menu), GTK_WIDGET(smi_manage)); @@ -1797,19 +1797,19 @@ GtkMenu *dt_gui_presets_popup_menu_show_for_module(dt_iop_module_t *module) if(active_preset >= 0 && !writeprotect) { mi = gtk_menu_item_new_with_label(_("edit this preset..")); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_edit_preset), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); mi = gtk_menu_item_new_with_label(_("delete this preset")); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_delete_preset), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } else { mi = gtk_menu_item_new_with_label(_("store new preset..")); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_new_preset), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); @@ -1825,7 +1825,7 @@ GtkMenu *dt_gui_presets_popup_menu_show_for_module(dt_iop_module_t *module) gtk_label_set_markup(GTK_LABEL(gtk_bin_get_child(GTK_BIN(mi))), markup); g_object_set_data_full(G_OBJECT(mi), "dt-preset-name", g_strdup(darktable.gui->last_preset), g_free); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_update_preset), module); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); g_free(markup); diff --git a/src/gui/styles_dialog.c b/src/gui/styles_dialog.c index 6eec005c8c1d..66bcb2de024d 100644 --- a/src/gui/styles_dialog.c +++ b/src/gui/styles_dialog.c @@ -356,10 +356,8 @@ static void _gui_styles_edit_style_response(GtkDialog *dialog, static void _gui_styles_item_toggled(GtkCellRendererToggle *cell, gchar *path_str, - gpointer data) + dt_gui_styles_dialog_t *sd) { - dt_gui_styles_dialog_t *sd = (dt_gui_styles_dialog_t *)data; - GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(sd->items)); GtkTreePath *path = gtk_tree_path_new_from_string(path_str); GtkTreeIter iter; @@ -571,7 +569,7 @@ static gboolean _gui_styles_dialog_run(const gboolean edit, gtk_widget_set_tooltip_text(sd->name, _("enter a name for the new style")); gtk_entry_set_activates_default(GTK_ENTRY(sd->name), TRUE); gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_ACCEPT, FALSE); - g_signal_connect(sd->name, "changed", G_CALLBACK(_name_changed), dialog); + g_signal_connect(GTK_ENTRY(sd->name), "changed", G_CALLBACK(_name_changed), dialog); sd->description = gtk_entry_new(); gtk_entry_set_placeholder_text(GTK_ENTRY(sd->description), _("description")); @@ -613,7 +611,7 @@ static gboolean _gui_styles_dialog_run(const gboolean edit, GtkCellRenderer *renderer = gtk_cell_renderer_toggle_new(); gtk_cell_renderer_toggle_set_activatable(GTK_CELL_RENDERER_TOGGLE(renderer), TRUE); g_object_set_data(G_OBJECT(renderer), "column", (gint *)DT_STYLE_ITEMS_COL_ENABLED); - g_signal_connect(renderer, "toggled", G_CALLBACK(_gui_styles_item_toggled), sd); + g_signal_connect(GTK_CELL_RENDERER_TOGGLE(renderer), "toggled", G_CALLBACK(_gui_styles_item_toggled), sd); gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(sd->items), -1, edit ? _("keep") : _("include"), renderer, "active", @@ -1030,7 +1028,7 @@ GtkWidget *dt_gui_style_content_dialog(char *name, const dt_imgid_t imgid) gtk_widget_set_app_paintable(da, TRUE); gtk_box_pack_start(GTK_BOX(ht), da, TRUE, TRUE, 0); data.first_draw = TRUE; - g_signal_connect(G_OBJECT(da), "draw", G_CALLBACK(_preview_draw), &data); + g_signal_connect(da, "draw", G_CALLBACK(_preview_draw), &data); } return ht; diff --git a/src/gui/workspace.c b/src/gui/workspace.c index 605d227bccec..337b1a061645 100644 --- a/src/gui/workspace.c +++ b/src/gui/workspace.c @@ -134,7 +134,7 @@ static GtkBox *_insert_button(dt_workspace_t *session, const char *label) GtkWidget *b = gtk_button_new_with_label(label); gtk_widget_set_hexpand(GTK_WIDGET(b), TRUE); dt_gui_box_add(box, b); - g_signal_connect(G_OBJECT(b), "clicked", + g_signal_connect(b, "clicked", G_CALLBACK(_workspace_select_db), session); dt_gui_dialog_add(session->db_screen, box); return box; @@ -215,7 +215,7 @@ void dt_workspace_create(const char *datadir) g_list_free(bc); GtkWidget *del = dtgtk_button_new(dtgtk_cairo_paint_remove, 0, NULL); - g_signal_connect(G_OBJECT(del), "clicked", + g_signal_connect(del, "clicked", G_CALLBACK(_workspace_delete_db), session); g_object_set_data(G_OBJECT(del), "db", b); dt_gui_box_add(box, del); @@ -235,14 +235,14 @@ void dt_workspace_create(const char *datadir) GtkBox *box = GTK_BOX(dt_gui_hbox()); session->entry = gtk_entry_new(); - g_signal_connect(G_OBJECT(session->entry), + g_signal_connect(session->entry, "changed", G_CALLBACK(_workspace_entry_changed), session); gtk_widget_set_hexpand(session->entry, TRUE); session->create = gtk_button_new_with_label(_("create")); gtk_widget_set_sensitive(session->create, FALSE); - g_signal_connect(G_OBJECT(session->create), "clicked", + g_signal_connect(session->create, "clicked", G_CALLBACK(_workspace_new_db), session); dt_gui_box_add(box, session->entry, session->create); gtk_widget_set_hexpand(GTK_WIDGET(box), TRUE); diff --git a/src/imageio/format/avif.c b/src/imageio/format/avif.c index a5b2bea2cb3b..7065e2c44e1b 100644 --- a/src/imageio/format/avif.c +++ b/src/imageio/format/avif.c @@ -1031,15 +1031,15 @@ void gui_init(dt_imageio_module_format_t *self) gtk_widget_set_visible(gui->subsample, compression_type != AVIF_COMP_LOSSLESS); gtk_widget_set_no_show_all(gui->subsample, TRUE); - g_signal_connect(G_OBJECT(gui->bit_depth), + g_signal_connect(gui->bit_depth, "value-changed", G_CALLBACK(bit_depth_changed), NULL); - g_signal_connect(G_OBJECT(gui->compression_type), + g_signal_connect(gui->compression_type, "value-changed", G_CALLBACK(compression_type_changed), (gpointer)self); - g_signal_connect(G_OBJECT(gui->quality), + g_signal_connect(gui->quality, "value-changed", G_CALLBACK(quality_changed), NULL); diff --git a/src/imageio/format/j2k.c b/src/imageio/format/j2k.c index 4c09adac4422..f16afe91d6ba 100644 --- a/src/imageio/format/j2k.c +++ b/src/imageio/format/j2k.c @@ -706,7 +706,7 @@ void gui_init(dt_imageio_module_format_t *self) 0); dt_bauhaus_widget_set_label(gui->quality, NULL, N_("quality")); dt_bauhaus_slider_set(gui->quality, quality_last); - g_signal_connect(G_OBJECT(gui->quality), "value-changed", G_CALLBACK(quality_changed), NULL); + g_signal_connect(gui->quality, "value-changed", G_CALLBACK(quality_changed), NULL); DT_BAUHAUS_COMBOBOX_NEW_FULL(gui->preset, self, NULL, N_("DCP mode"), NULL, preset_last, preset_changed, self, diff --git a/src/imageio/format/jpeg.c b/src/imageio/format/jpeg.c index 3f73e132c931..3ae10e2e7445 100644 --- a/src/imageio/format/jpeg.c +++ b/src/imageio/format/jpeg.c @@ -577,7 +577,7 @@ void gui_init(dt_imageio_module_format_t *self) dt_bauhaus_widget_set_label(g->quality, NULL, N_("quality")); dt_bauhaus_slider_set(g->quality, dt_conf_get_int("plugins/imageio/format/jpeg/quality")); - g_signal_connect(G_OBJECT(g->quality), "value-changed", + g_signal_connect(g->quality, "value-changed", G_CALLBACK(quality_changed), NULL); DT_BAUHAUS_COMBOBOX_NEW_FULL diff --git a/src/imageio/format/jxl.c b/src/imageio/format/jxl.c index c81b47d9dcbe..84224219f946 100644 --- a/src/imageio/format/jxl.c +++ b/src/imageio/format/jxl.c @@ -606,7 +606,7 @@ void gui_init(dt_imageio_module_format_t *self) gtk_widget_set_tooltip_text(gui->quality, _("the quality of the output image\n0-29 = very lossy\n30-99 = JPEG " "quality comparable\n100 = lossless")); - g_signal_connect(G_OBJECT(gui->quality), "value-changed", G_CALLBACK(quality_changed), gui); + g_signal_connect(gui->quality, "value-changed", G_CALLBACK(quality_changed), gui); // encoding color profile combobox const int original = dt_conf_get_bool("plugins/imageio/format/jxl/original") & 1; @@ -634,7 +634,7 @@ void gui_init(dt_imageio_module_format_t *self) gtk_widget_set_tooltip_text(gui->effort, _("the effort used to encode the image, higher efforts will have " "better results at the expense of longer encoding times")); - g_signal_connect(G_OBJECT(gui->effort), "value-changed", G_CALLBACK(effort_changed), NULL); + g_signal_connect(gui->effort, "value-changed", G_CALLBACK(effort_changed), NULL); // decoding speed (tier) slider gui->tier = dt_bauhaus_slider_new_with_range( @@ -645,7 +645,7 @@ void gui_init(dt_imageio_module_format_t *self) dt_bauhaus_widget_set_label(gui->tier, NULL, N_("decoding speed")); gtk_widget_set_tooltip_text(gui->tier, _("the preferred decoding speed with some sacrifice of quality")); - g_signal_connect(G_OBJECT(gui->tier), "value-changed", G_CALLBACK(tier_changed), NULL); + g_signal_connect(gui->tier, "value-changed", G_CALLBACK(tier_changed), NULL); self->widget = dt_gui_vbox(gui->bpp, gui->pixel_type, gui->quality, gui->original, gui->effort, gui->tier); diff --git a/src/imageio/format/pdf.c b/src/imageio/format/pdf.c index 16fa16531ece..d7ad7ae08d30 100644 --- a/src/imageio/format/pdf.c +++ b/src/imageio/format/pdf.c @@ -641,7 +641,7 @@ void gui_init(dt_imageio_module_format_t *self) gtk_grid_attach(grid, GTK_WIDGET(d->dpi), 1, line, 1, 1); gtk_widget_set_tooltip_text(GTK_WIDGET(d->dpi), _("dpi of the images inside the PDF")); gtk_spin_button_set_value(d->dpi, dt_conf_get_float("plugins/imageio/format/pdf/dpi")); - g_signal_connect(G_OBJECT(d->dpi), "value-changed", G_CALLBACK(dpi_changed_callback), self); + g_signal_connect(d->dpi, "value-changed", G_CALLBACK(dpi_changed_callback), self); // rotate images yes|no @@ -684,7 +684,7 @@ void gui_init(dt_imageio_module_format_t *self) if(_pdf_bpp[i].bpp == bpp) sel = i; } gtk_grid_attach(grid, GTK_WIDGET(d->bpp), 0, ++line, 2, 1); - g_signal_connect(G_OBJECT(d->bpp), "value-changed", G_CALLBACK(bpp_toggle_callback), self); + g_signal_connect(d->bpp, "value-changed", G_CALLBACK(bpp_toggle_callback), self); gtk_widget_set_tooltip_text(d->bpp, _("bits per channel of the embedded images")); dt_bauhaus_combobox_set(d->bpp, sel); diff --git a/src/imageio/format/png.c b/src/imageio/format/png.c index 6b8179219c95..bd0713396b5c 100644 --- a/src/imageio/format/png.c +++ b/src/imageio/format/png.c @@ -701,7 +701,7 @@ void gui_init(dt_imageio_module_format_t *self) 0); dt_bauhaus_widget_set_label(gui->compression, NULL, N_("compression")); dt_bauhaus_slider_set(gui->compression, compression); - g_signal_connect(G_OBJECT(gui->compression), "value-changed", + g_signal_connect(gui->compression, "value-changed", G_CALLBACK(compression_level_changed), NULL); self->widget = dt_gui_vbox(gui->bit_depth, gui->compression); diff --git a/src/imageio/format/tiff.c b/src/imageio/format/tiff.c index 2d5a9dd4609f..13acafd6c1c8 100644 --- a/src/imageio/format/tiff.c +++ b/src/imageio/format/tiff.c @@ -910,7 +910,7 @@ void gui_init(dt_imageio_module_format_t *self) dt_confgen_get_int("plugins/imageio/format/tiff/compresslevel", DT_DEFAULT), 0); dt_bauhaus_widget_set_label(gui->compresslevel, NULL, N_("compression level")); dt_bauhaus_slider_set(gui->compresslevel, compresslevel); - g_signal_connect(G_OBJECT(gui->compresslevel), "value-changed", G_CALLBACK(compress_level_changed), NULL); + g_signal_connect(gui->compresslevel, "value-changed", G_CALLBACK(compress_level_changed), NULL); gtk_widget_set_visible(gui->compresslevel, compress != 0); gtk_widget_set_no_show_all(gui->compresslevel, TRUE); diff --git a/src/imageio/format/webp.c b/src/imageio/format/webp.c index a2d82d645987..69f205cf7cf5 100644 --- a/src/imageio/format/webp.c +++ b/src/imageio/format/webp.c @@ -421,7 +421,7 @@ void gui_init(dt_imageio_module_format_t *self) "for lossless, 0 is the fastest but gives larger files compared\n" "to the slowest 100.")); dt_bauhaus_slider_set(gui->quality, quality); - g_signal_connect(G_OBJECT(gui->quality), "value-changed", G_CALLBACK(quality_changed), NULL); + g_signal_connect(gui->quality, "value-changed", G_CALLBACK(quality_changed), NULL); gtk_widget_set_visible(gui->quality, comp_type != webp_lossless); gtk_widget_set_no_show_all(gui->quality, TRUE); diff --git a/src/imageio/storage/disk.c b/src/imageio/storage/disk.c index 36bd4675be09..5bde983ac6ea 100644 --- a/src/imageio/storage/disk.c +++ b/src/imageio/storage/disk.c @@ -281,7 +281,7 @@ void gui_init(dt_imageio_module_storage_t *self) GtkWidget *widget = dtgtk_button_new(dtgtk_cairo_paint_directory, CPF_NONE, NULL); gtk_widget_set_name(widget, "non-flat"); gtk_widget_set_tooltip_text(widget, _("select directory")); - g_signal_connect(G_OBJECT(widget), "clicked", G_CALLBACK(button_clicked), self); + g_signal_connect(widget, "clicked", G_CALLBACK(button_clicked), self); DT_BAUHAUS_COMBOBOX_NEW_FULL(d->onsave_action, self, NULL, N_("on conflict"), NULL, dt_conf_get_int("plugins/imageio/storage/disk/overwrite"), diff --git a/src/imageio/storage/gallery.c b/src/imageio/storage/gallery.c index 5b6549d5372e..8d7febe7a772 100644 --- a/src/imageio/storage/gallery.c +++ b/src/imageio/storage/gallery.c @@ -205,7 +205,7 @@ void gui_init(dt_imageio_module_storage_t *self) GtkWidget *widget = dtgtk_button_new(dtgtk_cairo_paint_directory, CPF_NONE, NULL); gtk_widget_set_name(widget, "non-flat"); gtk_widget_set_tooltip_text(widget, _("select directory")); - g_signal_connect(G_OBJECT(widget), "clicked", G_CALLBACK(button_clicked), self); + g_signal_connect(widget, "clicked", G_CALLBACK(button_clicked), self); d->title_entry = GTK_ENTRY(dt_action_entry_new diff --git a/src/imageio/storage/latex.c b/src/imageio/storage/latex.c index b3d7b441ac30..aff35e4f841c 100644 --- a/src/imageio/storage/latex.c +++ b/src/imageio/storage/latex.c @@ -191,7 +191,7 @@ void gui_init(dt_imageio_module_storage_t *self) GtkWidget *widget = dtgtk_button_new(dtgtk_cairo_paint_directory, CPF_NONE, NULL); gtk_widget_set_name(widget, "non-flat"); gtk_widget_set_tooltip_text(widget, _("select directory")); - g_signal_connect(G_OBJECT(widget), "clicked", G_CALLBACK(button_clicked), self); + g_signal_connect(widget, "clicked", G_CALLBACK(button_clicked), self); d->title_entry = GTK_ENTRY(dt_action_entry_new(DT_ACTION(self), N_("path"), G_CALLBACK(title_changed_callback), self, _("enter the title of the book"), diff --git a/src/imageio/storage/piwigo.c b/src/imageio/storage/piwigo.c index 138467ec737f..146b33f81596 100644 --- a/src/imageio/storage/piwigo.c +++ b/src/imageio/storage/piwigo.c @@ -1058,7 +1058,7 @@ void gui_init(dt_imageio_module_storage_t *self) index++; } gtk_widget_set_hexpand(ui->account_list, TRUE); - g_signal_connect(G_OBJECT(ui->account_list), "value-changed", + g_signal_connect(ui->account_list, "value-changed", G_CALLBACK(_piwigo_account_changed), (gpointer)ui); // server @@ -1100,7 +1100,7 @@ void gui_init(dt_imageio_module_storage_t *self) // login button GtkWidget *login_button = gtk_button_new_with_label(_("login")); gtk_widget_set_tooltip_text(login_button, _("Piwigo login")); - g_signal_connect(G_OBJECT(login_button), "clicked", + g_signal_connect(login_button, "clicked", G_CALLBACK(_piwigo_login_clicked), self); // status area @@ -1125,13 +1125,13 @@ void gui_init(dt_imageio_module_storage_t *self) ui->album_list = dt_bauhaus_combobox_new_action(DT_ACTION(self)); // Available albums dt_bauhaus_widget_set_label(ui->album_list, NULL, N_("album")); gtk_widget_set_hexpand(GTK_WIDGET(ui->album_list), TRUE); - g_signal_connect(G_OBJECT(ui->album_list), "value-changed", + g_signal_connect(ui->album_list, "value-changed", G_CALLBACK(_piwigo_album_changed), (gpointer)ui); gtk_widget_set_sensitive(ui->album_list, FALSE); GtkWidget *refresh_button = dtgtk_button_new(dtgtk_cairo_paint_refresh, CPF_NONE, NULL); gtk_widget_set_tooltip_text(refresh_button, _("refresh album list")); - g_signal_connect(G_OBJECT(refresh_button), "clicked", + g_signal_connect(refresh_button, "clicked", G_CALLBACK(_piwigo_refresh_clicked), (gpointer)ui); // new album @@ -1174,7 +1174,7 @@ void gui_init(dt_imageio_module_storage_t *self) dt_bauhaus_combobox_add(ui->conflict_action, _("skip")); dt_bauhaus_combobox_add(ui->conflict_action, _("update metadata")); dt_bauhaus_combobox_add(ui->conflict_action, _("overwrite")); - g_signal_connect(G_OBJECT(ui->conflict_action), "value-changed", + g_signal_connect(ui->conflict_action, "value-changed", G_CALLBACK(_piwigo_conflict_changed), self); dt_bauhaus_combobox_set(ui->conflict_action, dt_conf_get_int("storage/piwigo/conflict")); diff --git a/src/iop/agx.c b/src/iop/agx.c index 99f6174e6f47..ce27639126f6 100644 --- a/src/iop/agx.c +++ b/src/iop/agx.c @@ -1928,7 +1928,7 @@ static GtkWidget* _create_curve_graph_box(dt_iop_module_t *self, g_object_set_data(G_OBJECT(g->graph_drawing_area), "iop-instance", self); dt_action_define_iop(self, N_("curve"), N_("graph"), GTK_WIDGET(g->graph_drawing_area), NULL); gtk_widget_set_can_focus(GTK_WIDGET(g->graph_drawing_area), TRUE); - g_signal_connect(G_OBJECT(g->graph_drawing_area), "draw", G_CALLBACK(_agx_draw_curve), self); + g_signal_connect(g->graph_drawing_area, "draw", G_CALLBACK(_agx_draw_curve), self); gtk_widget_set_tooltip_text(GTK_WIDGET(g->graph_drawing_area), _("tone mapping curve")); // Pack drawing area at the top @@ -2054,7 +2054,7 @@ static void _add_exposure_box(dt_iop_module_t *self, dt_iop_agx_gui_data_t *g, d g->btn_read_exposure = dtgtk_button_new(dtgtk_cairo_paint_camera, 0, NULL); gtk_widget_set_tooltip_text(g->btn_read_exposure, _("read exposure from metadata and exposure module")); - g_signal_connect(G_OBJECT(g->btn_read_exposure), "clicked", G_CALLBACK(_read_exposure_params_callback), real_self); + g_signal_connect(g->btn_read_exposure, "clicked", G_CALLBACK(_read_exposure_params_callback), real_self); dt_action_define_iop(real_self, N_("exposure range"), N_("read exposure"), g->btn_read_exposure, &dt_action_def_button); dt_gui_box_add(g->range_exposure_picker_group, g->btn_read_exposure); diff --git a/src/iop/ashift.c b/src/iop/ashift.c index 0b5fd68efc27..58b31f26fbe6 100644 --- a/src/iop/ashift.c +++ b/src/iop/ashift.c @@ -5321,9 +5321,9 @@ static void cropmode_callback(GtkWidget *widget, dt_iop_module_t *self) _swap_shadow_crop_box(p,g); } -static int _event_fit_v_button_clicked(GtkWidget *widget, - const GdkEventButton *event, - dt_iop_module_t *self) +static gboolean _event_fit_v_button_clicked(GtkWidget *widget, + const GdkEventButton *event, + dt_iop_module_t *self) { if(darktable.gui->reset) return FALSE; @@ -5369,9 +5369,9 @@ static int _event_fit_v_button_clicked(GtkWidget *widget, return FALSE; } -static int _event_fit_h_button_clicked(GtkWidget *widget, - const GdkEventButton *event, - dt_iop_module_t *self) +static gboolean _event_fit_h_button_clicked(GtkWidget *widget, + const GdkEventButton *event, + dt_iop_module_t *self) { if(darktable.gui->reset) return FALSE; @@ -5417,9 +5417,9 @@ static int _event_fit_h_button_clicked(GtkWidget *widget, return FALSE; } -static int _event_fit_both_button_clicked(GtkWidget *widget, - const GdkEventButton *event, - dt_iop_module_t *self) +static gboolean _event_fit_both_button_clicked(GtkWidget *widget, + const GdkEventButton *event, + dt_iop_module_t *self) { if(darktable.gui->reset) return FALSE; @@ -5467,9 +5467,9 @@ static int _event_fit_both_button_clicked(GtkWidget *widget, return FALSE; } -static int _event_structure_auto_clicked(GtkWidget *widget, - const GdkEventButton *event, - dt_iop_module_t *self) +static gboolean _event_structure_auto_clicked(GtkWidget *widget, + const GdkEventButton *event, + dt_iop_module_t *self) { if(darktable.gui->reset) return FALSE; @@ -5856,9 +5856,9 @@ static float log2_curve(const float inval, const dt_bauhaus_curve_t dir) return outval; } -static int _event_structure_quad_clicked(GtkWidget *widget, - GdkEventButton *event, - dt_iop_module_t *self) +static gboolean _event_structure_quad_clicked(GtkWidget *widget, + GdkEventButton *event, + dt_iop_module_t *self) { dt_iop_ashift_gui_data_t *g = self->gui_data; if(darktable.gui->reset) return FALSE; @@ -5884,9 +5884,9 @@ static int _event_structure_quad_clicked(GtkWidget *widget, return TRUE; } -static int _event_structure_lines_clicked(GtkWidget *widget, - GdkEventButton *event, - dt_iop_module_t *self) +static gboolean _event_structure_lines_clicked(GtkWidget *widget, + GdkEventButton *event, + dt_iop_module_t *self) { dt_iop_ashift_gui_data_t *g = self->gui_data; if(darktable.gui->reset) return FALSE; @@ -5970,7 +5970,7 @@ void gui_init(dt_iop_module_t *self) dt_shortcut_register(ac, 0, 0, GDK_KEY_r, GDK_MOD1_MASK); g->cropmode = dt_bauhaus_combobox_from_params(self, "cropmode"); - g_signal_connect(G_OBJECT(g->cropmode), "value-changed", + g_signal_connect(g->cropmode, "value-changed", G_CALLBACK(cropmode_callback), self); GtkWidget *main_box = self->widget; @@ -6111,25 +6111,25 @@ void gui_init(dt_iop_module_t *self) (g->structure_quad, _("manually define perspective rectangle")); gtk_widget_set_tooltip_text(g->structure_lines, _("manually draw structure lines")); - g_signal_connect(G_OBJECT(g->fit_v), "button-press-event", + g_signal_connect(g->fit_v, "button-press-event", G_CALLBACK(_event_fit_v_button_clicked), - (gpointer)self); - g_signal_connect(G_OBJECT(g->fit_h), "button-press-event", + self); + g_signal_connect(g->fit_h, "button-press-event", G_CALLBACK(_event_fit_h_button_clicked), - (gpointer)self); - g_signal_connect(G_OBJECT(g->fit_both), "button-press-event", + self); + g_signal_connect(g->fit_both, "button-press-event", G_CALLBACK(_event_fit_both_button_clicked), - (gpointer)self); - g_signal_connect(G_OBJECT(g->structure_quad), "button-press-event", + self); + g_signal_connect(g->structure_quad, "button-press-event", G_CALLBACK(_event_structure_quad_clicked), - (gpointer)self); - g_signal_connect(G_OBJECT(g->structure_lines), "button-press-event", + self); + g_signal_connect(g->structure_lines, "button-press-event", G_CALLBACK(_event_structure_lines_clicked), - (gpointer)self); - g_signal_connect(G_OBJECT(g->structure_auto), "button-press-event", + self); + g_signal_connect(g->structure_auto, "button-press-event", G_CALLBACK(_event_structure_auto_clicked), - (gpointer)self); - g_signal_connect(G_OBJECT(self->widget), "draw", G_CALLBACK(_event_draw), self); + self); + g_signal_connect(self->widget, "draw", G_CALLBACK(_event_draw), self); dt_action_define_iop(self, N_("fit"), N_("vertical"), g->fit_v, &dt_action_def_button); diff --git a/src/iop/atrous.c b/src/iop/atrous.c index 1ea3d3282364..09d90d19fd53 100644 --- a/src/iop/atrous.c +++ b/src/iop/atrous.c @@ -1798,7 +1798,7 @@ void gui_init(dt_iop_module_t *self) " and chroma tabs")); gtk_widget_show(gtk_notebook_get_nth_page(g->channel_tabs, g->channel)); gtk_notebook_set_current_page(g->channel_tabs, g->channel); - g_signal_connect(G_OBJECT(g->channel_tabs), "switch_page", G_CALLBACK(tab_switch), self); + g_signal_connect(g->channel_tabs, "switch-page", G_CALLBACK(tab_switch), self); // graph g->area = GTK_DRAWING_AREA(dt_ui_resize_wrap @@ -1809,18 +1809,18 @@ void gui_init(dt_iop_module_t *self) g_object_set_data(G_OBJECT(g->area), "iop-instance", self); dt_action_define_iop(self, NULL, N_("graph"), GTK_WIDGET(g->area), &_action_def_equalizer); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(area_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", + g_signal_connect(g->area, "draw", G_CALLBACK(area_draw), self); + g_signal_connect(g->area, "button-press-event", G_CALLBACK(area_button_press), self); - g_signal_connect(G_OBJECT(g->area), "button-release-event", + g_signal_connect(g->area, "button-release-event", G_CALLBACK(area_button_release), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(area_motion_notify), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(area_enter_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "enter-notify-event", + g_signal_connect(g->area, "enter-notify-event", G_CALLBACK(area_enter_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", + g_signal_connect(g->area, "scroll-event", G_CALLBACK(area_scrolled), self); self->widget = dt_gui_vbox(g->channel_tabs, g->area); @@ -1828,7 +1828,7 @@ void gui_init(dt_iop_module_t *self) // mix slider g->mix = dt_bauhaus_slider_from_params(self, N_("mix")); gtk_widget_set_tooltip_text(g->mix, _("make effect stronger or weaker")); - g_signal_connect(G_OBJECT(g->mix), "value-changed", G_CALLBACK(mix_callback), self); + g_signal_connect(g->mix, "value-changed", G_CALLBACK(mix_callback), self); } void gui_cleanup(dt_iop_module_t *self) diff --git a/src/iop/basecurve.c b/src/iop/basecurve.c index a222747199a6..c0e1d0c0d765 100644 --- a/src/iop/basecurve.c +++ b/src/iop/basecurve.c @@ -2156,19 +2156,19 @@ void gui_init(dt_iop_module_t *self) g->logbase = dt_bauhaus_slider_new_with_range(self, 0.0f, 40.0f, 0, 0.0f, 2); dt_bauhaus_widget_set_label(g->logbase, NULL, N_("scale for graph")); - g_signal_connect(G_OBJECT(g->logbase), "value-changed", G_CALLBACK(logbase_callback), self); + g_signal_connect(g->logbase, "value-changed", G_CALLBACK(logbase_callback), self); dt_gui_box_add(self->widget, g->logbase); gtk_widget_add_events(GTK_WIDGET(g->area), GDK_POINTER_MOTION_MASK | darktable.gui->scroll_mask | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_widget_set_can_focus(GTK_WIDGET(g->area), TRUE); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(dt_iop_basecurve_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", G_CALLBACK(dt_iop_basecurve_button_press), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", G_CALLBACK(dt_iop_basecurve_motion_notify), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", G_CALLBACK(dt_iop_basecurve_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", G_CALLBACK(_scrolled), self); - g_signal_connect(G_OBJECT(g->area), "key-press-event", G_CALLBACK(dt_iop_basecurve_key_press), self); + g_signal_connect(g->area, "draw", G_CALLBACK(dt_iop_basecurve_draw), self); + g_signal_connect(g->area, "button-press-event", G_CALLBACK(dt_iop_basecurve_button_press), self); + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(dt_iop_basecurve_motion_notify), self); + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(dt_iop_basecurve_leave_notify), self); + g_signal_connect(g->area, "scroll-event", G_CALLBACK(_scrolled), self); + g_signal_connect(g->area, "key-press-event", G_CALLBACK(dt_iop_basecurve_key_press), self); } void gui_cleanup(dt_iop_module_t *self) diff --git a/src/iop/basicadj.c b/src/iop/basicadj.c index c9d20177f20c..fa79b0d59cac 100644 --- a/src/iop/basicadj.c +++ b/src/iop/basicadj.c @@ -639,7 +639,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_from_params(self, "middle_grey")); dt_bauhaus_slider_set_format(g->sl_middle_grey, "%"); gtk_widget_set_tooltip_text(g->sl_middle_grey, _("middle gray adjustment")); - g_signal_connect(G_OBJECT(g->sl_middle_grey), "quad-pressed", G_CALLBACK(_color_picker_callback), self); + g_signal_connect(g->sl_middle_grey, "quad-pressed", G_CALLBACK(_color_picker_callback), self); g->sl_brightness = dt_bauhaus_slider_from_params(self, N_("brightness")); dt_bauhaus_slider_set_soft_range(g->sl_brightness, -1.0, 1.0); @@ -660,7 +660,7 @@ void gui_init(dt_iop_module_t *self) _("apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" "right-click to cancel")); - g_signal_connect(G_OBJECT(g->bt_select_region), "toggled", G_CALLBACK(_select_region_toggled_callback), self); + g_signal_connect(g->bt_select_region, "toggled", G_CALLBACK(_select_region_toggled_callback), self); dt_gui_box_add(self->widget, dt_gui_expand(g->bt_auto_levels), dt_gui_expand(g->bt_select_region)); diff --git a/src/iop/blurs.c b/src/iop/blurs.c index a54c887e6600..0957976906f9 100644 --- a/src/iop/blurs.c +++ b/src/iop/blurs.c @@ -771,7 +771,7 @@ void gui_init(dt_iop_module_t *self) g->img_width = 0.f; g->area = GTK_DRAWING_AREA(dtgtk_drawing_area_new_with_height(0)); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(_dt_iop_tonecurve_draw), self); + g_signal_connect(g->area, "draw", G_CALLBACK(_dt_iop_tonecurve_draw), self); self->widget = dt_gui_vbox(g->area); g->radius = dt_bauhaus_slider_from_params(self, "radius"); diff --git a/src/iop/borders.c b/src/iop/borders.c index 4777c0299988..f99eec188976 100644 --- a/src/iop/borders.c +++ b/src/iop/borders.c @@ -854,8 +854,8 @@ void gui_changed(dt_iop_module_t *self, } } -static void _colorpick_color_set(GtkColorButton *widget, - dt_iop_module_t *self) +static void _colorpick_color_set(GtkWidget *widget, + dt_iop_module_t *self) { if(darktable.gui->reset) return; dt_iop_borders_params_t *p = self->params; @@ -872,7 +872,8 @@ static void _colorpick_color_set(GtkColorButton *widget, dt_dev_add_history_item(darktable.develop, self, TRUE); } -static void _frame_colorpick_color_set(GtkColorButton *widget, dt_iop_module_t *self) +static void _frame_colorpick_color_set(GtkWidget *widget, + dt_iop_module_t *self) { if(darktable.gui->reset) return; dt_iop_borders_params_t *p = self->params; @@ -1013,7 +1014,7 @@ void gui_init(dt_iop_module_t *self) g->colorpick = gtk_color_button_new_with_rgba(&color); gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->colorpick), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->colorpick), _("select border color")); - g_signal_connect(G_OBJECT(g->colorpick), "color-set", + g_signal_connect(g->colorpick, "color-set", G_CALLBACK(_colorpick_color_set), self); g->border_picker = dt_color_picker_new(self, DT_COLOR_PICKER_POINT, NULL); gtk_widget_set_tooltip_text(GTK_WIDGET(g->border_picker), @@ -1027,7 +1028,7 @@ void gui_init(dt_iop_module_t *self) gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->frame_colorpick), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->frame_colorpick), _("select frame line color")); - g_signal_connect(G_OBJECT(g->frame_colorpick), "color-set", + g_signal_connect(g->frame_colorpick, "color-set", G_CALLBACK(_frame_colorpick_color_set), self); g->frame_picker = dt_color_picker_new(self, DT_COLOR_PICKER_POINT, NULL); gtk_widget_set_tooltip_text(GTK_WIDGET(g->frame_picker), diff --git a/src/iop/channelmixer.c b/src/iop/channelmixer.c index 039ed653d262..1495e8330a02 100644 --- a/src/iop/channelmixer.c +++ b/src/iop/channelmixer.c @@ -612,25 +612,25 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_combobox_add(g->output_channel, _("blue")); dt_bauhaus_combobox_add(g->output_channel, C_("channelmixer", "gray")); dt_bauhaus_combobox_set(g->output_channel, CHANNEL_RED); - g_signal_connect(G_OBJECT(g->output_channel), "value-changed", G_CALLBACK(output_callback), self); + g_signal_connect(g->output_channel, "value-changed", G_CALLBACK(output_callback), self); /* red */ g->scale_red = dt_bauhaus_slider_new_with_range(self, -2.0, 2.0, 0, p->red[CHANNEL_RED], 3); gtk_widget_set_tooltip_text(g->scale_red, _("amount of red channel in the output channel")); dt_bauhaus_widget_set_label(g->scale_red, NULL, N_("red")); - g_signal_connect(G_OBJECT(g->scale_red), "value-changed", G_CALLBACK(red_callback), self); + g_signal_connect(g->scale_red, "value-changed", G_CALLBACK(red_callback), self); /* green */ g->scale_green = dt_bauhaus_slider_new_with_range(self, -2.0, 2.0, 0, p->green[CHANNEL_RED], 3); gtk_widget_set_tooltip_text(g->scale_green, _("amount of green channel in the output channel")); dt_bauhaus_widget_set_label(g->scale_green, NULL, N_("green")); - g_signal_connect(G_OBJECT(g->scale_green), "value-changed", G_CALLBACK(green_callback), self); + g_signal_connect(g->scale_green, "value-changed", G_CALLBACK(green_callback), self); /* blue */ g->scale_blue = dt_bauhaus_slider_new_with_range(self, -2.0, 2.0, 0, p->blue[CHANNEL_RED], 3); gtk_widget_set_tooltip_text(g->scale_blue, _("amount of blue channel in the output channel")); dt_bauhaus_widget_set_label(g->scale_blue, NULL, N_("blue")); - g_signal_connect(G_OBJECT(g->scale_blue), "value-changed", G_CALLBACK(blue_callback), self); + g_signal_connect(g->scale_blue, "value-changed", G_CALLBACK(blue_callback), self); self->widget = dt_gui_vbox(g->output_channel, g->scale_red, g->scale_green, g->scale_blue); } diff --git a/src/iop/channelmixerrgb.c b/src/iop/channelmixerrgb.c index 657cf81b3793..45b94e47ee96 100644 --- a/src/iop/channelmixerrgb.c +++ b/src/iop/channelmixerrgb.c @@ -2887,11 +2887,11 @@ static void _run_profile_callback(GtkWidget *widget, dt_dev_reprocess_preview(self->dev); } -static void _run_validation_callback(GtkWidget *widget, - GdkEventButton *event, - dt_iop_module_t *self) +static gboolean _run_validation_callback(GtkWidget *widget, + GdkEventButton *event, + dt_iop_module_t *self) { - if(darktable.gui->reset) return; + if(darktable.gui->reset) return FALSE; dt_iop_channelmixer_rgb_gui_data_t *g = self->gui_data; dt_iop_gui_enter_critical_section(self); @@ -2899,6 +2899,8 @@ static void _run_validation_callback(GtkWidget *widget, dt_iop_gui_leave_critical_section(self); dt_dev_reprocess_preview(self->dev); + + return TRUE; } static void _commit_profile_callback(GtkWidget *widget, @@ -3547,7 +3549,7 @@ static gboolean _illuminant_color_draw(GtkWidget *widget, static gboolean _target_color_draw(GtkWidget *widget, cairo_t *crf, - const dt_iop_module_t *self) + dt_iop_module_t *self) { const dt_iop_channelmixer_rgb_gui_data_t *g = self->gui_data; @@ -4452,7 +4454,7 @@ void gui_init(dt_iop_module_t *self) _("this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation.")); - g_signal_connect(G_OBJECT(g->illum_color), "draw", + g_signal_connect(g->illum_color, "draw", G_CALLBACK(_illuminant_color_draw), self); g->color_picker = dt_color_picker_new(self, DT_COLOR_PICKER_AREA, NULL); @@ -4478,14 +4480,14 @@ void gui_init(dt_iop_module_t *self) (self, 0., ILLUM_X_MAX, 0, 0, 1, 0); dt_bauhaus_widget_set_label(g->illum_x, NULL, N_("hue")); dt_bauhaus_slider_set_format(g->illum_x, "°"); - g_signal_connect(G_OBJECT(g->illum_x), "value-changed", + g_signal_connect(g->illum_x, "value-changed", G_CALLBACK(_illum_xy_callback), self); g->illum_y = dt_bauhaus_slider_new_with_range(self, 0., 100., 0, 0, 1); dt_bauhaus_widget_set_label(g->illum_y, NULL, N_("chroma")); dt_bauhaus_slider_set_format(g->illum_y, "%"); dt_bauhaus_slider_set_hard_max(g->illum_y, ILLUM_Y_MAX); - g_signal_connect(G_OBJECT(g->illum_y), "value-changed", + g_signal_connect(g->illum_y, "value-changed", G_CALLBACK(_illum_xy_callback), self); dt_gui_box_add(self->widget, g->illum_x, g->illum_y); @@ -4521,7 +4523,7 @@ void gui_init(dt_iop_module_t *self) 0, NULL, self, N_("correction"), N_("measure")); - g_signal_connect(G_OBJECT(g->spot_mode), "value-changed", + g_signal_connect(g->spot_mode, "value-changed", G_CALLBACK(_spot_settings_changed_callback), self); const gchar *label = N_("take channel mixing into account"); @@ -4533,14 +4535,14 @@ void gui_init(dt_iop_module_t *self) (g->use_mixing, _("compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered.")); - g_signal_connect(G_OBJECT(g->use_mixing), "toggled", + g_signal_connect(g->use_mixing, "toggled", G_CALLBACK(_spot_settings_changed_callback), self); g->origin_spot = gtk_drawing_area_new(); gtk_widget_set_vexpand(g->origin_spot, TRUE); gtk_widget_set_tooltip_text(GTK_WIDGET(g->origin_spot), _("the input color that should be mapped to the target")); - g_signal_connect(G_OBJECT(g->origin_spot), "draw", + g_signal_connect(g->origin_spot, "draw", G_CALLBACK(_origin_color_draw), self); g->Lch_origin = gtk_label_new(_("L: \tN/A\nh: \tN/A\nc: \tN/A")); @@ -4552,13 +4554,13 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_size_request(g->target_spot, -1, DT_PIXEL_APPLY_DPI(darktable.bauhaus->quad_width)); gtk_widget_set_tooltip_text(GTK_WIDGET(g->target_spot), _("the desired target color after mapping")); - g_signal_connect(G_OBJECT(g->target_spot), "draw", G_CALLBACK(_target_color_draw), self); + g_signal_connect(g->target_spot, "draw", G_CALLBACK(_target_color_draw), self); g->lightness_spot = dt_bauhaus_slider_new_with_range(self, 0., LIGHTNESS_MAX, 0, 0, 1); dt_bauhaus_widget_set_label(g->lightness_spot, N_("mapping"), N_("lightness")); dt_bauhaus_slider_set_format(g->lightness_spot, "%"); dt_bauhaus_slider_set_default(g->lightness_spot, 50.f); - g_signal_connect(G_OBJECT(g->lightness_spot), "value-changed", + g_signal_connect(g->lightness_spot, "value-changed", G_CALLBACK(_spot_settings_changed_callback), self); g->hue_spot = dt_bauhaus_slider_new_with_range_and_feedback @@ -4566,13 +4568,13 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_widget_set_label(g->hue_spot, N_("mapping"), N_("hue")); dt_bauhaus_slider_set_format(g->hue_spot, "°"); dt_bauhaus_slider_set_default(g->hue_spot, 0.f); - g_signal_connect(G_OBJECT(g->hue_spot), "value-changed", + g_signal_connect(g->hue_spot, "value-changed", G_CALLBACK(_spot_settings_changed_callback), self); g->chroma_spot = dt_bauhaus_slider_new_with_range(self, 0., CHROMA_MAX, 0, 0, 1); dt_bauhaus_widget_set_label(g->chroma_spot, N_("mapping"), N_("chroma")); dt_bauhaus_slider_set_default(g->chroma_spot, 0.f); - g_signal_connect(G_OBJECT(g->chroma_spot), "value-changed", + g_signal_connect(g->chroma_spot, "value-changed", G_CALLBACK(_spot_settings_changed_callback), self); dt_gui_box_add(g->csspot.container, @@ -4644,7 +4646,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(g->cs.expander, _("use a color checker target to autoset CAT and channels")); - g_signal_connect(G_OBJECT(g->cs.toggle), "toggled", + g_signal_connect(g->cs.toggle, "toggled", G_CALLBACK(_start_profiling_callback), self); DT_BAUHAUS_COMBOBOX_NEW_FULL @@ -4683,7 +4685,7 @@ void gui_init(dt_iop_module_t *self) _("reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" "the patches frame cast a shadows on the edges of the patch." )); - g_signal_connect(G_OBJECT(g->safety), "value-changed", + g_signal_connect(g->safety, "value-changed", G_CALLBACK(_safety_changed_callback), self); g->label_delta_E = dt_ui_label_new(""); @@ -4693,23 +4695,23 @@ void gui_init(dt_iop_module_t *self) g->button_commit = dtgtk_button_new(dtgtk_cairo_paint_check_mark, 0, NULL); dt_action_define_iop(self, N_("calibrate"), N_("accept"), g->button_commit, &dt_action_def_button); - g_signal_connect(G_OBJECT(g->button_commit), "button-press-event", - G_CALLBACK(_commit_profile_callback), (gpointer)self); + g_signal_connect(g->button_commit, "button-press-event", + G_CALLBACK(_commit_profile_callback), self); gtk_widget_set_tooltip_text(g->button_commit, _("accept the computed profile and set it in the module")); g->button_profile = dtgtk_button_new(dtgtk_cairo_paint_refresh, 0, NULL); dt_action_define_iop(self, N_("calibrate"), N_("recompute"), g->button_profile, &dt_action_def_button); - g_signal_connect(G_OBJECT(g->button_profile), "button-press-event", - G_CALLBACK(_run_profile_callback), (gpointer)self); + g_signal_connect(g->button_profile, "button-press-event", + G_CALLBACK(_run_profile_callback), self); gtk_widget_set_tooltip_text(g->button_profile, _("recompute the profile")); g->button_validate = dtgtk_button_new(dtgtk_cairo_paint_softproof, 0, NULL); dt_action_define_iop(self, N_("calibrate"), N_("validate"), g->button_validate, &dt_action_def_button); - g_signal_connect(G_OBJECT(g->button_validate), "button-press-event", - G_CALLBACK(_run_validation_callback), (gpointer)self); + g_signal_connect(g->button_validate, "button-press-event", + G_CALLBACK(_run_validation_callback), self); gtk_widget_set_tooltip_text(g->button_validate, _("check the output delta E")); dt_gui_box_add(g->cs.container, g->checkers_list, g->optimize, g->safety, diff --git a/src/iop/clahe.c b/src/iop/clahe.c index 785d102415f4..a01176dc2e8b 100644 --- a/src/iop/clahe.c +++ b/src/iop/clahe.c @@ -326,9 +326,9 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(GTK_WIDGET(g->scale1), _("size of features to preserve")); gtk_widget_set_tooltip_text(GTK_WIDGET(g->scale2), _("strength of the effect")); - g_signal_connect(G_OBJECT(g->scale1), "value-changed", + g_signal_connect(g->scale1, "value-changed", G_CALLBACK(radius_callback), self); - g_signal_connect(G_OBJECT(g->scale2), "value-changed", + g_signal_connect(g->scale2, "value-changed", G_CALLBACK(slope_callback), self); self->widget = dt_gui_vbox(g->scale1, g->scale2); diff --git a/src/iop/clipping.c b/src/iop/clipping.c index de5509bf205a..396c8c8dbde4 100644 --- a/src/iop/clipping.c +++ b/src/iop/clipping.c @@ -2105,7 +2105,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_combobox_add(g->hvflip, _("horizontal")); dt_bauhaus_combobox_add(g->hvflip, _("vertical")); dt_bauhaus_combobox_add(g->hvflip, _("both")); - g_signal_connect(G_OBJECT(g->hvflip), "value-changed", G_CALLBACK(hvflip_callback), self); + g_signal_connect(g->hvflip, "value-changed", G_CALLBACK(hvflip_callback), self); gtk_widget_set_tooltip_text(g->hvflip, _("mirror image horizontally and/or vertically")); dt_gui_box_add(self->widget, g->hvflip); @@ -2121,7 +2121,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_combobox_add(g->keystone_type, _("horizontal")); dt_bauhaus_combobox_add(g->keystone_type, _("full")); gtk_widget_set_tooltip_text(g->keystone_type, _("set perspective correction for your image")); - g_signal_connect(G_OBJECT(g->keystone_type), "value-changed", G_CALLBACK(keystone_type_changed), self); + g_signal_connect(g->keystone_type, "value-changed", G_CALLBACK(keystone_type_changed), self); dt_gui_box_add(self->widget, g->keystone_type); g->crop_auto = dt_bauhaus_combobox_from_params(self, "crop_auto"); @@ -2236,12 +2236,12 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_combobox_set(g->aspect_presets, 0); - g_signal_connect(G_OBJECT(g->aspect_presets), "value-changed", G_CALLBACK(aspect_presets_changed), self); + g_signal_connect(g->aspect_presets, "value-changed", G_CALLBACK(aspect_presets_changed), self); gtk_widget_set_tooltip_text(g->aspect_presets, _("set the aspect ratio\n" "the list is sorted: from most square to least square\n" "to enter custom aspect ratio open the combobox and type ratio in x:y or decimal format")); dt_bauhaus_widget_set_quad_paint(g->aspect_presets, dtgtk_cairo_paint_aspectflip, 0, NULL); - g_signal_connect(G_OBJECT(g->aspect_presets), "quad-pressed", G_CALLBACK(aspect_flip), self); + g_signal_connect(g->aspect_presets, "quad-pressed", G_CALLBACK(aspect_flip), self); dt_gui_box_add(self->widget, g->aspect_presets); self->widget = dt_ui_notebook_page(g->notebook, _("margins"), NULL); diff --git a/src/iop/colorbalance.c b/src/iop/colorbalance.c index 0ca694cb4b5e..fc559de74fa7 100644 --- a/src/iop/colorbalance.c +++ b/src/iop/colorbalance.c @@ -1814,8 +1814,8 @@ static void _cycle_layout_callback(GtkWidget *label, GdkEventButton *event, dt_i #define HSL_CALLBACK(which) \ static void which##_callback(GtkWidget *slider, dt_iop_module_t *self) \ { \ - dt_iop_colorbalance_params_t *p = self->params; \ - dt_iop_colorbalance_gui_data_t *g = self->gui_data; \ + dt_iop_colorbalance_params_t *p = self->params; \ + dt_iop_colorbalance_gui_data_t *g = self->gui_data; \ \ if(darktable.gui->reset) return; \ \ @@ -1861,7 +1861,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_combobox_add(g->controls, _("both")); dt_gui_box_add(self->widget, g->controls); gtk_widget_set_tooltip_text(g->controls, _("color-grading mapping method")); - g_signal_connect(G_OBJECT(g->controls), "value-changed", G_CALLBACK(controls_callback), self); + g_signal_connect(g->controls, "value-changed", G_CALLBACK(controls_callback), self); const char *mode = dt_conf_get_string_const("plugins/darkroom/colorbalance/controls"); dt_bauhaus_combobox_set(g->controls, !g_strcmp0(mode, "RGBL") ? RGBL : @@ -1898,7 +1898,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(g->main_label, _("click to cycle layout")); GtkWidget *main_label_box = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER(main_label_box), g->main_label); - g_signal_connect(G_OBJECT(main_label_box), "button-release-event", G_CALLBACK(_cycle_layout_callback), self); + g_signal_connect(main_label_box, "button-release-event", G_CALLBACK(_cycle_layout_callback), self); g->main_box = gtk_event_box_new(); // is filled in _configure_slider_blocks @@ -1944,7 +1944,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_stop(g->hue_##which, 0.830f, 1.0f, 0.0f, 1.0f); \ dt_bauhaus_slider_set_stop(g->hue_##which, 1.0f, 1.0f, 0.0f, 0.0f); \ gtk_widget_set_tooltip_text(g->hue_##which, _("select the hue")); \ - g_signal_connect(G_OBJECT(g->hue_##which), "value-changed", \ + g_signal_connect(g->hue_##which, "value-changed", \ G_CALLBACK(which##_callback), self); \ \ g->sat_##which = dt_bauhaus_slider_new_with_range_and_feedback(self, \ @@ -1955,7 +1955,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_stop(g->sat_##which, 0.0f, 0.2f, 0.2f, 0.2f); \ dt_bauhaus_slider_set_stop(g->sat_##which, 1.0f, 1.0f, 1.0f, 1.0f); \ gtk_widget_set_tooltip_text(g->sat_##which, _("select the saturation")); \ - g_signal_connect(G_OBJECT(g->sat_##which), "value-changed", \ + g_signal_connect(g->sat_##which, "value-changed", \ G_CALLBACK(which##_callback), self); \ \ dt_gui_box_add(self->widget, g->hue_##which, g->sat_##which); \ diff --git a/src/iop/colorbalancergb.c b/src/iop/colorbalancergb.c index 13cf1f84b922..5645d57842bf 100644 --- a/src/iop/colorbalancergb.c +++ b/src/iop/colorbalancergb.c @@ -1972,7 +1972,7 @@ void gui_init(dt_iop_module_t *self) "plugins/darkroom/colorbalancergb/graphheight")); g_object_set_data(G_OBJECT(g->area), "iop-instance", self); dt_action_define_iop(self, NULL, N_("graph"), GTK_WIDGET(g->area), NULL); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(dt_iop_tonecurve_draw), self); + g_signal_connect(g->area, "draw", G_CALLBACK(dt_iop_tonecurve_draw), self); dt_gui_box_add(self->widget, GTK_WIDGET(g->area)); g->shadows_weight = dt_bauhaus_slider_from_params(self, "shadows_weight"); @@ -2011,17 +2011,17 @@ void gui_init(dt_iop_module_t *self) g->checker_color_1_picker = gtk_color_button_new(); gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->checker_color_1_picker), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->checker_color_1_picker), _("select color of the checkerboard from a swatch")); - g_signal_connect(G_OBJECT(g->checker_color_1_picker), "color-set", G_CALLBACK(checker_1_picker_callback), self); + g_signal_connect(g->checker_color_1_picker, "color-set", G_CALLBACK(checker_1_picker_callback), self); g->checker_color_2_picker = gtk_color_button_new(); gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->checker_color_2_picker), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->checker_color_2_picker), _("select color of the checkerboard from a swatch")); - g_signal_connect(G_OBJECT(g->checker_color_2_picker), "color-set", G_CALLBACK(checker_2_picker_callback), self); + g_signal_connect(g->checker_color_2_picker, "color-set", G_CALLBACK(checker_2_picker_callback), self); g->checker_size = dt_bauhaus_slider_new_with_range(self, 2., 32., 0, 8., 0); dt_bauhaus_slider_set_format(g->checker_size, _(" px")); dt_bauhaus_widget_set_label(g->checker_size, NULL, _("checkerboard size")); - g_signal_connect(G_OBJECT(g->checker_size), "value-changed", G_CALLBACK(checker_size_callback), self); + g_signal_connect(g->checker_size, "value-changed", G_CALLBACK(checker_size_callback), self); dt_gui_box_add(self->widget, dt_gui_hbox(dt_gui_expand(dt_ui_label_new(_("checkerboard color 1"))), g->checker_color_1_picker), diff --git a/src/iop/colorchecker.c b/src/iop/colorchecker.c index 41e0b5237e34..ce5ae6b54c39 100644 --- a/src/iop/colorchecker.c +++ b/src/iop/colorchecker.c @@ -1537,11 +1537,11 @@ void gui_init(dt_iop_module_t *self) GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK); - g_signal_connect(G_OBJECT(g->area), "draw", + g_signal_connect(g->area, "draw", G_CALLBACK(checker_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", + g_signal_connect(g->area, "button-press-event", G_CALLBACK(checker_button_press), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(checker_motion_notify), self); g->patch = 0; @@ -1615,17 +1615,17 @@ void gui_init(dt_iop_module_t *self) self->widget = dt_gui_vbox(g->area, g->combobox_patch, g->scale_L, g->scale_a, g->scale_b, g->scale_C, g->combobox_target); - g_signal_connect(G_OBJECT(g->combobox_patch), "value-changed", + g_signal_connect(g->combobox_patch, "value-changed", G_CALLBACK(patch_callback), self); - g_signal_connect(G_OBJECT(g->scale_L), "value-changed", + g_signal_connect(g->scale_L, "value-changed", G_CALLBACK(target_L_callback), self); - g_signal_connect(G_OBJECT(g->scale_a), "value-changed", + g_signal_connect(g->scale_a, "value-changed", G_CALLBACK(target_a_callback), self); - g_signal_connect(G_OBJECT(g->scale_b), "value-changed", + g_signal_connect(g->scale_b, "value-changed", G_CALLBACK(target_b_callback), self); - g_signal_connect(G_OBJECT(g->scale_C), "value-changed", + g_signal_connect(g->scale_C, "value-changed", G_CALLBACK(target_C_callback), self); - g_signal_connect(G_OBJECT(g->combobox_target), "value-changed", + g_signal_connect(g->combobox_target, "value-changed", G_CALLBACK(target_callback), self); } diff --git a/src/iop/colorcorrection.c b/src/iop/colorcorrection.c index 8a7551e3c5b4..687236deb5b8 100644 --- a/src/iop/colorcorrection.c +++ b/src/iop/colorcorrection.c @@ -246,15 +246,15 @@ void gui_init(dt_iop_module_t *self) | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_widget_set_can_focus(GTK_WIDGET(g->area), TRUE); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(dt_iop_colorcorrection_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", G_CALLBACK(dt_iop_colorcorrection_button_press), + g_signal_connect(g->area, "draw", G_CALLBACK(dt_iop_colorcorrection_draw), self); + g_signal_connect(g->area, "button-press-event", G_CALLBACK(dt_iop_colorcorrection_button_press), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", G_CALLBACK(dt_iop_colorcorrection_motion_notify), + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(dt_iop_colorcorrection_motion_notify), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", G_CALLBACK(dt_iop_colorcorrection_leave_notify), + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(dt_iop_colorcorrection_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", G_CALLBACK(dt_iop_colorcorrection_scrolled), self); - g_signal_connect(G_OBJECT(g->area), "key-press-event", G_CALLBACK(dt_iop_colorcorrection_key_press), self); + g_signal_connect(g->area, "scroll-event", G_CALLBACK(dt_iop_colorcorrection_scrolled), self); + g_signal_connect(g->area, "key-press-event", G_CALLBACK(dt_iop_colorcorrection_key_press), self); self->widget = dt_gui_vbox(g->area); g->slider = dt_bauhaus_slider_from_params(self, N_("saturation")); diff --git a/src/iop/colorequal.c b/src/iop/colorequal.c index eb44791463e4..cbf2362fa341 100644 --- a/src/iop/colorequal.c +++ b/src/iop/colorequal.c @@ -3005,7 +3005,7 @@ void gui_init(dt_iop_module_t *self) static dt_action_def_t notebook_def = { }; g->notebook = dt_ui_notebook_new(¬ebook_def); dt_action_define_iop(self, NULL, N_("page"), GTK_WIDGET(g->notebook), ¬ebook_def); - g_signal_connect(G_OBJECT(g->notebook), "switch_page", + g_signal_connect(g->notebook, "switch-page", G_CALLBACK(_channel_tabs_switch_callback), self); // graph @@ -3024,16 +3024,16 @@ void gui_init(dt_iop_module_t *self) | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK | GDK_SMOOTH_SCROLL_MASK); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(_iop_colorequalizer_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", + g_signal_connect(g->area, "draw", G_CALLBACK(_iop_colorequalizer_draw), self); + g_signal_connect(g->area, "button-press-event", G_CALLBACK(_area_button_press_callback), self); - g_signal_connect(G_OBJECT(g->area), "button-release-event", + g_signal_connect(g->area, "button-release-event", G_CALLBACK(_area_button_release_callback), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(_area_motion_notify_callback), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", + g_signal_connect(g->area, "scroll-event", G_CALLBACK(_area_scrolled_callback), self); - g_signal_connect(G_OBJECT(g->area), "size_allocate", + g_signal_connect(g->area, "size-allocate", G_CALLBACK(_area_size_callback), self); GtkWidget *box = self->widget = dt_gui_vbox(g->notebook, g->area); diff --git a/src/iop/colorin.c b/src/iop/colorin.c index daefabb704de..9f67f0d771f7 100644 --- a/src/iop/colorin.c +++ b/src/iop/colorin.c @@ -2052,10 +2052,10 @@ void gui_init(dt_iop_module_t *self) g_free(tooltip); } - g_signal_connect(G_OBJECT(g->profile_combobox), "value-changed", - G_CALLBACK(_profile_changed), (gpointer)self); - g_signal_connect(G_OBJECT(g->work_combobox), "value-changed", - G_CALLBACK(_workicc_changed), (gpointer)self); + g_signal_connect(g->profile_combobox, "value-changed", + G_CALLBACK(_profile_changed), self); + g_signal_connect(g->work_combobox, "value-changed", + G_CALLBACK(_workicc_changed), self); g->clipping_combobox = dt_bauhaus_combobox_from_params(self, "normalize"); gtk_widget_set_tooltip_text(g->clipping_combobox, diff --git a/src/iop/colormapping.c b/src/iop/colormapping.c index 3a9f2ed2b06e..cc0a264c5a1a 100644 --- a/src/iop/colormapping.c +++ b/src/iop/colormapping.c @@ -992,10 +992,10 @@ void gui_init(dt_iop_module_t *self) g->buffer = NULL; g->source_area = dtgtk_drawing_area_new_with_aspect_ratio(1.0 / 3.0); - g_signal_connect(G_OBJECT(g->source_area), "draw", G_CALLBACK(cluster_preview_draw), self); + g_signal_connect(g->source_area, "draw", G_CALLBACK(cluster_preview_draw), self); g->target_area = dtgtk_drawing_area_new_with_aspect_ratio(1.0 / 3.0); - g_signal_connect(G_OBJECT(g->target_area), "draw", G_CALLBACK(cluster_preview_draw), self); + g_signal_connect(g->target_area, "draw", G_CALLBACK(cluster_preview_draw), self); GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); diff --git a/src/iop/colorout.c b/src/iop/colorout.c index 9ba89ed74c0d..b6f331e5abb6 100644 --- a/src/iop/colorout.c +++ b/src/iop/colorout.c @@ -862,7 +862,7 @@ void gui_init(dt_iop_module_t *self) self->widget = dt_gui_vbox(g->output_intent, g->output_profile); - g_signal_connect(G_OBJECT(g->output_profile), "value-changed", + g_signal_connect(g->output_profile, "value-changed", G_CALLBACK(output_profile_changed), (gpointer)self); // reload the profiles when the display or softproof profile changed! diff --git a/src/iop/colorzones.c b/src/iop/colorzones.c index e79d373e56a5..bd3d074da6d5 100644 --- a/src/iop/colorzones.c +++ b/src/iop/colorzones.c @@ -2628,7 +2628,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_show(gtk_notebook_get_nth_page(g->channel_tabs, g->channel)); gtk_notebook_set_current_page(g->channel_tabs, g->channel); - g_signal_connect(G_OBJECT(g->channel_tabs), "switch_page", + g_signal_connect(g->channel_tabs, "switch-page", G_CALLBACK(_channel_tabs_switch_callback), self); // color pickers @@ -2674,14 +2674,14 @@ void gui_init(dt_iop_module_t *self) PANGO_ELLIPSIZE_START); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->chk_edit_by_area), g->edit_by_area); gtk_widget_set_tooltip_text(g->chk_edit_by_area, _("edit the curve nodes by area")); - g_signal_connect(G_OBJECT(g->chk_edit_by_area), "toggled", + g_signal_connect(g->chk_edit_by_area, "toggled", G_CALLBACK(_edit_by_area_callback), self); // display selection g->bt_showmask = dtgtk_togglebutton_new(dtgtk_cairo_paint_showmask, 0, NULL); dt_gui_add_class(g->bt_showmask, "dt_transparent_background"); gtk_widget_set_tooltip_text(g->bt_showmask, _("display selection")); - g_signal_connect(G_OBJECT(g->bt_showmask), "toggled", + g_signal_connect(g->bt_showmask, "toggled", G_CALLBACK(_display_mask_callback), self); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_showmask), FALSE); @@ -2707,25 +2707,25 @@ void gui_init(dt_iop_module_t *self) g_object_set_data(G_OBJECT(g->area), "iop-instance", self); dt_action_define_iop(self, NULL, N_("graph"), GTK_WIDGET(g->area), &_action_def_zones); gtk_widget_set_can_focus(GTK_WIDGET(g->area), TRUE); - g_signal_connect(G_OBJECT(g->area), "draw", + g_signal_connect(g->area, "draw", G_CALLBACK(_area_draw_callback), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", + g_signal_connect(g->area, "button-press-event", G_CALLBACK(_area_button_press_callback), self); - g_signal_connect(G_OBJECT(g->area), "button-release-event", + g_signal_connect(g->area, "button-release-event", G_CALLBACK(_area_button_release_callback), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(_area_motion_notify_callback), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(_area_leave_notify_callback), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", + g_signal_connect(g->area, "scroll-event", G_CALLBACK(_area_scrolled_callback), self); - g_signal_connect(G_OBJECT(g->area), "key-press-event", + g_signal_connect(g->area, "key-press-event", G_CALLBACK(_area_key_press_callback), self); gtk_widget_add_events(GTK_WIDGET(g->bottom_area), GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(g->bottom_area), "draw", + g_signal_connect(g->bottom_area, "draw", G_CALLBACK(_bottom_area_draw_callback), self); - g_signal_connect(G_OBJECT(g->bottom_area), "button-press-event", + g_signal_connect(g->bottom_area, "button-press-event", G_CALLBACK(_bottom_area_button_press_callback), self); @@ -2736,7 +2736,7 @@ void gui_init(dt_iop_module_t *self) "- cubic spline is better to produce smooth curves but oscillates when nodes are too close\n" "- centripetal is better to avoids cusps and oscillations with close nodes but is less smooth\n" "- monotonic is better for accuracy of pure analytical functions (log, gamma, exp)")); - g_signal_connect(G_OBJECT(g->interpolator), "value-changed", + g_signal_connect(g->interpolator, "value-changed", G_CALLBACK(_interpolator_callback), self); } diff --git a/src/iop/crop.c b/src/iop/crop.c index 4b90763e7712..c29bf1c32f41 100644 --- a/src/iop/crop.c +++ b/src/iop/crop.c @@ -1269,7 +1269,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_combobox_set(g->aspect_presets, 0); - g_signal_connect(G_OBJECT(g->aspect_presets), "value-changed", + g_signal_connect(g->aspect_presets, "value-changed", G_CALLBACK(_event_aspect_presets_changed), self); gtk_widget_set_tooltip_text (g->aspect_presets, diff --git a/src/iop/denoiseprofile.c b/src/iop/denoiseprofile.c index 1f57e36269e7..7ce956ff04c5 100644 --- a/src/iop/denoiseprofile.c +++ b/src/iop/denoiseprofile.c @@ -3774,13 +3774,13 @@ void gui_init(dt_iop_module_t *self) dt_ui_notebook_page(g->channel_tabs, N_("R"), NULL); dt_ui_notebook_page(g->channel_tabs, N_("G"), NULL); dt_ui_notebook_page(g->channel_tabs, N_("B"), NULL); - g_signal_connect(G_OBJECT(g->channel_tabs), "switch_page", + g_signal_connect(g->channel_tabs, "switch-page", G_CALLBACK(denoiseprofile_tab_switch), self); g->channel_tabs_Y0U0V0 = GTK_NOTEBOOK(gtk_notebook_new()); dt_ui_notebook_page(g->channel_tabs_Y0U0V0, N_("Y0"), NULL); dt_ui_notebook_page(g->channel_tabs_Y0U0V0, N_("U0V0"), NULL); - g_signal_connect(G_OBJECT(g->channel_tabs_Y0U0V0), "switch_page", + g_signal_connect(g->channel_tabs_Y0U0V0, "switch-page", G_CALLBACK(denoiseprofile_tab_switch), self); const int ch = (int)g->channel; @@ -3802,16 +3802,16 @@ void gui_init(dt_iop_module_t *self) "plugins/darkroom/denoiseprofile/graphheight")); dt_action_define_iop(self, NULL, N_("graph"), GTK_WIDGET(g->area), NULL); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(denoiseprofile_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", + g_signal_connect(GTK_WIDGET(g->area), "draw", G_CALLBACK(denoiseprofile_draw), self); + g_signal_connect(GTK_WIDGET(g->area), "button-press-event", G_CALLBACK(denoiseprofile_button_press), self); - g_signal_connect(G_OBJECT(g->area), "button-release-event", + g_signal_connect(GTK_WIDGET(g->area), "button-release-event", G_CALLBACK(denoiseprofile_button_release), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", + g_signal_connect(GTK_WIDGET(g->area), "motion-notify-event", G_CALLBACK(denoiseprofile_motion_notify), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", + g_signal_connect(GTK_WIDGET(g->area), "leave-notify-event", G_CALLBACK(denoiseprofile_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", + g_signal_connect(GTK_WIDGET(g->area), "scroll-event", G_CALLBACK(denoiseprofile_scrolled), self); dt_gui_box_add(g->box_wavelets, g->channel_tabs, g->channel_tabs_Y0U0V0, g->area); @@ -3839,14 +3839,14 @@ void gui_init(dt_iop_module_t *self) dt_gui_hbox(dt_ui_label_new(_("variance green: ")), g->label_var_G), dt_gui_hbox(dt_ui_label_new(_("variance blue: ")), g->label_var_B)); - g_signal_connect(G_OBJECT(g->box_variance), "draw", + g_signal_connect(g->box_variance, "draw", G_CALLBACK(denoiseprofile_draw_variance), self); // start building top level widget g->profile = dt_bauhaus_combobox_new(self); dt_bauhaus_widget_set_label(g->profile, NULL, N_("profile")); - g_signal_connect(G_OBJECT(g->profile), "value-changed", + g_signal_connect(g->profile, "value-changed", G_CALLBACK(profile_callback), self); self->widget = dt_gui_vbox(g->profile); diff --git a/src/iop/exposure.c b/src/iop/exposure.c index 2b23da4dd2a1..d55a5a477e8c 100644 --- a/src/iop/exposure.c +++ b/src/iop/exposure.c @@ -1295,7 +1295,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(GTK_WIDGET(g->origin_spot), _("the input color that should be mapped to the target")); - g_signal_connect(G_OBJECT(g->origin_spot), "draw", G_CALLBACK(_origin_color_draw), self); + g_signal_connect(g->origin_spot, "draw", G_CALLBACK(_origin_color_draw), self); g->Lch_origin = gtk_label_new(_("L : \tN/A")); gtk_widget_set_tooltip_text @@ -1309,12 +1309,12 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(GTK_WIDGET(g->target_spot), _("the desired target exposure after mapping")); - g_signal_connect(G_OBJECT(g->target_spot), "draw", G_CALLBACK(_target_color_draw), self); + g_signal_connect(g->target_spot, "draw", G_CALLBACK(_target_color_draw), self); g->lightness_spot = dt_bauhaus_slider_new_with_range(self, 0., 100., 0, 50.f, 1); dt_bauhaus_widget_set_label(g->lightness_spot, NULL, N_("lightness")); dt_bauhaus_slider_set_format(g->lightness_spot, "%"); - g_signal_connect(G_OBJECT(g->lightness_spot), "value-changed", + g_signal_connect(g->lightness_spot, "value-changed", G_CALLBACK(_spot_settings_changed_callback), self); dt_gui_box_add(g->cs.container, diff --git a/src/iop/filmic.c b/src/iop/filmic.c index 02209487aedb..3e820f191a8b 100644 --- a/src/iop/filmic.c +++ b/src/iop/filmic.c @@ -1459,7 +1459,7 @@ void gui_init(dt_iop_module_t *self) // don't make the area square to safe some vertical space -- it's not interactive anyway g->area = GTK_DRAWING_AREA(dtgtk_drawing_area_new_with_aspect_ratio(0.618)); gtk_widget_set_tooltip_text(GTK_WIDGET(g->area), _("read-only graph, use the parameters below to set the nodes")); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(dt_iop_tonecurve_draw), self); + g_signal_connect(g->area, "draw", G_CALLBACK(dt_iop_tonecurve_draw), self); // grey_point_source slider g->grey_point_source = dt_bauhaus_slider_new_with_range(self, 0.0, 100., 0, p->grey_point_source, 2); @@ -1468,7 +1468,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_format(g->grey_point_source, "%"); gtk_widget_set_tooltip_text(g->grey_point_source, _("adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%.")); - g_signal_connect(G_OBJECT(g->grey_point_source), "value-changed", G_CALLBACK(grey_point_source_callback), self); + g_signal_connect(g->grey_point_source, "value-changed", G_CALLBACK(grey_point_source_callback), self); dt_color_picker_new(self, DT_COLOR_PICKER_AREA | DT_COLOR_PICKER_DENOISE, g->grey_point_source); @@ -1480,7 +1480,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(g->white_point_source, _("number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" "adjust so highlights clipping is avoided")); - g_signal_connect(G_OBJECT(g->white_point_source), "value-changed", G_CALLBACK(white_point_source_callback), self); + g_signal_connect(g->white_point_source, "value-changed", G_CALLBACK(white_point_source_callback), self); dt_color_picker_new(self, DT_COLOR_PICKER_AREA | DT_COLOR_PICKER_DENOISE, g->white_point_source); @@ -1492,7 +1492,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(g->black_point_source, _("number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" "increase to get more contrast.\ndecrease to recover more details in low-lights.")); - g_signal_connect(G_OBJECT(g->black_point_source), "value-changed", G_CALLBACK(black_point_source_callback), self); + g_signal_connect(g->black_point_source, "value-changed", G_CALLBACK(black_point_source_callback), self); dt_color_picker_new(self, DT_COLOR_PICKER_AREA | DT_COLOR_PICKER_DENOISE, g->black_point_source); @@ -1502,7 +1502,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_format(g->security_factor, "%"); gtk_widget_set_tooltip_text(g->security_factor, _("increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\".")); - g_signal_connect(G_OBJECT(g->security_factor), "value-changed", G_CALLBACK(security_threshold_callback), self); + g_signal_connect(g->security_factor, "value-changed", G_CALLBACK(security_threshold_callback), self); // Auto tune slider g->auto_button = dt_bauhaus_combobox_new(self); @@ -1519,7 +1519,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_widget_set_label(g->contrast, NULL, N_("contrast")); gtk_widget_set_tooltip_text(g->contrast, _("slope of the linear part of the curve\n" "affects mostly the mid-tones")); - g_signal_connect(G_OBJECT(g->contrast), "value-changed", G_CALLBACK(contrast_callback), self); + g_signal_connect(g->contrast, "value-changed", G_CALLBACK(contrast_callback), self); // latitude slider g->latitude_stops = dt_bauhaus_slider_new_with_range(self, 0.01, 16.0, 0, p->latitude_stops, 3); @@ -1529,7 +1529,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(g->latitude_stops, _("width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" "this has no effect on mid-tones.")); - g_signal_connect(G_OBJECT(g->latitude_stops), "value-changed", G_CALLBACK(latitude_stops_callback), self); + g_signal_connect(g->latitude_stops, "value-changed", G_CALLBACK(latitude_stops_callback), self); // balance slider g->balance = dt_bauhaus_slider_new_with_range(self, -50., 50., 0, p->balance, 2); @@ -1537,7 +1537,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_format(g->balance, "%"); gtk_widget_set_tooltip_text(g->balance, _("slides the latitude along the slope\nto give more room to shadows or highlights.\n" "use it if you need to protect the details\nat one extremity of the histogram.")); - g_signal_connect(G_OBJECT(g->balance), "value-changed", G_CALLBACK(balance_callback), self); + g_signal_connect(g->balance, "value-changed", G_CALLBACK(balance_callback), self); // saturation slider g->global_saturation = dt_bauhaus_slider_new_with_range(self, 0., 1000., 0, p->global_saturation, 2); @@ -1546,7 +1546,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_format(g->global_saturation, "%"); gtk_widget_set_tooltip_text(g->global_saturation, _("desaturates the input of the module globally.\n" "you need to set this value below 100%\nif the chrominance preservation is enabled.")); - g_signal_connect(G_OBJECT(g->global_saturation), "value-changed", G_CALLBACK(global_saturation_callback), self); + g_signal_connect(g->global_saturation, "value-changed", G_CALLBACK(global_saturation_callback), self); // saturation slider g->saturation = dt_bauhaus_slider_new_with_range(self, 0., 1000., 0, (powf(10.0f, p->saturation/100.0f) - 1.0f) / 9.0f *100.0f, 2); @@ -1555,7 +1555,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_format(g->saturation, "%"); gtk_widget_set_tooltip_text(g->saturation, _("desaturates the output of the module\nspecifically at extreme luminances.\n" "decrease if shadows and/or highlights are over-saturated.")); - g_signal_connect(G_OBJECT(g->saturation), "value-changed", G_CALLBACK(saturation_callback), self); + g_signal_connect(g->saturation, "value-changed", G_CALLBACK(saturation_callback), self); /* From src/common/curve_tools.h : #define CUBIC_SPLINE 0 @@ -1569,7 +1569,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_combobox_add(g->interpolator, _("linear")); // monotonic spline dt_bauhaus_combobox_add(g->interpolator, _("optimized")); // monotonic spline gtk_widget_set_tooltip_text(g->interpolator, _("change this method if you see reversed contrast or faded blacks")); - g_signal_connect(G_OBJECT(g->interpolator), "value-changed", G_CALLBACK(interpolator_callback), self); + g_signal_connect(g->interpolator, "value-changed", G_CALLBACK(interpolator_callback), self); // Preserve color g->preserve_color = gtk_check_button_new_with_label(_("preserve the chrominance")); @@ -1577,7 +1577,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(g->preserve_color, _("ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" "you need to manually tune the saturation when using this mode.")); - g_signal_connect(G_OBJECT(g->preserve_color), "toggled", G_CALLBACK(preserve_color_callback), self); + g_signal_connect(g->preserve_color, "toggled", G_CALLBACK(preserve_color_callback), self); // Black slider g->black_point_target = dt_bauhaus_slider_new_with_range(self, 0.0, 100.0, 0, p->black_point_target, 2); @@ -1585,7 +1585,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_format(g->black_point_target, "%"); gtk_widget_set_tooltip_text(g->black_point_target, _("luminance of output pure black, " "this should be 0%\nexcept if you want a faded look")); - g_signal_connect(G_OBJECT(g->black_point_target), "value-changed", G_CALLBACK(black_point_target_callback), self); + g_signal_connect(g->black_point_target, "value-changed", G_CALLBACK(black_point_target_callback), self); // grey_point_source slider g->grey_point_target = dt_bauhaus_slider_new_with_range(self, 0.1, 50., 0, p->grey_point_target, 2); @@ -1593,7 +1593,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_format(g->grey_point_target, "%"); gtk_widget_set_tooltip_text(g->grey_point_target, _("middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing.")); - g_signal_connect(G_OBJECT(g->grey_point_target), "value-changed", G_CALLBACK(grey_point_target_callback), self); + g_signal_connect(g->grey_point_target, "value-changed", G_CALLBACK(grey_point_target_callback), self); // White slider g->white_point_target = dt_bauhaus_slider_new_with_range(self, 0.0, 100.0, 0, p->white_point_target, 2); @@ -1601,18 +1601,18 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_format(g->white_point_target, "%"); gtk_widget_set_tooltip_text(g->white_point_target, _("luminance of output pure white, " "this should be 100%\nexcept if you want a faded look")); - g_signal_connect(G_OBJECT(g->white_point_target), "value-changed", G_CALLBACK(white_point_target_callback), self); + g_signal_connect(g->white_point_target, "value-changed", G_CALLBACK(white_point_target_callback), self); // power/gamma slider g->output_power = dt_bauhaus_slider_new_with_range(self, 1.0, 2.4, 0, p->output_power, 2); dt_bauhaus_widget_set_label(g->output_power, NULL, N_("target gamma")); gtk_widget_set_tooltip_text(g->output_power, _("power or gamma of the transfer function\nof the display or color space.\n" "you should never touch that unless you know what you are doing.")); - g_signal_connect(G_OBJECT(g->output_power), "value-changed", G_CALLBACK(output_power_callback), self); + g_signal_connect(g->output_power, "value-changed", G_CALLBACK(output_power_callback), self); // add collapsible section for those extra options that are generally not to be used g->extra_toggle = dtgtk_togglebutton_new(dtgtk_cairo_paint_solid_arrow, CPF_DIRECTION_LEFT, NULL); - g_signal_connect(G_OBJECT(g->extra_toggle), "toggled", G_CALLBACK(_extra_options_button_changed), (gpointer)self); + g_signal_connect(g->extra_toggle, "toggled", G_CALLBACK(_extra_options_button_changed), (gpointer)self); g->extra_expander = dtgtk_expander_new(dt_gui_hbox(dt_ui_section_label_new(C_("section", "destination/display")), g->extra_toggle), dt_gui_vbox(g->black_point_target, diff --git a/src/iop/filmicrgb.c b/src/iop/filmicrgb.c index e8d2d75dc2a1..4a277d7031d3 100644 --- a/src/iop/filmicrgb.c +++ b/src/iop/filmicrgb.c @@ -4367,11 +4367,11 @@ void gui_init(dt_iop_module_t *self) dt_action_define_iop(self, NULL, N_("graph"), GTK_WIDGET(g->area), NULL); gtk_widget_set_can_focus(GTK_WIDGET(g->area), TRUE); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(dt_iop_tonecurve_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", G_CALLBACK(area_button_press), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", G_CALLBACK(area_enter_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "enter-notify-event", G_CALLBACK(area_enter_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", G_CALLBACK(area_motion_notify), self); + g_signal_connect(g->area, "draw", G_CALLBACK(dt_iop_tonecurve_draw), self); + g_signal_connect(g->area, "button-press-event", G_CALLBACK(area_button_press), self); + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(area_enter_leave_notify), self); + g_signal_connect(g->area, "enter-notify-event", G_CALLBACK(area_enter_leave_notify), self); + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(area_motion_notify), self); // Init GTK notebook static struct dt_action_def_t notebook_def = { }; diff --git a/src/iop/hotpixels.c b/src/iop/hotpixels.c index fe03fe784ab9..d3577dfdbafc 100644 --- a/src/iop/hotpixels.c +++ b/src/iop/hotpixels.c @@ -437,7 +437,7 @@ void gui_init(dt_iop_module_t *self) g->pixels_fixed = -1; GtkWidget *box_raw = self->widget = dt_gui_vbox(); - g_signal_connect(G_OBJECT(box_raw), "draw", G_CALLBACK(draw), self); + g_signal_connect(box_raw, "draw", G_CALLBACK(draw), self); g->threshold = dt_bauhaus_slider_from_params(self, N_("threshold")); dt_bauhaus_slider_set_digits(g->threshold, 4); diff --git a/src/iop/invert.c b/src/iop/invert.c index b22ca1ae7d4f..cccb6c06d56b 100644 --- a/src/iop/invert.c +++ b/src/iop/invert.c @@ -493,7 +493,7 @@ void gui_init(dt_iop_module_t *self) dt_action_define(DT_ACTION(self), NULL, N_("pick color of film material from image"), g->colorpicker, &dt_action_def_button); gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->colorpicker), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->colorpicker), _("select color of film material")); - g_signal_connect(G_OBJECT(g->colorpicker), "color-set", G_CALLBACK(colorpicker_callback), self); + g_signal_connect(g->colorpicker, "color-set", G_CALLBACK(colorpicker_callback), self); g->picker = dt_color_picker_new(self, DT_COLOR_PICKER_AREA, NULL); diff --git a/src/iop/lens.cc b/src/iop/lens.cc index 343bf69ca288..f8c220d4f04f 100644 --- a/src/iop/lens.cc +++ b/src/iop/lens.cc @@ -3815,7 +3815,7 @@ static GtkMenu *camera_menu_fill(dt_iop_module_t *self, } gtk_widget_show(item); g_object_set_data(G_OBJECT(item), "lfCamera", (void *)camlist[i]); - g_signal_connect(G_OBJECT(item), "activate", + g_signal_connect(item, "activate", G_CALLBACK(_camera_menu_select), self); gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item); } @@ -4145,7 +4145,7 @@ static GtkMenu *_lens_menu_fill(dt_iop_module_t *self, item = gtk_menu_item_new_with_label(lf_mlstr_get(lenslist[i]->Model)); gtk_widget_show(item); g_object_set_data(G_OBJECT(item), "lfLens", (void *)lenslist[i]); - g_signal_connect(G_OBJECT(item), "activate", + g_signal_connect(item, "activate", G_CALLBACK(_lens_menu_select), self); gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item); } @@ -4408,21 +4408,21 @@ void gui_init(dt_iop_module_t *self) g->focal_length = dt_gui_expand(dt_bauhaus_combobox_new(self)); dt_bauhaus_widget_set_label(g->focal_length, NULL, N_("focal length")); gtk_widget_set_tooltip_text(g->focal_length, _("focal length (mm)")); - g_signal_connect(G_OBJECT(g->focal_length), "value-changed", + g_signal_connect(g->focal_length, "value-changed", G_CALLBACK(_lens_comboentry_focal_update), self); dt_bauhaus_combobox_set_editable(g->focal_length, 1); g->aperture = dt_gui_expand(dt_bauhaus_combobox_new(self)); dt_bauhaus_widget_set_label(g->aperture, NULL, N_("aperture")); gtk_widget_set_tooltip_text(g->aperture, _("f-number (aperture)")); - g_signal_connect(G_OBJECT(g->aperture), "value-changed", + g_signal_connect(g->aperture, "value-changed", G_CALLBACK(_lens_comboentry_aperture_update), self); dt_bauhaus_combobox_set_editable(g->aperture, 1); g->distance = dt_gui_expand(dt_bauhaus_combobox_new(self)); dt_bauhaus_widget_set_label(g->distance, NULL, N_("distance")); gtk_widget_set_tooltip_text(g->distance, _("distance to subject")); - g_signal_connect(G_OBJECT(g->distance), "value-changed", + g_signal_connect(g->distance, "value-changed", G_CALLBACK(_lens_comboentry_distance_update), self); dt_bauhaus_combobox_set_editable(g->distance, 1); @@ -4492,7 +4492,7 @@ void gui_init(dt_iop_module_t *self) "once enabled, you won't be able to\n" "return back to old algorithm.")); GtkWidget *box_md = dt_gui_vbox(g->use_latest_md_algo); - g_signal_connect(G_OBJECT(g->use_latest_md_algo), "toggled", + g_signal_connect(g->use_latest_md_algo, "toggled", G_CALLBACK(_use_latest_md_algo_callback), self); // we put fine-tuning values under an expander diff --git a/src/iop/levels.c b/src/iop/levels.c index e13f41cb0599..a7105ff6c9e8 100644 --- a/src/iop/levels.c +++ b/src/iop/levels.c @@ -51,7 +51,7 @@ static gboolean dt_iop_levels_button_press(GtkWidget *widget, GdkEventButton *ev static gboolean dt_iop_levels_button_release(GtkWidget *widget, GdkEventButton *event, dt_iop_module_t *self); static gboolean dt_iop_levels_leave_notify(GtkWidget *widget, GdkEventCrossing *event, dt_iop_module_t *self); static gboolean dt_iop_levels_scroll(GtkWidget *widget, GdkEventScroll *event, dt_iop_module_t *self); -static void dt_iop_levels_autoadjust_callback(GtkRange *range, dt_iop_module_t *self); +static void dt_iop_levels_autoadjust_callback(GtkWidget *range, dt_iop_module_t *self); //static void dt_iop_levels_mode_callback(GtkWidget *combo, gpointer user_data); //static void dt_iop_levels_percentiles_callback(GtkWidget *slider, gpointer user_data); @@ -635,16 +635,16 @@ void gui_init(dt_iop_module_t *self) "operates on L channel.")); dt_action_define_iop(self, NULL, N_("levels"), GTK_WIDGET(g->area), NULL); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(dt_iop_levels_area_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", G_CALLBACK(dt_iop_levels_button_press), self); - g_signal_connect(G_OBJECT(g->area), "button-release-event", G_CALLBACK(dt_iop_levels_button_release), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", G_CALLBACK(dt_iop_levels_motion_notify), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", G_CALLBACK(dt_iop_levels_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", G_CALLBACK(dt_iop_levels_scroll), self); + g_signal_connect(g->area, "draw", G_CALLBACK(dt_iop_levels_area_draw), self); + g_signal_connect(g->area, "button-press-event", G_CALLBACK(dt_iop_levels_button_press), self); + g_signal_connect(g->area, "button-release-event", G_CALLBACK(dt_iop_levels_button_release), self); + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(dt_iop_levels_motion_notify), self); + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(dt_iop_levels_leave_notify), self); + g_signal_connect(g->area, "scroll-event", G_CALLBACK(dt_iop_levels_scroll), self); GtkWidget *autobutton = gtk_button_new_with_label(_("auto")); gtk_widget_set_tooltip_text(autobutton, _("apply auto levels")); - g_signal_connect(G_OBJECT(autobutton), "clicked", G_CALLBACK(dt_iop_levels_autoadjust_callback), self); + g_signal_connect(autobutton, "clicked", G_CALLBACK(dt_iop_levels_autoadjust_callback), self); g->blackpick = dt_color_picker_new(self, DT_COLOR_PICKER_POINT, NULL); gtk_widget_set_tooltip_text(g->blackpick, _("pick black point from image")); @@ -976,7 +976,7 @@ static gboolean dt_iop_levels_scroll(GtkWidget *widget, GdkEventScroll *event, d return TRUE; // Ensure that scrolling the widget cannot move side panel } -static void dt_iop_levels_autoadjust_callback(GtkRange *range, dt_iop_module_t *self) +static void dt_iop_levels_autoadjust_callback(GtkWidget *range, dt_iop_module_t *self) { if(darktable.gui->reset) return; dt_iop_levels_params_t *p = self->params; diff --git a/src/iop/lowlight.c b/src/iop/lowlight.c index 83b747858d4d..2a6130380cb8 100644 --- a/src/iop/lowlight.c +++ b/src/iop/lowlight.c @@ -807,12 +807,12 @@ void gui_init(dt_iop_module_t *self) dt_action_define_iop(self, NULL, N_("graph"), GTK_WIDGET(g->area), NULL); self->widget = dt_gui_vbox(g->area); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(lowlight_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", G_CALLBACK(lowlight_button_press), self); - g_signal_connect(G_OBJECT(g->area), "button-release-event", G_CALLBACK(lowlight_button_release), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", G_CALLBACK(lowlight_motion_notify), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", G_CALLBACK(lowlight_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", G_CALLBACK(lowlight_scrolled), self); + g_signal_connect(g->area, "draw", G_CALLBACK(lowlight_draw), self); + g_signal_connect(g->area, "button-press-event", G_CALLBACK(lowlight_button_press), self); + g_signal_connect(g->area, "button-release-event", G_CALLBACK(lowlight_button_release), self); + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(lowlight_motion_notify), self); + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(lowlight_leave_notify), self); + g_signal_connect(g->area, "scroll-event", G_CALLBACK(lowlight_scrolled), self); g->scale_blueness = dt_bauhaus_slider_from_params(self, "blueness"); dt_bauhaus_slider_set_format(g->scale_blueness, "%"); diff --git a/src/iop/lut3d.c b/src/iop/lut3d.c index 397eb206b34d..0bbc3c96f517 100644 --- a/src/iop/lut3d.c +++ b/src/iop/lut3d.c @@ -1700,8 +1700,8 @@ void gui_init(dt_iop_module_t *self) _("the file path (relative to LUT folder) is saved with image (and not the LUT data themselves)")); #endif // HAVE_GMIC self->widget = dt_gui_vbox(dt_gui_hbox(g->button, dt_gui_expand(g->filepath))); - g_signal_connect(G_OBJECT(g->button), "clicked", G_CALLBACK(_button_clicked), self); - g_signal_connect(G_OBJECT(g->filepath), "value-changed", G_CALLBACK(_filepath_callback), self); + g_signal_connect(g->button, "clicked", G_CALLBACK(_button_clicked), self); + g_signal_connect(g->filepath, "value-changed", G_CALLBACK(_filepath_callback), self); #ifdef HAVE_GMIC // text entry @@ -1730,11 +1730,11 @@ void gui_init(dt_iop_module_t *self) gtk_tree_view_append_column((GtkTreeView *)g->lutname, col); GtkTreeSelection *selection = gtk_tree_view_get_selection((GtkTreeView *)g->lutname); gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE); - g->lutname_handler_id = g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(_lutname_callback), self); + g->lutname_handler_id = g_signal_connect_data(selection, "changed", G_CALLBACK(_lutname_callback), self, NULL, 0); dt_gui_box_add(self->widget, g->lutwindow); - g_signal_connect(G_OBJECT(g->lutentry), "changed", G_CALLBACK(_entry_callback), self); - g_signal_connect(G_OBJECT((GtkTreeView *)g->lutname), "scroll-event", G_CALLBACK(_mouse_scroll), (gpointer)self); + g_signal_connect(g->lutentry, "changed", G_CALLBACK(_entry_callback), self); + g_signal_connect(g->lutname, "scroll-event", G_CALLBACK(_mouse_scroll), self); #endif // HAVE_GMIC g->colorspace = dt_bauhaus_combobox_from_params(self, "colorspace"); diff --git a/src/iop/monochrome.c b/src/iop/monochrome.c index 4187e14efa91..752454d3a0bb 100644 --- a/src/iop/monochrome.c +++ b/src/iop/monochrome.c @@ -562,14 +562,14 @@ void gui_init(dt_iop_module_t *self) gtk_widget_add_events(GTK_WIDGET(g->area), GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | darktable.gui->scroll_mask); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(_monochrome_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", G_CALLBACK(_monochrome_button_press), self); - g_signal_connect(G_OBJECT(g->area), "button-release-event", G_CALLBACK(_monochrome_button_release), + g_signal_connect(g->area, "draw", G_CALLBACK(_monochrome_draw), self); + g_signal_connect(g->area, "button-press-event", G_CALLBACK(_monochrome_button_press), self); + g_signal_connect(g->area, "button-release-event", G_CALLBACK(_monochrome_button_release), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", G_CALLBACK(_monochrome_motion_notify), + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(_monochrome_motion_notify), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", G_CALLBACK(_monochrome_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", G_CALLBACK(_monochrome_scrolled), self); + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(_monochrome_leave_notify), self); + g_signal_connect(g->area, "scroll-event", G_CALLBACK(_monochrome_scrolled), self); g->highlights = dt_color_picker_new(self, DT_COLOR_PICKER_AREA, dt_bauhaus_slider_from_params(self, N_("highlights"))); diff --git a/src/iop/negadoctor.c b/src/iop/negadoctor.c index dac037af3d2a..c21efab33b77 100644 --- a/src/iop/negadoctor.c +++ b/src/iop/negadoctor.c @@ -843,7 +843,7 @@ void gui_init(dt_iop_module_t *self) g->Dmin_picker = gtk_color_button_new(); gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->Dmin_picker), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->Dmin_picker), _("select color of film material from a swatch")); - g_signal_connect(G_OBJECT(g->Dmin_picker), "color-set", G_CALLBACK(Dmin_picker_callback), self); + g_signal_connect(g->Dmin_picker, "color-set", G_CALLBACK(Dmin_picker_callback), self); g->Dmin_sampler = dt_color_picker_new(self, DT_COLOR_PICKER_AREA, NULL); gtk_widget_set_tooltip_text(g->Dmin_sampler , _("pick color of film material from image")); @@ -905,7 +905,7 @@ void gui_init(dt_iop_module_t *self) g->WB_low_picker = gtk_color_button_new(); gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->WB_low_picker), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->WB_low_picker), _("select color of shadows from a swatch")); - g_signal_connect(G_OBJECT(g->WB_low_picker), "color-set", G_CALLBACK(WB_low_picker_callback), self); + g_signal_connect(g->WB_low_picker, "color-set", G_CALLBACK(WB_low_picker_callback), self); g->WB_low_sampler = dt_color_picker_new(self, DT_COLOR_PICKER_AREA, NULL); gtk_widget_set_tooltip_text(g->WB_low_sampler, _("pick shadows color from image")); @@ -939,7 +939,7 @@ void gui_init(dt_iop_module_t *self) g->WB_high_picker = gtk_color_button_new(); gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->WB_high_picker), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->WB_high_picker), _("select color of illuminant from a swatch")); - g_signal_connect(G_OBJECT(g->WB_high_picker), "color-set", G_CALLBACK(WB_high_picker_callback), self); + g_signal_connect(g->WB_high_picker, "color-set", G_CALLBACK(WB_high_picker_callback), self); g->WB_high_sampler = dt_color_picker_new(self, DT_COLOR_PICKER_AREA, NULL); gtk_widget_set_tooltip_text(g->WB_high_sampler , _("pick illuminant color from image")); diff --git a/src/iop/overlay.c b/src/iop/overlay.c index 4021887b7004..31b5321e33f3 100644 --- a/src/iop/overlay.c +++ b/src/iop/overlay.c @@ -809,7 +809,7 @@ static void _draw_thumb(GtkWidget *area, } } -static void _alignment_callback(const GtkWidget *tb, dt_iop_module_t *self) +static void _alignment_callback(GtkWidget *tb, dt_iop_module_t *self) { const dt_iop_overlay_gui_data_t *g = self->gui_data; @@ -1048,9 +1048,9 @@ static void _drag_and_drop_received(GtkWidget *widget, static gboolean _on_drag_motion(GtkWidget *widget, GdkDragContext *dc, - gint x, - gint y, - guint time, + const gint x, + const gint y, + const guint time, const dt_iop_module_t *self) { dt_iop_overlay_gui_data_t *g = self->gui_data; @@ -1082,7 +1082,7 @@ void gui_init(dt_iop_module_t *self) int line = 0; g->area = GTK_DRAWING_AREA(dtgtk_drawing_area_new_with_height(0)); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(_draw_thumb), self); + g_signal_connect(g->area, "draw", G_CALLBACK(_draw_thumb), self); gtk_widget_set_size_request(GTK_WIDGET(g->area), 150, 150); gtk_grid_attach(grid, GTK_WIDGET(g->area), 0, line++, 1, 2); @@ -1155,7 +1155,7 @@ void gui_init(dt_iop_module_t *self) g->align[i] = dtgtk_togglebutton_new(dtgtk_cairo_paint_alignment, (CPF_SPECIAL_FLAG << i), NULL); gtk_grid_attach(GTK_GRID(bat), GTK_WIDGET(g->align[i]), 1 + i%3, i/3, 1, 1); - g_signal_connect(G_OBJECT(g->align[i]), "toggled", + g_signal_connect(g->align[i], "toggled", G_CALLBACK(_alignment_callback), self); } diff --git a/src/iop/rasterfile.c b/src/iop/rasterfile.c index eff4af723367..2bcfa44f1efd 100644 --- a/src/iop/rasterfile.c +++ b/src/iop/rasterfile.c @@ -594,12 +594,12 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_name(g->fbutton, "non-flat"); gtk_widget_set_tooltip_text(g->fbutton, _("select the PFM file recorded as a raster mask,\n" "CAUTION: path must be set in preferences/processing before choosing")); - g_signal_connect(G_OBJECT(g->fbutton), "clicked", G_CALLBACK(_fbutton_clicked), self); + g_signal_connect(g->fbutton, "clicked", G_CALLBACK(_fbutton_clicked), self); g->file = dt_bauhaus_combobox_new(self); dt_bauhaus_combobox_set_entries_ellipsis(g->file, PANGO_ELLIPSIZE_MIDDLE); gtk_widget_set_tooltip_text(g->file, _("the mask file path is saved with the image history")); - g_signal_connect(G_OBJECT(g->file), "value-changed", G_CALLBACK(_file_callback), self); + g_signal_connect(g->file, "value-changed", G_CALLBACK(_file_callback), self); dt_gui_box_add(self->widget, dt_gui_hbox(g->fbutton, dt_gui_expand(g->file))); } diff --git a/src/iop/rawdenoise.c b/src/iop/rawdenoise.c index 59779cb76276..9fff652d73ff 100644 --- a/src/iop/rawdenoise.c +++ b/src/iop/rawdenoise.c @@ -886,7 +886,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_show(gtk_notebook_get_nth_page(g->channel_tabs, g->channel)); gtk_notebook_set_current_page(g->channel_tabs, g->channel); - g_signal_connect(G_OBJECT(g->channel_tabs), "switch_page", G_CALLBACK(rawdenoise_tab_switch), self); + g_signal_connect(g->channel_tabs, "switch-page", G_CALLBACK(rawdenoise_tab_switch), self); const int ch = (int)g->channel; g->transition_curve = dt_draw_curve_new(0.0, 1.0, CATMULL_ROM); @@ -909,12 +909,12 @@ void gui_init(dt_iop_module_t *self) GtkWidget *box_raw = self->widget = dt_gui_vbox(g->channel_tabs, g->area); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(rawdenoise_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", G_CALLBACK(rawdenoise_button_press), self); - g_signal_connect(G_OBJECT(g->area), "button-release-event", G_CALLBACK(rawdenoise_button_release), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", G_CALLBACK(rawdenoise_motion_notify), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", G_CALLBACK(rawdenoise_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", G_CALLBACK(rawdenoise_scrolled), self); + g_signal_connect(GTK_WIDGET(g->area), "draw", G_CALLBACK(rawdenoise_draw), self); + g_signal_connect(GTK_WIDGET(g->area), "button-press-event", G_CALLBACK(rawdenoise_button_press), self); + g_signal_connect(GTK_WIDGET(g->area), "button-release-event", G_CALLBACK(rawdenoise_button_release), self); + g_signal_connect(GTK_WIDGET(g->area), "motion-notify-event", G_CALLBACK(rawdenoise_motion_notify), self); + g_signal_connect(GTK_WIDGET(g->area), "leave-notify-event", G_CALLBACK(rawdenoise_leave_notify), self); + g_signal_connect(GTK_WIDGET(g->area), "scroll-event", G_CALLBACK(rawdenoise_scrolled), self); g->threshold = dt_bauhaus_slider_from_params(self, "threshold"); dt_bauhaus_slider_set_soft_max(g->threshold, 0.1); diff --git a/src/iop/relight.c b/src/iop/relight.c index ada80a8ea71d..c01abe1e25cd 100644 --- a/src/iop/relight.c +++ b/src/iop/relight.c @@ -256,7 +256,7 @@ void gui_init(dt_iop_module_t *self) g->center = DTGTK_GRADIENT_SLIDER(dtgtk_gradient_slider_new_with_color_and_name(_gradient_L[0], _gradient_L[1], "gslider-relight")); gtk_widget_set_tooltip_text(GTK_WIDGET(g->center), _("select the center of fill-light\nctrl+click to select an area")); - g_signal_connect(G_OBJECT(g->center), "value-changed", G_CALLBACK(center_callback), self); + g_signal_connect(g->center, "value-changed", G_CALLBACK(center_callback), self); g->colorpicker = dt_color_picker_new(self, DT_COLOR_PICKER_POINT_AREA, NULL); gtk_widget_set_tooltip_text(GTK_WIDGET(g->colorpicker), _("toggle tool for picking median lightness in image")); dt_gui_box_add(self->widget, dt_gui_hbox(dt_gui_expand(g->center), g->colorpicker)); diff --git a/src/iop/retouch.c b/src/iop/retouch.c index aaf026bcb243..3635656de6f6 100644 --- a/src/iop/retouch.c +++ b/src/iop/retouch.c @@ -2531,17 +2531,17 @@ void gui_init(dt_iop_module_t *self) "top line indicates that the scale is visible at current zoom level\n" "bottom line indicates that the scale has shapes on it")); - g_signal_connect(G_OBJECT(g->wd_bar), "draw", + g_signal_connect(g->wd_bar, "draw", G_CALLBACK(rt_wdbar_draw), self); - g_signal_connect(G_OBJECT(g->wd_bar), "motion-notify-event", + g_signal_connect(g->wd_bar, "motion-notify-event", G_CALLBACK(rt_wdbar_motion_notify), self); - g_signal_connect(G_OBJECT(g->wd_bar), "leave-notify-event", + g_signal_connect(g->wd_bar, "leave-notify-event", G_CALLBACK(rt_wdbar_leave_notify), self); - g_signal_connect(G_OBJECT(g->wd_bar), "button-press-event", + g_signal_connect(g->wd_bar, "button-press-event", G_CALLBACK(rt_wdbar_button_press), self); - g_signal_connect(G_OBJECT(g->wd_bar), "button-release-event", + g_signal_connect(g->wd_bar, "button-release-event", G_CALLBACK(rt_wdbar_button_release), self); - g_signal_connect(G_OBJECT(g->wd_bar), "scroll-event", + g_signal_connect(g->wd_bar, "scroll-event", G_CALLBACK(rt_wdbar_scrolled), self); gtk_widget_add_events(GTK_WIDGET(g->wd_bar), GDK_POINTER_MOTION_MASK @@ -2606,7 +2606,7 @@ void gui_init(dt_iop_module_t *self) dtgtk_gradient_slider_multivalue_set_resetvalues(gslider, vdefault); (gslider)->markers_type = PROPORTIONAL_MARKERS; (gslider)->min_spacing = 0.05; - g_signal_connect(G_OBJECT(gslider), "value-changed", + g_signal_connect(gslider, "value-changed", G_CALLBACK(rt_gslider_changed), self); // auto-levels button @@ -2645,7 +2645,7 @@ void gui_init(dt_iop_module_t *self) gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->colorpick), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->colorpick), _("select fill color")); gtk_widget_set_tooltip_text(g->colorpick, _("select fill color")); - g_signal_connect(G_OBJECT(g->colorpick), "color-set", + g_signal_connect(g->colorpick, "color-set", G_CALLBACK(rt_colorpick_color_set_callback), self); g->colorpicker = dt_color_picker_new @@ -2683,7 +2683,7 @@ void gui_init(dt_iop_module_t *self) dt_bauhaus_slider_set_format(g->sl_mask_opacity, "%"); gtk_widget_set_tooltip_text(g->sl_mask_opacity, _("set the opacity on the selected shape")); - g_signal_connect(G_OBJECT(g->sl_mask_opacity), "value-changed", + g_signal_connect(g->sl_mask_opacity, "value-changed", G_CALLBACK(rt_mask_opacity_callback), self); // start building top level widget diff --git a/src/iop/rgbcurve.c b/src/iop/rgbcurve.c index a976f5fec56a..2459853198e5 100644 --- a/src/iop/rgbcurve.c +++ b/src/iop/rgbcurve.c @@ -1489,7 +1489,7 @@ void gui_init(dt_iop_module_t *self) dt_ui_notebook_page(g->channel_tabs, N_("R"), _("curve nodes for r channel")); dt_ui_notebook_page(g->channel_tabs, N_("G"), _("curve nodes for g channel")); dt_ui_notebook_page(g->channel_tabs, N_("B"), _("curve nodes for b channel")); - g_signal_connect(G_OBJECT(g->channel_tabs), "switch_page", + g_signal_connect(g->channel_tabs, "switch-page", G_CALLBACK(tab_switch_callback), self); // color pickers @@ -1532,17 +1532,17 @@ void gui_init(dt_iop_module_t *self) | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_widget_set_can_focus(GTK_WIDGET(g->area), TRUE); - g_signal_connect(G_OBJECT(g->area), "draw", + g_signal_connect(g->area, "draw", G_CALLBACK(_area_draw_callback), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", + g_signal_connect(g->area, "button-press-event", G_CALLBACK(_area_button_press_callback), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(_area_motion_notify_callback), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(_area_leave_notify_callback), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", + g_signal_connect(g->area, "scroll-event", G_CALLBACK(_area_scrolled_callback), self); - g_signal_connect(G_OBJECT(g->area), "key-press-event", + g_signal_connect(g->area, "key-press-event", G_CALLBACK(_area_key_press_callback), self); g->interpolator = dt_bauhaus_combobox_new_interpolation(self); @@ -1551,7 +1551,7 @@ void gui_init(dt_iop_module_t *self) "- cubic spline is better to produce smooth curves but oscillates when nodes are too close\n" "- centripetal is better to avoids cusps and oscillations with close nodes but is less smooth\n" "- monotonic is better for accuracy of pure analytical functions (log, gamma, exp)")); - g_signal_connect(G_OBJECT(g->interpolator), "value-changed", + g_signal_connect(g->interpolator, "value-changed", G_CALLBACK(interpolator_callback), self); dt_gui_box_add(self->widget, dt_gui_hbox(dt_gui_expand(g->channel_tabs), diff --git a/src/iop/rgblevels.c b/src/iop/rgblevels.c index 1a7aeafb46ad..f0a705e3c153 100644 --- a/src/iop/rgblevels.c +++ b/src/iop/rgblevels.c @@ -1039,7 +1039,7 @@ void gui_init(dt_iop_module_t *self) dt_ui_notebook_page(g->channel_tabs, N_("R"), _("curve nodes for r channel")); dt_ui_notebook_page(g->channel_tabs, N_("G"), _("curve nodes for g channel")); dt_ui_notebook_page(g->channel_tabs, N_("B"), _("curve nodes for b channel")); - g_signal_connect(G_OBJECT(g->channel_tabs), "switch_page", + g_signal_connect(g->channel_tabs, "switch-page", G_CALLBACK(_tab_switch_callback), self); g->area = GTK_DRAWING_AREA(dt_ui_resize_wrap(NULL, @@ -1052,17 +1052,17 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(GTK_WIDGET(g->area), _("drag handles to set black, gray, and white points. " "operates on L channel.")); - g_signal_connect(G_OBJECT(g->area), "draw", + g_signal_connect(g->area, "draw", G_CALLBACK(_area_draw_callback), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", + g_signal_connect(g->area, "button-press-event", G_CALLBACK(_area_button_press_callback), self); - g_signal_connect(G_OBJECT(g->area), "button-release-event", + g_signal_connect(g->area, "button-release-event", G_CALLBACK(_area_button_release_callback), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(_area_motion_notify_callback), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(_area_leave_notify_callback), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", + g_signal_connect(g->area, "scroll-event", G_CALLBACK(_area_scroll_callback), self); #define PICKER_SETUP(color, name, tooltip) \ @@ -1096,9 +1096,9 @@ void gui_init(dt_iop_module_t *self) dt_gui_hbox(g->blackpick, g->greypick, g->whitepick), dt_gui_hbox(dt_gui_expand(g->bt_auto_levels), dt_gui_expand(g->bt_select_region))); - g_signal_connect(G_OBJECT(g->bt_auto_levels), "clicked", + g_signal_connect(g->bt_auto_levels, "clicked", G_CALLBACK(_auto_levels_callback), self); - g_signal_connect(G_OBJECT(g->bt_select_region), "toggled", + g_signal_connect(g->bt_select_region, "toggled", G_CALLBACK(_select_region_toggled_callback), self); g->cmb_preserve_colors = dt_bauhaus_combobox_from_params(self, "preserve_colors"); diff --git a/src/iop/splittoning.c b/src/iop/splittoning.c index d977ffc1e74e..7ac941d50df7 100644 --- a/src/iop/splittoning.c +++ b/src/iop/splittoning.c @@ -475,7 +475,7 @@ static inline void gui_init_section(dt_iop_module_t *self, *picker = gtk_color_button_new(); gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(*picker), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(*picker), _("select tone color")); - g_signal_connect(G_OBJECT(*picker), "color-set", G_CALLBACK(colorpick_callback), self); + g_signal_connect(*picker, "color-set", G_CALLBACK(colorpick_callback), self); dt_gui_box_add(self->widget, dt_ui_section_label_new(Q_(section)), dt_gui_hbox(dt_gui_expand(slider_box), *picker)); diff --git a/src/iop/temperature.c b/src/iop/temperature.c index 4b7c5a7cd0ff..dc0058636974 100644 --- a/src/iop/temperature.c +++ b/src/iop/temperature.c @@ -2145,7 +2145,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(g->temp_label, _("click to cycle color mode on sliders")); gtk_container_add(GTK_CONTAINER(temp_label_box), g->temp_label); - g_signal_connect(G_OBJECT(temp_label_box), "button-release-event", + g_signal_connect(temp_label_box, "button-release-event", G_CALLBACK(temp_label_click), self); //Match UI order: temp first, then tint (like every other app ever) @@ -2190,14 +2190,14 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_no_show_all(g->scale_y, TRUE); - g_signal_connect(G_OBJECT(g->scale_k), "value-changed", + g_signal_connect(g->scale_k, "value-changed", G_CALLBACK(_temp_tint_callback), self); - g_signal_connect(G_OBJECT(g->scale_tint), "value-changed", + g_signal_connect(g->scale_tint, "value-changed", G_CALLBACK(_temp_tint_callback), self); - g_signal_connect(G_OBJECT(g->presets), "value-changed", + g_signal_connect(g->presets, "value-changed", G_CALLBACK(_preset_tune_callback), self); - g_signal_connect(G_OBJECT(g->finetune), "value-changed", + g_signal_connect(g->finetune, "value-changed", G_CALLBACK(_preset_tune_callback), self); // update the gui when the preferences changed (i.e. colored sliders stuff) diff --git a/src/iop/tonecurve.c b/src/iop/tonecurve.c index 73b41414caab..4f26ea2ee0b7 100644 --- a/src/iop/tonecurve.c +++ b/src/iop/tonecurve.c @@ -1270,7 +1270,7 @@ void gui_init(dt_iop_module_t *self) dt_ui_notebook_page(g->channel_tabs, N_("L"), _("tonecurve for L channel")); dt_ui_notebook_page(g->channel_tabs, N_("a"), _("tonecurve for a channel")); dt_ui_notebook_page(g->channel_tabs, N_("b"), _("tonecurve for b channel")); - g_signal_connect(G_OBJECT(g->channel_tabs), "switch_page", G_CALLBACK(tab_switch), self); + g_signal_connect(g->channel_tabs, "switch-page", G_CALLBACK(tab_switch), self); g->colorpicker = dt_color_picker_new(self, DT_COLOR_PICKER_POINT_AREA | DT_COLOR_PICKER_IO, @@ -1294,16 +1294,16 @@ void gui_init(dt_iop_module_t *self) | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_widget_set_can_focus(GTK_WIDGET(g->area), TRUE); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(dt_iop_tonecurve_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", + g_signal_connect(g->area, "draw", G_CALLBACK(dt_iop_tonecurve_draw), self); + g_signal_connect(g->area, "button-press-event", G_CALLBACK(dt_iop_tonecurve_button_press), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(dt_iop_tonecurve_motion_notify), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(dt_iop_tonecurve_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", + g_signal_connect(g->area, "scroll-event", G_CALLBACK(_scrolled), self); - g_signal_connect(G_OBJECT(g->area), "key-press-event", + g_signal_connect(g->area, "key-press-event", G_CALLBACK(dt_iop_tonecurve_key_press), self); g->interpolator = dt_bauhaus_combobox_new_interpolation(self); @@ -1313,7 +1313,7 @@ void gui_init(dt_iop_module_t *self) "- cubic spline is better to produce smooth curves but oscillates when nodes are too close\n" "- centripetal is better to avoids cusps and oscillations with close nodes but is less smooth\n" "- monotonic is better for accuracy of pure analytical functions (log, gamma, exp)")); - g_signal_connect(G_OBJECT(g->interpolator), "value-changed", + g_signal_connect(g->interpolator, "value-changed", G_CALLBACK(interpolator_callback), self); dt_gui_box_add(self->widget, g->area, g->interpolator); @@ -1325,7 +1325,7 @@ void gui_init(dt_iop_module_t *self) g->logbase = dt_bauhaus_slider_new_with_range(self, 0.0f, 40.0f, 0, 0.0f, 2); dt_bauhaus_widget_set_label(g->logbase, NULL, N_("scale for graph")); dt_gui_box_add(self->widget, g->logbase); - g_signal_connect(G_OBJECT(g->logbase), "value-changed", + g_signal_connect(g->logbase, "value-changed", G_CALLBACK(logbase_callback), self); g->sizegroup = GTK_SIZE_GROUP(gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL)); diff --git a/src/iop/toneequal.c b/src/iop/toneequal.c index 81a29351fdf8..6259136e0383 100644 --- a/src/iop/toneequal.c +++ b/src/iop/toneequal.c @@ -3284,18 +3284,18 @@ void gui_init(dt_iop_module_t *self) | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_widget_set_vexpand(GTK_WIDGET(g->area), TRUE); gtk_widget_set_can_focus(GTK_WIDGET(g->area), TRUE); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(area_draw), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", + g_signal_connect(g->area, "draw", G_CALLBACK(area_draw), self); + g_signal_connect(g->area, "button-press-event", G_CALLBACK(area_button_press), self); - g_signal_connect(G_OBJECT(g->area), "button-release-event", + g_signal_connect(g->area, "button-release-event", G_CALLBACK(area_button_release), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", + g_signal_connect(g->area, "leave-notify-event", G_CALLBACK(area_enter_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "enter-notify-event", + g_signal_connect(g->area, "enter-notify-event", G_CALLBACK(area_enter_leave_notify), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", + g_signal_connect(g->area, "motion-notify-event", G_CALLBACK(area_motion_notify), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", + g_signal_connect(g->area, "scroll-event", G_CALLBACK(area_scroll), self); gtk_widget_set_tooltip_text(GTK_WIDGET(g->area), _("double-click to reset the curve")); @@ -3308,7 +3308,7 @@ void gui_init(dt_iop_module_t *self) "but the curve might become oscillatory in some settings.\n" "negative values will avoid oscillations and behave more robustly\n" "but may produce brutal tone transitions and damage local contrast.")); - g_signal_connect(G_OBJECT(g->smoothing), "value-changed", + g_signal_connect(g->smoothing, "value-changed", G_CALLBACK(smoothing_callback), self); dt_gui_box_add(self->widget, wrapper, g->smoothing); @@ -3396,7 +3396,7 @@ void gui_init(dt_iop_module_t *self) gtk_widget_show(gtk_notebook_get_nth_page(g->notebook, active_page)); gtk_notebook_set_current_page(g->notebook, active_page); - g_signal_connect(G_OBJECT(g->notebook), "button-press-event", + g_signal_connect(g->notebook, "button-press-event", G_CALLBACK(notebook_button_press), self); g->show_luminance_mask = dt_iop_togglebutton_new diff --git a/src/iop/useless.c b/src/iop/useless.c index 1199be73bca0..716bc37aa122 100644 --- a/src/iop/useless.c +++ b/src/iop/useless.c @@ -688,7 +688,7 @@ void gui_init(dt_iop_module_t *self) g->extra = dt_bauhaus_slider_new_with_range(self, -0.5, 0.5, 0, 0, 2); dt_bauhaus_widget_set_label(g->extra, NULL, N_("extra")); dt_gui_box_add(self->widget, g->extra); - g_signal_connect(G_OBJECT(g->extra), "value-changed", G_CALLBACK(extra_callback), self); + g_signal_connect(g->extra, "value-changed", G_CALLBACK(extra_callback), self); } void gui_cleanup(dt_iop_module_t *self) diff --git a/src/iop/watermark.c b/src/iop/watermark.c index 31b121441a50..8aa1718ea62f 100644 --- a/src/iop/watermark.c +++ b/src/iop/watermark.c @@ -1124,7 +1124,7 @@ static void _refresh_callback(GtkWidget *tb, dt_iop_module_t *self) _refresh_watermarks(self); } -static void _alignment_callback(const GtkWidget *tb, dt_iop_module_t *self) +static void _alignment_callback(GtkWidget *tb, dt_iop_module_t *self) { int index = -1; const dt_iop_watermark_gui_data_t *g = self->gui_data; @@ -1410,7 +1410,7 @@ void gui_init(dt_iop_module_t *self) { g->align[i] = dtgtk_togglebutton_new(dtgtk_cairo_paint_alignment, (CPF_SPECIAL_FLAG << i), NULL); gtk_grid_attach(GTK_GRID(bat), GTK_WIDGET(g->align[i]), 1 + i%3, i/3, 1, 1); - g_signal_connect(G_OBJECT(g->align[i]), "toggled", G_CALLBACK(_alignment_callback), self); + g_signal_connect(g->align[i], "toggled", G_CALLBACK(_alignment_callback), self); } dt_gui_box_add(self->widget, bat); @@ -1428,10 +1428,10 @@ void gui_init(dt_iop_module_t *self) _refresh_watermarks(self); - g_signal_connect(G_OBJECT(g->watermarks), "value-changed", G_CALLBACK(_watermark_callback), self); - g_signal_connect(G_OBJECT(g->refresh), "clicked", G_CALLBACK(_refresh_callback), self); - g_signal_connect(G_OBJECT(g->colorpick), "color-set", G_CALLBACK(_colorpick_color_set), self); - g_signal_connect(G_OBJECT(g->fontsel), "font-set", G_CALLBACK(_fontsel_callback), self); + g_signal_connect(g->watermarks, "value-changed", G_CALLBACK(_watermark_callback), self); + g_signal_connect(g->refresh, "clicked", G_CALLBACK(_refresh_callback), self); + g_signal_connect(g->colorpick, "color-set", G_CALLBACK(_colorpick_color_set), self); + g_signal_connect(g->fontsel, "font-set", G_CALLBACK(_fontsel_callback), self); } void gui_cleanup(dt_iop_module_t *self) diff --git a/src/iop/zonesystem.c b/src/iop/zonesystem.c index 3adb8be831d8..0e064a925e78 100644 --- a/src/iop/zonesystem.c +++ b/src/iop/zonesystem.c @@ -430,8 +430,8 @@ void gui_init(dt_iop_module_t *self) g->mouse_over_output_zones = FALSE; g->preview = dtgtk_drawing_area_new_with_height(0); - g_signal_connect(G_OBJECT(g->preview), "size-allocate", G_CALLBACK(size_allocate_callback), self); - g_signal_connect(G_OBJECT(g->preview), "draw", G_CALLBACK(dt_iop_zonesystem_preview_draw), self); + g_signal_connect(g->preview, "size-allocate", G_CALLBACK(size_allocate_callback), self); + g_signal_connect(g->preview, "draw", G_CALLBACK(dt_iop_zonesystem_preview_draw), self); gtk_widget_add_events(GTK_WIDGET(g->preview), GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK); @@ -441,16 +441,16 @@ void gui_init(dt_iop_module_t *self) gtk_widget_set_tooltip_text(g->zones, _("lightness zones\nuse mouse scrollwheel to change the number of zones\n" "left-click on a border to create a marker\n" "right-click on a marker to delete it")); - g_signal_connect(G_OBJECT(g->zones), "draw", G_CALLBACK(dt_iop_zonesystem_bar_draw), self); - g_signal_connect(G_OBJECT(g->zones), "motion-notify-event", G_CALLBACK(dt_iop_zonesystem_bar_motion_notify), + g_signal_connect(g->zones, "draw", G_CALLBACK(dt_iop_zonesystem_bar_draw), self); + g_signal_connect(g->zones, "motion-notify-event", G_CALLBACK(dt_iop_zonesystem_bar_motion_notify), self); - g_signal_connect(G_OBJECT(g->zones), "leave-notify-event", G_CALLBACK(dt_iop_zonesystem_bar_leave_notify), + g_signal_connect(g->zones, "leave-notify-event", G_CALLBACK(dt_iop_zonesystem_bar_leave_notify), self); - g_signal_connect(G_OBJECT(g->zones), "button-press-event", G_CALLBACK(dt_iop_zonesystem_bar_button_press), + g_signal_connect(g->zones, "button-press-event", G_CALLBACK(dt_iop_zonesystem_bar_button_press), self); - g_signal_connect(G_OBJECT(g->zones), "button-release-event", + g_signal_connect(g->zones, "button-release-event", G_CALLBACK(dt_iop_zonesystem_bar_button_release), self); - g_signal_connect(G_OBJECT(g->zones), "scroll-event", G_CALLBACK(dt_iop_zonesystem_bar_scrolled), self); + g_signal_connect(g->zones, "scroll-event", G_CALLBACK(dt_iop_zonesystem_bar_scrolled), self); gtk_widget_add_events(GTK_WIDGET(g->zones), GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | darktable.gui->scroll_mask); diff --git a/src/libs/backgroundjobs.c b/src/libs/backgroundjobs.c index b791f704293f..d7548dbf6f21 100644 --- a/src/libs/backgroundjobs.c +++ b/src/libs/backgroundjobs.c @@ -239,7 +239,7 @@ static gboolean _cancellable_gui_thread(gpointer user_data) GtkBox *hbox = GTK_BOX(params->instance->hbox); GtkWidget *button = dtgtk_button_new(dtgtk_cairo_paint_cancel, 0, NULL); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(_lib_backgroundjobs_cancel_callback_new), params->progress); + g_signal_connect(button, "clicked", G_CALLBACK(_lib_backgroundjobs_cancel_callback_new), params->progress); gtk_box_pack_start(hbox, GTK_WIDGET(button), FALSE, FALSE, 0); gtk_widget_show_all(button); diff --git a/src/libs/camera.c b/src/libs/camera.c index c6a580dcc65e..2289cc255ef1 100644 --- a/src/libs/camera.c +++ b/src/libs/camera.c @@ -144,7 +144,7 @@ static dt_lib_camera_property_t *_lib_property_add_new(dt_lib_camera_t *lib, lib->gui.properties = g_list_append(lib->gui.properties, prop); // Does dead lock!!! - g_signal_connect(G_OBJECT(prop->values), "value-changed", G_CALLBACK(property_changed_callback), + g_signal_connect(prop->values, "value-changed", G_CALLBACK(property_changed_callback), (gpointer)prop); return prop; } @@ -263,7 +263,7 @@ static void _lib_property_add_to_gui(dt_lib_camera_property_t *prop, dt_lib_came gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(prop->osd), FALSE, FALSE, 0); gtk_grid_insert_row(lib->gui.main_grid, lib->gui.prop_end); // make space for the new row gtk_grid_attach(lib->gui.main_grid, GTK_WIDGET(hbox), 0, lib->gui.prop_end, 2, 1); - g_signal_connect(G_OBJECT(prop->osd), "clicked", G_CALLBACK(_osd_button_clicked), prop); + g_signal_connect(prop->osd, "clicked", G_CALLBACK(_osd_button_clicked), prop); gtk_widget_show_all(GTK_WIDGET(hbox)); lib->gui.rows++; lib->gui.prop_end++; @@ -494,9 +494,9 @@ void gui_init(dt_lib_module_t *self) _("the amount of steps per bracket, steps is camera configurable and usually 3 steps per " "stop\nwith other words, 3 steps is 1EV exposure step between brackets")); - g_signal_connect(G_OBJECT(lib->gui.toggle_timer), "clicked", G_CALLBACK(_toggle_capture_mode_clicked), lib); - g_signal_connect(G_OBJECT(lib->gui.toggle_sequence), "clicked", G_CALLBACK(_toggle_capture_mode_clicked), lib); - g_signal_connect(G_OBJECT(lib->gui.toggle_bracket), "clicked", G_CALLBACK(_toggle_capture_mode_clicked), lib); + g_signal_connect(lib->gui.toggle_timer, "clicked", G_CALLBACK(_toggle_capture_mode_clicked), lib); + g_signal_connect(lib->gui.toggle_sequence, "clicked", G_CALLBACK(_toggle_capture_mode_clicked), lib); + g_signal_connect(lib->gui.toggle_bracket, "clicked", G_CALLBACK(_toggle_capture_mode_clicked), lib); gtk_widget_set_sensitive(GTK_WIDGET(lib->gui.timer), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(lib->gui.count), FALSE); @@ -527,7 +527,7 @@ void gui_init(dt_lib_module_t *self) label = gtk_label_new(_("property")); gtk_widget_set_halign(label, GTK_ALIGN_START); GtkWidget *widget = gtk_button_new_with_label("O"); - g_signal_connect(G_OBJECT(widget), "clicked", G_CALLBACK(_show_property_popupmenu_clicked), lib); + g_signal_connect(widget, "clicked", G_CALLBACK(_show_property_popupmenu_clicked), lib); lib->gui.pname = dt_ui_entry_new(0); gtk_box_pack_start(hbox, GTK_WIDGET(lib->gui.pname), TRUE, TRUE, 0); gtk_box_pack_start(hbox, GTK_WIDGET(widget), FALSE, FALSE, 0); @@ -536,7 +536,7 @@ void gui_init(dt_lib_module_t *self) widget = gtk_button_new_with_label(_("add user property")); - g_signal_connect(G_OBJECT(widget), "clicked", G_CALLBACK(_add_property_button_clicked), lib); + g_signal_connect(widget, "clicked", G_CALLBACK(_add_property_button_clicked), lib); gtk_widget_show(widget); gtk_grid_attach(GTK_GRID(self->widget), GTK_WIDGET(widget), 0, lib->gui.rows++, 2, 1); } diff --git a/src/libs/collect.c b/src/libs/collect.c index 9bda03e14e18..4d5ea58875f7 100644 --- a/src/libs/collect.c +++ b/src/libs/collect.c @@ -136,7 +136,7 @@ static void _lib_collect_gui_update(dt_lib_module_t *self); static void _lib_folders_update_collection(const gchar *filmroll); -static void entry_changed(GtkEntry *entry, dt_lib_collect_rule_t *dr); +static void entry_changed(GtkWidget *entry, dt_lib_collect_rule_t *dr); static void collection_updated(gpointer instance, dt_collection_change_t query_change, @@ -406,9 +406,8 @@ uint32_t container(dt_lib_module_t *self) } static void view_popup_menu_onSearchFilmroll(GtkWidget *menuitem, - gpointer userdata) + GtkTreeView *treeview) { - GtkTreeView *treeview = GTK_TREE_VIEW(userdata); GtkWidget *win = dt_ui_main_window(darktable.gui->ui); GtkTreeSelection *selection; @@ -588,13 +587,13 @@ static void view_popup_menu(GtkWidget *treeview, menuitem = gtk_menu_item_new_with_label(_("update path to files...")); g_signal_connect(menuitem, "activate", - (GCallback)view_popup_menu_onSearchFilmroll, treeview); + G_CALLBACK(view_popup_menu_onSearchFilmroll), treeview); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); menuitem = gtk_menu_item_new_with_label(_("remove...")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); g_signal_connect(menuitem, "activate", - (GCallback)view_popup_menu_onRemove, treeview); + G_CALLBACK(view_popup_menu_onRemove), treeview); gtk_widget_show_all(GTK_WIDGET(menu)); @@ -2900,7 +2899,7 @@ static void entry_activated(GtkWidget *entry, dt_control_queue_redraw_center(); } -static void entry_changed(GtkEntry *entry, +static void entry_changed(GtkWidget *entry, dt_lib_collect_rule_t *dr) { dr->typing = TRUE; @@ -3247,7 +3246,7 @@ static gboolean popup_button_callback(GtkWidget *widget, mi = gtk_menu_item_new_with_label(_("clear this rule")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_clear), d); + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_clear), d); if(d->num == active - 1) { @@ -3255,21 +3254,21 @@ static gboolean popup_button_callback(GtkWidget *widget, g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_mode), d); mi = gtk_menu_item_new_with_label(_("add more images")); g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_OR)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_mode), d); mi = gtk_menu_item_new_with_label(_("exclude images")); g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND_NOT)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_mode), d); } else if(d->num < active - 1) @@ -3278,21 +3277,21 @@ static gboolean popup_button_callback(GtkWidget *widget, g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_mode_change), d); mi = gtk_menu_item_new_with_label(_("change to: or")); g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_OR)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_mode_change), d); mi = gtk_menu_item_new_with_label(_("change to: except")); g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND_NOT)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_mode_change), d); } @@ -3401,7 +3400,7 @@ void set_preferences(void *menu, dt_lib_module_t *self) { GtkWidget *mi = gtk_menu_item_new_with_label(_("preferences...")); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(_menuitem_preferences), self); + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_preferences), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } @@ -3590,7 +3589,7 @@ static void _history_show(GtkWidget *widget, GtkWidget *child = gtk_bin_get_child(GTK_BIN(smt)); gtk_label_set_use_markup(GTK_LABEL(child), TRUE); g_object_set_data(G_OBJECT(smt), "history", GINT_TO_POINTER(i)); - g_signal_connect(G_OBJECT(smt), "activate", G_CALLBACK(_history_apply), self); + g_signal_connect(smt, "activate", G_CALLBACK(_history_apply), self); gtk_menu_shell_append(pop, smt); } else @@ -3643,7 +3642,7 @@ GtkWidget *gui_tool_box(dt_lib_module_t *self) gtk_widget_set_tooltip_text(sortb, _("toggle collection sort order ascending/descending")); dt_gui_add_class(sortb, "dt_ignore_fg_state"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sortb), sort_descend); - g_signal_connect(G_OBJECT(sortb), + g_signal_connect(DTGTK_TOGGLEBUTTON(sortb), "toggled", G_CALLBACK(_sort_reverse_changed), self); return sortb; @@ -3674,21 +3673,21 @@ void gui_init(dt_lib_module_t *self) dt_bauhaus_combobox_mute_scrolling(w); if(_combo_get_active_collection(w) == DT_COLLECTION_PROP_MODULE) has_iop_name_rule = TRUE; - g_signal_connect(G_OBJECT(w), "value-changed", + g_signal_connect(w, "value-changed", G_CALLBACK(combo_changed), d->rule + i); d->rule[i].text = w = dt_ui_entry_new(10); gtk_widget_add_events(w, GDK_FOCUS_CHANGE_MASK | GDK_KEY_PRESS_MASK); - g_signal_connect(G_OBJECT(w), "focus-in-event", + g_signal_connect(w, "focus-in-event", G_CALLBACK(entry_focus_in_callback), d->rule + i); - g_signal_connect(G_OBJECT(w), "changed", G_CALLBACK(entry_changed), d->rule + i); - g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(entry_activated), d->rule + i); + g_signal_connect(w, "changed", G_CALLBACK(entry_changed), d->rule + i); + g_signal_connect(w, "activate", G_CALLBACK(entry_activated), d->rule + i); gtk_entry_set_width_chars(GTK_ENTRY(w), 5); d->rule[i].button = w = dtgtk_button_new(dtgtk_cairo_paint_presets, 0, NULL); dt_gui_add_class(GTK_WIDGET(w), "dt_big_btn_canvas"); gtk_widget_set_events(w, GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(w), "button-press-event", + g_signal_connect(w, "button-press-event", G_CALLBACK(popup_button_callback), d->rule + i); d->rule[i].hbox = dt_gui_hbox(d->rule[i].combo, dt_gui_expand(d->rule[i].text), d->rule[i].button); @@ -3700,9 +3699,9 @@ void gui_init(dt_lib_module_t *self) d->view_rule = -1; d->view = view; gtk_tree_view_set_headers_visible(view, FALSE); - g_signal_connect(G_OBJECT(view), "button-press-event", + g_signal_connect(view, "button-press-event", G_CALLBACK(view_onButtonPressed), d); - g_signal_connect(G_OBJECT(view), "popup-menu", G_CALLBACK(view_onPopupMenu), d); + g_signal_connect(view, "popup-menu", G_CALLBACK(view_onPopupMenu), d); GtkTreeViewColumn *col = gtk_tree_view_column_new(); gtk_tree_view_append_column(view, col); @@ -3765,13 +3764,13 @@ void gui_init(dt_lib_module_t *self) #ifdef _WIN32 d->vmonitor = g_volume_monitor_get(); - g_signal_connect(G_OBJECT(d->vmonitor), "mount-changed", + g_signal_connect(d->vmonitor, "mount-changed", G_CALLBACK(_mount_changed), self); - g_signal_connect(G_OBJECT(d->vmonitor), "mount-added", + g_signal_connect(d->vmonitor, "mount-added", G_CALLBACK(_mount_changed), self); #else d->vmonitor = g_unix_mount_monitor_get(); - g_signal_connect(G_OBJECT(d->vmonitor), "mounts-changed", + g_signal_connect(d->vmonitor, "mounts-changed", G_CALLBACK(_mount_changed), self); #endif diff --git a/src/libs/colorpicker.c b/src/libs/colorpicker.c index cb3faf4f2c87..71e36cbee0af 100644 --- a/src/libs/colorpicker.c +++ b/src/libs/colorpicker.c @@ -405,7 +405,7 @@ static gboolean _sample_tooltip_callback(GtkWidget *widget, view = gtk_text_view_new(); dt_gui_add_class(view, "dt_transparent_background"); dt_gui_add_class(view, "dt_monospace"); - g_signal_connect(G_OBJECT(view), "destroy", + g_signal_connect(view, "destroy", G_CALLBACK(gtk_widget_destroyed), &view); } @@ -617,9 +617,9 @@ static void _add_sample(GtkButton *widget, sample->container = gtk_event_box_new(); gtk_widget_add_events(sample->container, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); - g_signal_connect(G_OBJECT(sample->container), "enter-notify-event", + g_signal_connect(sample->container, "enter-notify-event", G_CALLBACK(_sample_enter_callback), sample); - g_signal_connect(G_OBJECT(sample->container), "leave-notify-event", + g_signal_connect(sample->container, "leave-notify-event", G_CALLBACK(_sample_leave_callback), sample); sample->color_patch = gtk_drawing_area_new(); @@ -629,9 +629,9 @@ static void _add_sample(GtkButton *widget, _("hover to highlight sample on canvas,\n" "click to lock sample,\n" "right-click to load sample area into active color picker")); - g_signal_connect(G_OBJECT(sample->color_patch), "button-press-event", + g_signal_connect(sample->color_patch, "button-press-event", G_CALLBACK(_live_sample_button), sample); - g_signal_connect(G_OBJECT(sample->color_patch), "draw", + g_signal_connect(sample->color_patch, "draw", G_CALLBACK(_sample_draw_callback), sample); GtkWidget *color_patch_wrapper = dt_gui_hbox(dt_gui_expand(sample->color_patch)); @@ -642,13 +642,13 @@ static void _add_sample(GtkButton *widget, gtk_label_set_ellipsize(GTK_LABEL(sample->output_label), PANGO_ELLIPSIZE_START); gtk_label_set_selectable(GTK_LABEL(sample->output_label), TRUE); gtk_widget_set_has_tooltip(sample->output_label, TRUE); - g_signal_connect(G_OBJECT(sample->output_label), "query-tooltip", + g_signal_connect(sample->output_label, "query-tooltip", G_CALLBACK(_sample_tooltip_callback), sample); - g_signal_connect(G_OBJECT(sample->output_label), "size-allocate", + g_signal_connect(sample->output_label, "size-allocate", G_CALLBACK(_label_size_allocate_callback), sample); GtkWidget *delete_button = dtgtk_togglebutton_new(dtgtk_cairo_paint_remove, 0, NULL); - g_signal_connect(G_OBJECT(delete_button), "clicked", + g_signal_connect(delete_button, "clicked", G_CALLBACK(_remove_sample_cb), sample); gtk_container_add(GTK_CONTAINER(sample->container), @@ -734,13 +734,13 @@ void gui_init(dt_lib_module_t *self) GDK_BUTTON_PRESS_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); - g_signal_connect(G_OBJECT(color_patch), "draw", + g_signal_connect(color_patch, "draw", G_CALLBACK(_sample_draw_callback), &data->primary_sample); - g_signal_connect(G_OBJECT(color_patch), "button-press-event", + g_signal_connect(color_patch, "button-press-event", G_CALLBACK(_large_patch_toggle), data); - g_signal_connect(G_OBJECT(color_patch), "enter-notify-event", + g_signal_connect(color_patch, "enter-notify-event", G_CALLBACK(_sample_enter_callback), &data->primary_sample); - g_signal_connect(G_OBJECT(color_patch), "leave-notify-event", + g_signal_connect(color_patch, "leave-notify-event", G_CALLBACK(_sample_leave_callback), &data->primary_sample); GtkWidget *color_patch_wrapper = dt_gui_hbox(dt_gui_expand(color_patch)); gtk_widget_set_name(GTK_WIDGET(color_patch_wrapper), "color-picker-area"); @@ -774,7 +774,7 @@ void gui_init(dt_lib_module_t *self) (data->picker_button, _("turn on color picker\nctrl+click or right-click to select an area")); gtk_widget_set_name(GTK_WIDGET(data->picker_button), "color-picker-button"); - g_signal_connect(G_OBJECT(data->picker_button), "toggled", + g_signal_connect(data->picker_button, "toggled", G_CALLBACK(_picker_button_toggled), data); dt_action_define(DT_ACTION(self), NULL, N_("pick color"), data->picker_button, &dt_action_def_toggle); @@ -782,17 +782,17 @@ void gui_init(dt_lib_module_t *self) // The small sample, label and add button GtkWidget *sample_row_events = gtk_event_box_new(); gtk_widget_add_events(sample_row_events, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); - g_signal_connect(G_OBJECT(sample_row_events), "enter-notify-event", + g_signal_connect(sample_row_events, "enter-notify-event", G_CALLBACK(_sample_enter_callback), &data->primary_sample); - g_signal_connect(G_OBJECT(sample_row_events), "leave-notify-event", + g_signal_connect(sample_row_events, "leave-notify-event", G_CALLBACK(_sample_leave_callback), &data->primary_sample); data->primary_sample.color_patch = color_patch = gtk_drawing_area_new(); gtk_widget_set_tooltip_text(color_patch, _("click to (un)hide large color patch")); gtk_widget_set_events(color_patch, GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(color_patch), "button-press-event", + g_signal_connect(color_patch, "button-press-event", G_CALLBACK(_large_patch_toggle), data); - g_signal_connect(G_OBJECT(color_patch), "draw", + g_signal_connect(color_patch, "draw", G_CALLBACK(_sample_draw_callback), &data->primary_sample); GtkWidget *sample_patch_wrapper = dt_gui_hbox(dt_gui_expand(color_patch)); @@ -804,14 +804,14 @@ void gui_init(dt_lib_module_t *self) gtk_label_set_selectable(GTK_LABEL(label), TRUE); dt_gui_add_class(label, "dt_monospace"); gtk_widget_set_has_tooltip(label, TRUE); - g_signal_connect(G_OBJECT(label), "query-tooltip", + g_signal_connect(label, "query-tooltip", G_CALLBACK(_sample_tooltip_callback), &data->primary_sample); - g_signal_connect(G_OBJECT(label), "size-allocate", + g_signal_connect(label, "size-allocate", G_CALLBACK(_label_size_allocate_callback), &data->primary_sample); data->add_sample_button = dtgtk_button_new(dtgtk_cairo_paint_square_plus, 0, NULL); gtk_widget_set_sensitive(data->add_sample_button, FALSE); - g_signal_connect(G_OBJECT(data->add_sample_button), "clicked", + g_signal_connect(data->add_sample_button, "clicked", G_CALLBACK(_add_sample), self); dt_action_define(DT_ACTION(self), NULL, N_("add sample"), data->add_sample_button, &dt_action_def_button); @@ -832,7 +832,7 @@ void gui_init(dt_lib_module_t *self) PANGO_ELLIPSIZE_MIDDLE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->display_samples_check_box), dt_conf_get_bool("ui_last/colorpicker_display_samples")); - g_signal_connect(G_OBJECT(data->display_samples_check_box), "toggled", + g_signal_connect(data->display_samples_check_box, "toggled", G_CALLBACK(_display_samples_changed), NULL); GtkWidget *restrict_button = @@ -845,7 +845,7 @@ void gui_init(dt_lib_module_t *self) gboolean restrict_histogram = dt_conf_get_bool("ui_last/colorpicker_restrict_histogram"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(restrict_button), restrict_histogram); darktable.lib->proxy.colorpicker.restrict_histogram = restrict_histogram; - g_signal_connect(G_OBJECT(restrict_button), "toggled", + g_signal_connect(restrict_button, "toggled", G_CALLBACK(_restrict_histogram_changed), NULL); // Setting up the GUI diff --git a/src/libs/duplicate.c b/src/libs/duplicate.c index cf6d5d190394..fe50641c50a5 100644 --- a/src/libs/duplicate.c +++ b/src/libs/duplicate.c @@ -124,7 +124,7 @@ static void _lib_duplicate_duplicate_clicked_callback(GtkWidget *widget, DT_CONTROL_SIGNAL_RAISE(DT_SIGNAL_VIEWMANAGER_THUMBTABLE_ACTIVATE, newid); } -static void _lib_duplicate_delete(GtkButton *button, dt_lib_module_t *self) +static void _lib_duplicate_delete(GtkWidget *button, dt_lib_module_t *self) { dt_lib_duplicate_t *d = self->data; const dt_imgid_t imgid = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "imgid")); @@ -157,9 +157,9 @@ static void _lib_duplicate_delete(GtkButton *button, dt_lib_module_t *self) g_list_prepend(NULL, GINT_TO_POINTER(imgid))); } -static void _lib_duplicate_thumb_press_callback(GtkWidget *widget, - GdkEventButton *event, - dt_lib_module_t *self) +static gboolean _lib_duplicate_thumb_press_callback(GtkWidget *widget, + GdkEventButton *event, + dt_lib_module_t *self) { dt_lib_duplicate_t *d = self->data; dt_thumbnail_t *thumb = (dt_thumbnail_t *)g_object_get_data(G_OBJECT(widget), "thumb"); @@ -178,16 +178,18 @@ static void _lib_duplicate_thumb_press_callback(GtkWidget *widget, DT_CONTROL_SIGNAL_RAISE(DT_SIGNAL_VIEWMANAGER_THUMBTABLE_ACTIVATE, imgid); } } + return TRUE; } -static void _lib_duplicate_thumb_release_callback(GtkWidget *widget, - GdkEventButton *event, - dt_lib_module_t *self) +static gboolean _lib_duplicate_thumb_release_callback(GtkWidget *widget, + GdkEventButton *event, + dt_lib_module_t *self) { dt_lib_duplicate_t *d = self->data; d->imgid = NO_IMGID; dt_control_queue_redraw_center(); + return TRUE; } void view_leave(struct dt_lib_module_t *self, @@ -304,9 +306,9 @@ static void _lib_duplicate_init_callback(gpointer instance, dt_lib_module_t *sel if(imgid != dev->image_storage.id) { - g_signal_connect(G_OBJECT(thumb->w_main), "button-press-event", + g_signal_connect(thumb->w_main, "button-press-event", G_CALLBACK(_lib_duplicate_thumb_press_callback), self); - g_signal_connect(G_OBJECT(thumb->w_main), "button-release-event", + g_signal_connect(thumb->w_main, "button-release-event", G_CALLBACK(_lib_duplicate_thumb_release_callback), self); } @@ -319,7 +321,7 @@ static void _lib_duplicate_init_callback(gpointer instance, dt_lib_module_t *sel gtk_widget_set_hexpand(tb, TRUE); g_object_set_data (G_OBJECT(tb), "imgid", GINT_TO_POINTER(imgid)); gtk_widget_add_events(tb, GDK_FOCUS_CHANGE_MASK); - g_signal_connect(G_OBJECT(tb), "focus-out-event", + g_signal_connect(tb, "focus-out-event", G_CALLBACK(_lib_duplicate_caption_out_callback), self); GtkWidget *lb = gtk_label_new (g_strdup(chl)); gtk_widget_set_hexpand(lb, TRUE); @@ -327,7 +329,7 @@ static void _lib_duplicate_init_callback(gpointer instance, dt_lib_module_t *sel gtk_widget_set_tooltip_text(bt, _("delete this duplicate")); // gtk_widget_set_halign(bt, GTK_ALIGN_END); g_object_set_data(G_OBJECT(bt), "imgid", GINT_TO_POINTER(imgid)); - g_signal_connect(G_OBJECT(bt), "clicked", G_CALLBACK(_lib_duplicate_delete), self); + g_signal_connect(bt, "clicked", G_CALLBACK(_lib_duplicate_delete), self); gtk_grid_attach(GTK_GRID(hb), thumb->w_main, 0, 0, 1, 2); gtk_grid_attach(GTK_GRID(hb), bt, 2, 0, 1, 1); diff --git a/src/libs/export.c b/src/libs/export.c index f0fde6b71cd0..e3e557b882f3 100644 --- a/src/libs/export.c +++ b/src/libs/export.c @@ -570,9 +570,9 @@ static gboolean _scale_mdlclick(GtkEntry *spin, return FALSE; } -static void _widht_mdlclick(GtkEntry *spin, - GdkEventButton *event, - gpointer user_data) +static gboolean _widht_mdlclick(GtkEntry *spin, + GdkEventButton *event, + gpointer user_data) { if(event->button == GDK_BUTTON_MIDDLE) { @@ -585,11 +585,12 @@ static void _widht_mdlclick(GtkEntry *spin, { _width_changed(GTK_EDITABLE(spin), user_data); } + return TRUE; } -static void _height_mdlclick(GtkEntry *spin, - GdkEventButton *event, - gpointer user_data) +static gboolean _height_mdlclick(GtkEntry *spin, + GdkEventButton *event, + gpointer user_data) { if(event->button == GDK_BUTTON_MIDDLE) { @@ -602,6 +603,7 @@ static void _height_mdlclick(GtkEntry *spin, { _height_changed(GTK_EDITABLE(spin), user_data); } + return TRUE; } static void _size_in_px_update(dt_lib_export_t *d) @@ -1298,11 +1300,10 @@ static gboolean _batch_preset_active(dt_lib_module_t *self) return batch_preset_active; } -static void _batch_export_toggled_callback(GtkCellRendererToggle *cell_renderer, +static void _batch_export_toggled_callback(GtkCellRenderer *cell_renderer, gchar *path_str, - gpointer user_data) + dt_lib_module_t *self) { - dt_lib_module_t *self = user_data; dt_lib_export_t *d = self->data; GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(d->batch_treeview)); @@ -1413,7 +1414,7 @@ static void _export_presets_changed_callback(gpointer instance, gpointer module, void set_preferences(void *menu, dt_lib_module_t *self) { GtkWidget *mi = gtk_menu_item_new_with_label(_("preferences...")); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_preferences), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } @@ -1447,7 +1448,7 @@ void gui_init(dt_lib_module_t *self) // postponed so we can do the two steps in one loop DT_CONTROL_SIGNAL_HANDLE(DT_SIGNAL_IMAGEIO_STORAGE_CHANGE, _on_storage_list_changed); - g_signal_connect(G_OBJECT(d->storage), "value-changed", + g_signal_connect(d->storage, "value-changed", G_CALLBACK(_storage_changed), self); d->format = dt_bauhaus_combobox_new_action(DT_ACTION(self)); @@ -1459,8 +1460,8 @@ void gui_init(dt_lib_module_t *self) "for these formats, no metadata fields will be included\n" "unless the user selects all of the metadata checkboxes in\n" "the export module preferences")); - g_signal_connect(G_OBJECT(d->format), "value-changed", - G_CALLBACK(_format_changed), (gpointer)d); + g_signal_connect(d->format, "value-changed", + G_CALLBACK(_format_changed), d); // add all format widgets to the stack widget d->format_extra_container = gtk_stack_new(); @@ -1640,7 +1641,7 @@ void gui_init(dt_lib_module_t *self) GtkWidget *styles_button = dtgtk_button_new(dtgtk_cairo_paint_styles, 0, NULL); gtk_widget_set_halign(styles_button,GTK_ALIGN_END); - g_signal_connect(G_OBJECT(styles_button), "clicked", G_CALLBACK(_style_popupmenu_callback), (gpointer)d); + g_signal_connect(styles_button, "clicked", G_CALLBACK(_style_popupmenu_callback), d); gtk_widget_set_tooltip_text(styles_button, _("select style to be applied on export")); // dt_gui_add_help_link(styles, "bottom_panel_styles"); GtkBox *style_box = (GtkBox*)gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); @@ -1660,8 +1661,8 @@ void gui_init(dt_lib_module_t *self) _update_style_label(d, stored_style ? stored_style : ""); // Set callback signals - g_signal_connect(G_OBJECT(d->profile), "value-changed", - G_CALLBACK(_profile_changed), (gpointer)d); + g_signal_connect(d->profile, "value-changed", + G_CALLBACK(_profile_changed), d); // Export button d->export_button = GTK_BUTTON(dt_action_button_new @@ -1729,16 +1730,16 @@ void gui_init(dt_lib_module_t *self) gtk_widget_add_events(d->print_height, GDK_BUTTON_PRESS_MASK); gtk_widget_add_events(d->scale, GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(d->width), "button-press-event", - G_CALLBACK(_widht_mdlclick), (gpointer)d); - g_signal_connect(G_OBJECT(d->height), "button-press-event", - G_CALLBACK(_height_mdlclick), (gpointer)d); - g_signal_connect(G_OBJECT(d->print_width), "button-press-event", - G_CALLBACK(_widht_mdlclick), (gpointer)d); - g_signal_connect(G_OBJECT(d->print_height), "button-press-event", - G_CALLBACK(_height_mdlclick), (gpointer)d); - g_signal_connect(G_OBJECT(d->scale), "button-press-event", - G_CALLBACK(_scale_mdlclick), (gpointer)d); + g_signal_connect(d->width, "button-press-event", + G_CALLBACK(_widht_mdlclick), d); + g_signal_connect(d->height, "button-press-event", + G_CALLBACK(_height_mdlclick), d); + g_signal_connect(d->print_width, "button-press-event", + G_CALLBACK(_widht_mdlclick), d); + g_signal_connect(d->print_height, "button-press-event", + G_CALLBACK(_height_mdlclick), d); + g_signal_connect(d->scale, "button-press-event", + G_CALLBACK(_scale_mdlclick), d); // this takes care of keeping hidden widgets hidden gtk_widget_show_all(self->widget); diff --git a/src/libs/export_metadata.c b/src/libs/export_metadata.c index be126b1129e4..71e26281edba 100644 --- a/src/libs/export_metadata.c +++ b/src/libs/export_metadata.c @@ -195,7 +195,7 @@ char *dt_lib_export_metadata_configuration_dialog(char *metadata_presets, const GtkWidget *dttag = gtk_check_button_new_with_label(_("tags")); gtk_widget_set_tooltip_text(dttag, _("export tags (to Xmp.dc.Subject)")); - g_signal_connect(G_OBJECT(dttag), "clicked", G_CALLBACK(_tags_toggled), (gpointer)d); + g_signal_connect(dttag, "clicked", G_CALLBACK(_tags_toggled), (gpointer)d); d->private = gtk_check_button_new_with_label(_("private tags")); gtk_widget_set_tooltip_text(d->private, _("export private tags")); @@ -220,7 +220,7 @@ char *dt_lib_export_metadata_configuration_dialog(char *metadata_presets, const gtk_tree_view_append_column(view, col); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "editable", TRUE, NULL); - g_signal_connect(G_OBJECT(renderer), "edited", G_CALLBACK(_formula_edited), (gpointer)d); + g_signal_connect(renderer, "edited", G_CALLBACK(_formula_edited), (gpointer)d); dt_gui_commit_on_focus_loss(renderer, &active_editable); col = gtk_tree_view_column_new_with_attributes(_("formula"), renderer, "text", 2, NULL); gtk_tree_view_append_column(view, col); @@ -232,7 +232,7 @@ char *dt_lib_export_metadata_configuration_dialog(char *metadata_presets, const "otherwise the corresponding metadata is calculated and added to exported file\n" "click on formula cell to edit\n" "type '$(' to activate the completion and see the list of variables")); - g_signal_connect(G_OBJECT(view), "key_press_event", G_CALLBACK(_key_press_on_list), (gpointer)d); + g_signal_connect(view, "key-press-event", G_CALLBACK(_key_press_on_list), (gpointer)d); GtkListStore *liststore = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); d->liststore = liststore; @@ -278,11 +278,11 @@ char *dt_lib_export_metadata_configuration_dialog(char *metadata_presets, const GtkWidget *plus = dtgtk_button_new(dtgtk_cairo_paint_plus_simple, 0, NULL); gtk_widget_set_tooltip_text(plus, _("add an output metadata tag")); - g_signal_connect(G_OBJECT(plus), "clicked", G_CALLBACK(_add_tag_button_clicked), (gpointer)d); + g_signal_connect(plus, "clicked", G_CALLBACK(_add_tag_button_clicked), (gpointer)d); GtkWidget *minus = dtgtk_button_new(dtgtk_cairo_paint_minus_simple, 0, NULL); gtk_widget_set_tooltip_text(minus, _("delete metadata tag")); - g_signal_connect(G_OBJECT(minus), "clicked", G_CALLBACK(_delete_tag_button_clicked), (gpointer)d); + g_signal_connect(minus, "clicked", G_CALLBACK(_delete_tag_button_clicked), (gpointer)d); #ifdef GDK_WINDOWING_QUARTZ dt_osx_disallow_fullscreen(dialog); diff --git a/src/libs/filtering.c b/src/libs/filtering.c index e6a9bfb5dafc..6ee8717dd406 100644 --- a/src/libs/filtering.c +++ b/src/libs/filtering.c @@ -736,7 +736,7 @@ static void _range_widget_add_to_rule(dt_lib_filtering_rule_t *rule, _widgets_ra gtk_box_pack_start(GTK_BOX((top) ? rule->w_special_box_top : rule->w_special_box), special->range_select, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(special->range_select), "value-changed", G_CALLBACK(_range_changed), special); + g_signal_connect(special->range_select, "value-changed", G_CALLBACK(_range_changed), special); if(top) { dt_gui_add_class(gtk_bin_get_child(GTK_BIN(special->range_select)), "dt_quick_filter"); @@ -867,7 +867,7 @@ static void _popup_add_item(GtkMenuShell *pop, const gchar *name, const int id, g_object_set_data(G_OBJECT(smt), "collect_id", GINT_TO_POINTER(id)); g_object_set_data(G_OBJECT(smt), "topbar", GINT_TO_POINTER(0)); if(data) g_object_set_data(G_OBJECT(smt), "collect_data", data); - g_signal_connect(G_OBJECT(smt), "activate", callback, self); + g_signal_connect(smt, "activate", G_CALLBACK(callback), self); } gtk_menu_shell_append(pop, smt); } @@ -1081,7 +1081,7 @@ static void _topbar_update(dt_lib_module_t *self) GtkWidget *evtb = gtk_event_box_new(); GtkWidget *label = gtk_label_new(C_("quickfilter", "filter")); gtk_container_add(GTK_CONTAINER(evtb), label); - g_signal_connect(G_OBJECT(evtb), "button-press-event", G_CALLBACK(_topbar_label_press), self); + g_signal_connect(evtb, "button-press-event", G_CALLBACK(_topbar_label_press), self); gtk_box_pack_start(GTK_BOX(fbox), evtb, TRUE, TRUE, 0); gtk_widget_show_all(evtb); } @@ -1253,7 +1253,7 @@ static gboolean _widget_init(dt_lib_filtering_rule_t *rule, const dt_collection_ dt_bauhaus_combobox_set_selected_text_align(rule->w_operator, DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); gtk_widget_set_tooltip_text(rule->w_operator, _("define how this rule should interact with the previous one")); gtk_box_pack_start(GTK_BOX(hbox), rule->w_operator, FALSE, FALSE, 0); - g_signal_connect(G_OBJECT(rule->w_operator), "value-changed", G_CALLBACK(_event_rule_changed), rule); + g_signal_connect(rule->w_operator, "value-changed", G_CALLBACK(_event_rule_changed), rule); } dt_bauhaus_combobox_set(rule->w_operator, mode); @@ -1268,7 +1268,7 @@ static gboolean _widget_init(dt_lib_filtering_rule_t *rule, const dt_collection_ _rule_populate_prop_combo(rule); g_object_set_data(G_OBJECT(rule->w_prop), "rule", rule); dt_bauhaus_combobox_set_from_value(rule->w_prop, prop); - g_signal_connect(G_OBJECT(rule->w_prop), "value-changed", G_CALLBACK(_event_rule_change_type), self); + g_signal_connect(rule->w_prop, "value-changed", G_CALLBACK(_event_rule_change_type), self); gtk_box_pack_start(GTK_BOX(hbox), rule->w_prop, TRUE, TRUE, 0); } else if(newprop) @@ -1286,14 +1286,14 @@ static gboolean _widget_init(dt_lib_filtering_rule_t *rule, const dt_collection_ rule->w_off = dtgtk_togglebutton_new(dtgtk_cairo_paint_switch, 0, NULL); dt_gui_add_class(rule->w_off, "dt_transparent_background"); g_object_set_data(G_OBJECT(rule->w_off), "rule", rule); - g_signal_connect(G_OBJECT(rule->w_off), "toggled", G_CALLBACK(_event_rule_disable), rule); + g_signal_connect(rule->w_off, "toggled", G_CALLBACK(_event_rule_disable), rule); gtk_box_pack_end(GTK_BOX(rule->w_btn_box), rule->w_off, FALSE, FALSE, 0); // pin button rule->w_pin = dtgtk_togglebutton_new(dtgtk_cairo_paint_pin, 0, NULL); dt_gui_add_class(rule->w_pin, "dt_transparent_background"); g_object_set_data(G_OBJECT(rule->w_pin), "rule", rule); - g_signal_connect(G_OBJECT(rule->w_pin), "toggled", G_CALLBACK(_rule_topbar_toggle), self); + g_signal_connect(rule->w_pin, "toggled", G_CALLBACK(_rule_topbar_toggle), self); dt_gui_add_class(rule->w_pin, "dt_dimmed"); gtk_box_pack_end(GTK_BOX(rule->w_btn_box), rule->w_pin, FALSE, FALSE, 0); gtk_widget_set_no_show_all(rule->w_pin, TRUE); @@ -1301,7 +1301,7 @@ static gboolean _widget_init(dt_lib_filtering_rule_t *rule, const dt_collection_ // remove button rule->w_close = dtgtk_button_new(dtgtk_cairo_paint_remove, 0, NULL); g_object_set_data(G_OBJECT(rule->w_close), "rule", rule); - g_signal_connect(G_OBJECT(rule->w_close), "button-press-event", G_CALLBACK(_event_rule_close), self); + g_signal_connect(rule->w_close, "button-press-event", G_CALLBACK(_event_rule_close), self); gtk_box_pack_end(GTK_BOX(rule->w_btn_box), rule->w_close, FALSE, FALSE, 0); } @@ -1569,7 +1569,7 @@ static void _event_history_show(GtkWidget *widget, dt_lib_module_t *self) GtkWidget *child = gtk_bin_get_child(GTK_BIN(smt)); gtk_label_set_use_markup(GTK_LABEL(child), TRUE); g_object_set_data(G_OBJECT(smt), "history", GINT_TO_POINTER(i)); - g_signal_connect(G_OBJECT(smt), "activate", G_CALLBACK(_event_history_apply), self); + g_signal_connect(smt, "activate", G_CALLBACK(_event_history_apply), self); gtk_menu_shell_append(pop, smt); g_free(line); } @@ -1687,7 +1687,7 @@ static GtkWidget *_topbar_menu_new_rule(dt_lib_filtering_rule_t *rule, dt_lib_mo gtk_box_pack_start(GTK_BOX(hb), lb, TRUE, TRUE, 0); GtkWidget *btr = dtgtk_button_new(dtgtk_cairo_paint_remove, 0, NULL); g_object_set_data(G_OBJECT(btr), "rule", rule); - g_signal_connect(G_OBJECT(btr), "button-press-event", G_CALLBACK(_topbar_rule_remove), self); + g_signal_connect(btr, "button-press-event", G_CALLBACK(_topbar_rule_remove), self); gtk_box_pack_start(GTK_BOX(hb), btr, FALSE, TRUE, 0); return hb; } @@ -1753,7 +1753,7 @@ static void _topbar_show_pref_menu(dt_lib_module_t *self, GtkWidget *bt) dt_bauhaus_combobox_mute_scrolling(nr); dt_bauhaus_widget_set_label(nr, NULL, _("new filter")); _topbar_populate_rules_combo(nr, d); - g_signal_connect(G_OBJECT(nr), "value-changed", G_CALLBACK(_topbar_rule_add), self); + g_signal_connect(nr, "value-changed", G_CALLBACK(_topbar_rule_add), self); gtk_box_pack_end(GTK_BOX(vbox2), nr, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), vbox2, TRUE, TRUE, 0); @@ -1763,7 +1763,7 @@ static void _topbar_show_pref_menu(dt_lib_module_t *self, GtkWidget *bt) gtk_box_pack_start(GTK_BOX(vbox), lb, TRUE, TRUE, 0); GtkWidget *btr = gtk_button_new_with_label(_("reset quickfilters")); dt_gui_add_class(btr, "dt_transparent_background"); - g_signal_connect(G_OBJECT(btr), "button-press-event", G_CALLBACK(_topbar_reset_press), self); + g_signal_connect(btr, "button-press-event", G_CALLBACK(_topbar_reset_press), self); gtk_box_pack_start(GTK_BOX(vbox), btr, TRUE, TRUE, 0); // show the popover @@ -1938,7 +1938,7 @@ static gboolean _sort_init(_widgets_sort_t *sort, const dt_collection_sort_t sor dt_bauhaus_widget_hide_label(sort->sort); dt_bauhaus_combobox_mute_scrolling(sort->sort); gtk_widget_set_tooltip_text(sort->sort, _("determine the sort order of shown images")); - g_signal_connect(G_OBJECT(sort->sort), "value-changed", G_CALLBACK(_sort_combobox_changed), sort); + g_signal_connect(sort->sort, "value-changed", G_CALLBACK(_sort_combobox_changed), sort); gtk_box_pack_start(GTK_BOX(sort->box), sort->sort, TRUE, TRUE, 0); dt_bauhaus_combobox_add_section(sort->sort, _("files")); @@ -1954,7 +1954,7 @@ static gboolean _sort_init(_widgets_sort_t *sort, const dt_collection_sort_t sor sort->direction = dtgtk_togglebutton_new(dtgtk_cairo_paint_sortby, CPF_DIRECTION_UP, NULL); gtk_widget_set_halign(sort->direction, GTK_ALIGN_START); gtk_box_pack_start(GTK_BOX(sort->box), sort->direction, FALSE, TRUE, 0); - g_signal_connect(G_OBJECT(sort->direction), "toggled", G_CALLBACK(_sort_reverse_changed), sort); + g_signal_connect(DTGTK_TOGGLEBUTTON(sort->direction), "toggled", G_CALLBACK(_sort_reverse_changed), sort); dt_gui_add_class(sort->direction, "dt_ignore_fg_state"); if(num == 0) dt_action_define(DT_ACTION(self), NULL, _("sort direction"), sort->direction, &dt_action_def_toggle); @@ -1963,7 +1963,7 @@ static gboolean _sort_init(_widgets_sort_t *sort, const dt_collection_sort_t sor gtk_widget_set_no_show_all(sort->close, TRUE); g_object_set_data(G_OBJECT(sort->close), "sort", sort); gtk_widget_set_tooltip_text(sort->close, _("remove this sort order")); - g_signal_connect(G_OBJECT(sort->close), "button-press-event", G_CALLBACK(_sort_close), self); + g_signal_connect(sort->close, "button-press-event", G_CALLBACK(_sort_close), self); gtk_box_pack_start(GTK_BOX(sort->box), sort->close, FALSE, FALSE, 0); } @@ -2154,7 +2154,7 @@ static void _sort_history_show(GtkWidget *widget, dt_lib_module_t *self) GtkWidget *smt = gtk_menu_item_new_with_label(str); gtk_widget_set_tooltip_text(smt, str); g_object_set_data(G_OBJECT(smt), "history", GINT_TO_POINTER(i)); - g_signal_connect(G_OBJECT(smt), "activate", G_CALLBACK(_sort_history_apply), self); + g_signal_connect(smt, "activate", G_CALLBACK(_sort_history_apply), self); gtk_menu_shell_append(pop, smt); g_free(line); } diff --git a/src/libs/filters/colors.c b/src/libs/filters/colors.c index b497d068befe..242bdb2ab7a7 100644 --- a/src/libs/filters/colors.c +++ b/src/libs/filters/colors.c @@ -295,8 +295,8 @@ static void _colors_widget_init(dt_lib_filtering_rule_t *rule, const dt_collecti "\nclick to toggle the color label selection" "\nctrl+click to exclude the color label" "\nthe gray button affects all color labels")); - g_signal_connect(G_OBJECT(colors->colors[k]), "button-press-event", G_CALLBACK(_colors_clicked), colors); - g_signal_connect(G_OBJECT(colors->colors[k]), "enter-notify-event", G_CALLBACK(_colors_enter_notify), + g_signal_connect(colors->colors[k], "button-press-event", G_CALLBACK(_colors_clicked), colors); + g_signal_connect(colors->colors[k], "enter-notify-event", G_CALLBACK(_colors_enter_notify), GINT_TO_POINTER(k)); dt_action_define(DT_ACTION(self), N_("rules"), N_("color label"), colors->colors[k], &dt_action_def_colors_rule); } @@ -306,8 +306,8 @@ static void _colors_widget_init(dt_lib_filtering_rule_t *rule, const dt_collecti _("filter by images color label" "\nintersection: images having all selected color labels" "\nunion: images with at least one of the selected color labels")); - g_signal_connect(G_OBJECT(colors->operator), "clicked", G_CALLBACK(_colors_operator_clicked), colors); - g_signal_connect(G_OBJECT(colors->operator), "enter-notify-event", G_CALLBACK(_colors_enter_notify), + g_signal_connect(colors->operator, "clicked", G_CALLBACK(_colors_operator_clicked), colors); + g_signal_connect(colors->operator, "enter-notify-event", G_CALLBACK(_colors_enter_notify), GINT_TO_POINTER(-1)); dt_action_t *ac = dt_action_define(DT_ACTION(self), N_("rules"), N_("color label"), colors->operator, &dt_action_def_colors_rule); diff --git a/src/libs/filters/filename.c b/src/libs/filters/filename.c index 95a91cbae1e0..5601c598ab83 100644 --- a/src/libs/filters/filename.c +++ b/src/libs/filters/filename.c @@ -369,9 +369,9 @@ static void _filename_widget_init(dt_lib_filtering_rule_t *rule, const dt_collec "multiple values can be separated by ','\n" "\nright-click to get existing filenames")); gtk_box_pack_start(GTK_BOX(hb), filename->name, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(filename->name), "activate", G_CALLBACK(_filename_changed), filename); - g_signal_connect(G_OBJECT(filename->name), "focus-out-event", G_CALLBACK(_filename_focus_out), filename); - g_signal_connect(G_OBJECT(filename->name), "button-press-event", G_CALLBACK(_filename_press), filename); + g_signal_connect(filename->name, "activate", G_CALLBACK(_filename_changed), filename); + g_signal_connect(filename->name, "focus-out-event", G_CALLBACK(_filename_focus_out), filename); + g_signal_connect(filename->name, "button-press-event", G_CALLBACK(_filename_press), filename); filename->ext = dt_ui_entry_new(top ? 5 : 0); gtk_widget_set_can_default(filename->ext, TRUE); @@ -381,9 +381,9 @@ static void _filename_widget_init(dt_lib_filtering_rule_t *rule, const dt_collec "handled keywords: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" "\nright-click to get existing extensions")); gtk_box_pack_start(GTK_BOX(hb), filename->ext, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(filename->ext), "activate", G_CALLBACK(_filename_changed), filename); - g_signal_connect(G_OBJECT(filename->ext), "focus-out-event", G_CALLBACK(_filename_focus_out), filename); - g_signal_connect(G_OBJECT(filename->ext), "button-press-event", G_CALLBACK(_filename_press), filename); + g_signal_connect(filename->ext, "activate", G_CALLBACK(_filename_changed), filename); + g_signal_connect(filename->ext, "focus-out-event", G_CALLBACK(_filename_focus_out), filename); + g_signal_connect(filename->ext, "button-press-event", G_CALLBACK(_filename_press), filename); if(top) { dt_gui_add_class(hb, "dt_quick_filter"); @@ -392,7 +392,7 @@ static void _filename_widget_init(dt_lib_filtering_rule_t *rule, const dt_collec // the popup filename->pop = gtk_popover_new(filename->name); gtk_widget_set_size_request(filename->pop, 250, 400); - g_signal_connect(G_OBJECT(filename->pop), "closed", G_CALLBACK(_filename_popup_closed), filename); + g_signal_connect(filename->pop, "closed", G_CALLBACK(_filename_popup_closed), filename); hb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_container_add(GTK_CONTAINER(filename->pop), hb); @@ -406,9 +406,9 @@ static void _filename_widget_init(dt_lib_filtering_rule_t *rule, const dt_collec gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(filename->name_tree), FALSE); GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(filename->name_tree)); gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); - g_signal_connect(G_OBJECT(filename->name_tree), "row-activated", G_CALLBACK(_filename_tree_row_activated), + g_signal_connect(filename->name_tree, "row-activated", G_CALLBACK(_filename_tree_row_activated), filename); - g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(_filename_tree_selection_change), filename); + g_signal_connect(sel, "changed", G_CALLBACK(_filename_tree_selection_change), filename); GtkTreeViewColumn *col = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(filename->name_tree), col); @@ -432,9 +432,9 @@ static void _filename_widget_init(dt_lib_filtering_rule_t *rule, const dt_collec gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(filename->ext_tree), FALSE); sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(filename->ext_tree)); gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); - g_signal_connect(G_OBJECT(filename->name_tree), "row-activated", G_CALLBACK(_filename_tree_row_activated), + g_signal_connect(filename->name_tree, "row-activated", G_CALLBACK(_filename_tree_row_activated), filename); - g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(_filename_tree_selection_change), filename); + g_signal_connect(sel, "changed", G_CALLBACK(_filename_tree_selection_change), filename); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(filename->ext_tree), col); @@ -451,7 +451,7 @@ static void _filename_widget_init(dt_lib_filtering_rule_t *rule, const dt_collec // the button to close the popup GtkWidget *btn = gtk_button_new_with_label(_("ok")); gtk_box_pack_start(GTK_BOX(hb), btn, FALSE, TRUE, 0); - g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(_filename_ok_clicked), filename); + g_signal_connect(btn, "clicked", G_CALLBACK(_filename_ok_clicked), filename); if(top) rule->w_specific_top = filename; diff --git a/src/libs/filters/misc.c b/src/libs/filters/misc.c index 2b6172bc932d..f56e13d0a628 100644 --- a/src/libs/filters/misc.c +++ b/src/libs/filters/misc.c @@ -457,9 +457,9 @@ static void _misc_widget_init(dt_lib_filtering_rule_t *rule, g_free(name); gtk_box_pack_start(GTK_BOX(hb), misc->name, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(misc->name), "activate", G_CALLBACK(_misc_changed), misc); - g_signal_connect(G_OBJECT(misc->name), "focus-out-event", G_CALLBACK(_misc_focus_out), misc); - g_signal_connect(G_OBJECT(misc->name), "button-press-event", G_CALLBACK(_misc_press), misc); + g_signal_connect(misc->name, "activate", G_CALLBACK(_misc_changed), misc); + g_signal_connect(misc->name, "focus-out-event", G_CALLBACK(_misc_focus_out), misc); + g_signal_connect(misc->name, "button-press-event", G_CALLBACK(_misc_press), misc); if(top) { @@ -469,7 +469,7 @@ static void _misc_widget_init(dt_lib_filtering_rule_t *rule, // the popup misc->pop = gtk_popover_new(misc->name); gtk_widget_set_size_request(misc->pop, 250, 400); - g_signal_connect(G_OBJECT(misc->pop), "closed", G_CALLBACK(_misc_popup_closed), misc); + g_signal_connect(misc->pop, "closed", G_CALLBACK(_misc_popup_closed), misc); hb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_container_add(GTK_CONTAINER(misc->pop), hb); @@ -483,8 +483,8 @@ static void _misc_widget_init(dt_lib_filtering_rule_t *rule, gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(misc->name_tree), FALSE); GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(misc->name_tree)); gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); - g_signal_connect(G_OBJECT(misc->name_tree), "row-activated", G_CALLBACK(_misc_tree_row_activated), misc); - g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(_misc_tree_selection_changed), misc); + g_signal_connect(misc->name_tree, "row-activated", G_CALLBACK(_misc_tree_row_activated), misc); + g_signal_connect(sel, "changed", G_CALLBACK(_misc_tree_selection_changed), misc); GtkTreeViewColumn *col = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(misc->name_tree), col); @@ -500,7 +500,7 @@ static void _misc_widget_init(dt_lib_filtering_rule_t *rule, // the button to close the popup GtkWidget *btn = gtk_button_new_with_label(_("ok")); gtk_box_pack_start(GTK_BOX(hb), btn, FALSE, TRUE, 0); - g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(_misc_ok_clicked), misc); + g_signal_connect(btn, "clicked", G_CALLBACK(_misc_ok_clicked), misc); if(top) rule->w_specific_top = misc; diff --git a/src/libs/filters/search.c b/src/libs/filters/search.c index 8139f554d5d8..578d27bfeb85 100644 --- a/src/libs/filters/search.c +++ b/src/libs/filters/search.c @@ -170,8 +170,8 @@ static void _search_widget_init(dt_lib_filtering_rule_t *rule, const dt_collecti gtk_box_pack_start(GTK_BOX(rule->w_special_box), hbox, TRUE, TRUE, 0); search->text = gtk_search_entry_new(); gtk_drag_dest_unset(search->text); - g_signal_connect(G_OBJECT(search->text), "search-changed", G_CALLBACK(_search_changed), search); - g_signal_connect(G_OBJECT(search->text), "stop-search", G_CALLBACK(_search_reset_text_entry), rule); + g_signal_connect(search->text, "search-changed", G_CALLBACK(_search_changed), search); + g_signal_connect(search->text, "stop-search", G_CALLBACK(_search_reset_text_entry), rule); if(top) gtk_entry_set_max_width_chars(GTK_ENTRY(search->text), 20); gtk_entry_set_width_chars(GTK_ENTRY(search->text), 0); diff --git a/src/libs/geotagging.c b/src/libs/geotagging.c index 7234fd2bd697..86ceb1d99991 100644 --- a/src/libs/geotagging.c +++ b/src/libs/geotagging.c @@ -570,7 +570,7 @@ static gboolean _click_for_entire_track(GtkEntry *spin, GdkEventButton *event, d return FALSE; } -static void _track_seg_toggled(GtkCellRendererToggle *cell_renderer, gchar *path_str, dt_lib_module_t *self) +static void _track_seg_toggled(GtkCellRenderer *cell_renderer, gchar *path_str, dt_lib_module_t *self) { dt_lib_geotagging_t *d = self->data; GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(d->map.gpx_view)); @@ -1795,7 +1795,7 @@ void gui_init(dt_lib_module_t *self) d->lock_offset = dtgtk_togglebutton_new(dtgtk_cairo_paint_lock, 0, NULL); gtk_widget_set_tooltip_text(d->lock_offset, _("lock date/time offset value to apply it onto another selection")); gtk_widget_set_halign(d->lock_offset, GTK_ALIGN_START); - g_signal_connect(G_OBJECT(d->lock_offset), "clicked", G_CALLBACK(_toggle_lock_button_callback), (gpointer)self); + g_signal_connect(d->lock_offset, "clicked", G_CALLBACK(_toggle_lock_button_callback), self); box = _gui_init_datetime(_("date/time offset"), &d->of, 2, self, group, d->lock_offset, _("offset or difference ([-]dd hh:mm:ss[.sss])")); @@ -1853,8 +1853,8 @@ void gui_init(dt_lib_module_t *self) gtk_entry_completion_set_match_func(completion, _completion_match_func, NULL, NULL); gtk_entry_completion_set_minimum_key_length(completion, 0); gtk_entry_set_completion(GTK_ENTRY(d->timezone), completion); - g_signal_connect(G_OBJECT(d->timezone), "key-press-event", G_CALLBACK(_timezone_key_pressed), self); - g_signal_connect(G_OBJECT(d->timezone), "focus-out-event", G_CALLBACK(_timezone_focus_out), self); + g_signal_connect(d->timezone, "key-press-event", G_CALLBACK(_timezone_key_pressed), self); + g_signal_connect(d->timezone, "focus-out-event", G_CALLBACK(_timezone_focus_out), self); // gpx d->gpx_button = dt_action_button_new(self, N_("apply GPX track file..."), _choose_gpx_callback, self, @@ -1878,7 +1878,7 @@ void gui_init(dt_lib_module_t *self) gtk_widget_set_name(d->map.gpx_button, "non-flat"); gtk_widget_set_tooltip_text(d->map.gpx_button, _("select a GPX track file...")); gtk_grid_attach(grid, d->map.gpx_button, 0, line, 1, 1); - g_signal_connect(G_OBJECT(d->map.gpx_button), "clicked", G_CALLBACK(_choose_gpx_callback), self); + g_signal_connect(d->map.gpx_button, "clicked", G_CALLBACK(_choose_gpx_callback), self); d->map.gpx_file = dt_ui_label_new(""); gtk_label_set_ellipsize(GTK_LABEL(d->map.gpx_file ), PANGO_ELLIPSIZE_MIDDLE); @@ -1919,8 +1919,8 @@ void gui_init(dt_lib_module_t *self) gtk_tree_view_append_column(GTK_TREE_VIEW(d->map.gpx_view), column); g_object_set(G_OBJECT(d->map.gpx_view), "has-tooltip", TRUE, NULL); - g_signal_connect(G_OBJECT(d->map.gpx_view), "query-tooltip", G_CALLBACK(_row_tooltip_setup), self); - g_signal_connect(G_OBJECT(d->map.gpx_view), "button-press-event", G_CALLBACK(_click_for_entire_track), self); + g_signal_connect(d->map.gpx_view, "query-tooltip", G_CALLBACK(_row_tooltip_setup), self); + g_signal_connect(d->map.gpx_view, "button-press-event", G_CALLBACK(_click_for_entire_track), self); // avoid ugly console pixman messages due to headers gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(d->map.gpx_view), FALSE); diff --git a/src/libs/histogram.c b/src/libs/histogram.c index 72ce7f1e0efb..555d04704b47 100644 --- a/src/libs/histogram.c +++ b/src/libs/histogram.c @@ -2151,11 +2151,10 @@ static gboolean _color_harmony_clicked(GtkWidget *button, return TRUE; } -static gboolean _color_harmony_enter_notify_callback(const GtkWidget *widget, +static gboolean _color_harmony_enter_notify_callback(GtkWidget *widget, GdkEventCrossing *event, - const gpointer user_data) + dt_lib_histogram_t *d) { - dt_lib_histogram_t *d = (dt_lib_histogram_t *)user_data; // find positions of entered button d->color_harmony_old = d->harmony_guide.type; @@ -2173,9 +2172,8 @@ static gboolean _color_harmony_enter_notify_callback(const GtkWidget *widget, static gboolean _color_harmony_leave_notify_callback(GtkWidget *widget, GdkEventCrossing *event, - const gpointer user_data) + dt_lib_histogram_t *d) { - dt_lib_histogram_t *d = (dt_lib_histogram_t *)user_data; d->harmony_guide.type = d->color_harmony_old; gtk_widget_queue_draw(d->scope_draw); return FALSE; @@ -2584,7 +2582,7 @@ void gui_init(dt_lib_module_t *self) dt_action_define(dark, N_("modes"), dt_lib_histogram_scope_type_names[i], d->scope_type_button[i], &dt_action_def_toggle); gtk_box_pack_start(GTK_BOX(box_left), d->scope_type_button[i], FALSE, FALSE, 0); - g_signal_connect(G_OBJECT(d->scope_type_button[i]), "button-press-event", + g_signal_connect(d->scope_type_button[i], "button-press-event", G_CALLBACK(_scope_histogram_mode_clicked), d); } gtk_toggle_button_set_active @@ -2649,11 +2647,11 @@ void gui_init(dt_lib_module_t *self) &(dt_color_harmonies[i])); dt_action_define(dark, N_("color harmonies"), dt_color_harmonies[i].name, rb, &dt_action_def_toggle); - g_signal_connect(G_OBJECT(rb), "button-press-event", + g_signal_connect(rb, "button-press-event", G_CALLBACK(_color_harmony_clicked), d); - g_signal_connect(G_OBJECT(rb), "enter-notify-event", + g_signal_connect(rb, "enter-notify-event", G_CALLBACK(_color_harmony_enter_notify_callback), d); - g_signal_connect(G_OBJECT(rb), "leave-notify-event", + g_signal_connect(rb, "leave-notify-event", G_CALLBACK(_color_harmony_leave_notify_callback), d); gtk_box_pack_start(GTK_BOX(d->color_harmony_box), rb, FALSE, FALSE, 0); @@ -2701,22 +2699,22 @@ void gui_init(dt_lib_module_t *self) gtk_widget_set_name(self->widget, "main-histogram"); /* connect callbacks */ - g_signal_connect(G_OBJECT(d->scope_view_button), "clicked", + g_signal_connect(d->scope_view_button, "clicked", G_CALLBACK(_scope_view_clicked), d); - g_signal_connect(G_OBJECT(d->colorspace_button), "clicked", + g_signal_connect(d->colorspace_button, "clicked", G_CALLBACK(_colorspace_clicked), d); - g_signal_connect(G_OBJECT(d->red_channel_button), "toggled", + g_signal_connect(d->red_channel_button, "toggled", G_CALLBACK(_red_channel_toggle), d); - g_signal_connect(G_OBJECT(d->green_channel_button), "toggled", + g_signal_connect(d->green_channel_button, "toggled", G_CALLBACK(_green_channel_toggle), d); - g_signal_connect(G_OBJECT(d->blue_channel_button), "toggled", + g_signal_connect(d->blue_channel_button, "toggled", G_CALLBACK(_blue_channel_toggle), d); gtk_widget_add_events(d->scope_draw, GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); // FIXME: why does cursor motion over buttons trigger multiple draw callbacks? - g_signal_connect(G_OBJECT(d->scope_draw), "draw", G_CALLBACK(_drawable_draw_callback), d); + g_signal_connect(d->scope_draw, "draw", G_CALLBACK(_drawable_draw_callback), d); dt_gui_connect_click_all(d->scope_draw, _drawable_button_press, _drawable_button_release, d); dt_gui_connect_motion(d->scope_draw, _drawable_motion, NULL, @@ -2726,13 +2724,13 @@ void gui_init(dt_lib_module_t *self) (eventbox, GDK_LEAVE_NOTIFY_MASK | GDK_ENTER_NOTIFY_MASK | GDK_POINTER_MOTION_MASK | darktable.gui->scroll_mask); - g_signal_connect(G_OBJECT(eventbox), "scroll-event", + g_signal_connect(eventbox, "scroll-event", G_CALLBACK(_eventbox_scroll_callback), d); - g_signal_connect(G_OBJECT(eventbox), "enter-notify-event", + g_signal_connect(eventbox, "enter-notify-event", G_CALLBACK(_eventbox_enter_notify_callback), d); - g_signal_connect(G_OBJECT(eventbox), "leave-notify-event", + g_signal_connect(eventbox, "leave-notify-event", G_CALLBACK(_eventbox_leave_notify_callback), d); - g_signal_connect(G_OBJECT(eventbox), "motion-notify-event", + g_signal_connect(eventbox, "motion-notify-event", G_CALLBACK(_eventbox_motion_notify_callback), d); gtk_widget_show_all(self->widget); diff --git a/src/libs/history.c b/src/libs/history.c index 94e343064582..8114049447a4 100644 --- a/src/libs/history.c +++ b/src/libs/history.c @@ -140,12 +140,12 @@ void gui_init(dt_lib_module_t *self) (self, N_("compress history stack"), _lib_history_compress_clicked_callback, self, _("create a minimal history stack which produces the same image\n" "ctrl+click to truncate history to the selected item"), 0, 0); - g_signal_connect(G_OBJECT(d->compress_button), "button-press-event", + g_signal_connect(d->compress_button, "button-press-event", G_CALLBACK(_lib_history_compress_pressed_callback), self); /* add toolbar button for creating style */ d->create_button = dtgtk_button_new(dtgtk_cairo_paint_styles, CPF_NONE, NULL); - g_signal_connect(G_OBJECT(d->create_button), "clicked", + g_signal_connect(d->create_button, "clicked", G_CALLBACK(_lib_history_create_style_button_clicked_callback), NULL); gtk_widget_set_name(d->create_button, "non-flat"); gtk_widget_set_tooltip_text(d->create_button, @@ -236,7 +236,7 @@ static GtkWidget *_lib_history_create_button(dt_lib_module_t *self, if(selected) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE); /* set callback when clicked */ - g_signal_connect(G_OBJECT(widget), "button-press-event", + g_signal_connect(widget, "button-press-event", G_CALLBACK(_lib_history_button_clicked_callback), self); /* associate the history number */ @@ -881,7 +881,7 @@ static gboolean _changes_tooltip_callback(GtkWidget *widget, const gint y, const gboolean keyboard_mode, GtkTooltip *tooltip, - const dt_dev_history_item_t *hitem) + dt_dev_history_item_t *hitem) { dt_iop_params_t *old_params = hitem->module->default_params; dt_develop_blend_params_t *old_blend = hitem->module->default_blendop_params; @@ -1039,7 +1039,7 @@ static gboolean _changes_tooltip_callback(GtkWidget *widget, view = gtk_text_view_new(); dt_gui_add_class(view, "dt_transparent_background"); dt_gui_add_class(view, "dt_monospace"); - g_signal_connect(G_OBJECT(view), "destroy", G_CALLBACK(gtk_widget_destroyed), &view); + g_signal_connect(view, "destroy", G_CALLBACK(gtk_widget_destroyed), &view); } // find tabs to align columns and decimals @@ -1150,7 +1150,7 @@ void gui_update(dt_lib_module_t *self) history; history = g_list_next(history)) { - const dt_dev_history_item_t *hitem = history->data; + dt_dev_history_item_t *hitem = history->data; gchar *label = _lib_history_button_label(hitem); const gboolean selected = (num == darktable.develop->history_end - 1); @@ -1164,8 +1164,8 @@ void gui_update(dt_lib_module_t *self) g_free(label); gtk_widget_set_has_tooltip(widget, TRUE); - g_signal_connect(G_OBJECT(widget), "query-tooltip", - G_CALLBACK(_changes_tooltip_callback), (void *)hitem); + g_signal_connect(widget, "query-tooltip", + G_CALLBACK(_changes_tooltip_callback), hitem); gtk_box_pack_end(GTK_BOX(d->history_box), widget, FALSE, FALSE, 0); num++; diff --git a/src/libs/image.c b/src/libs/image.c index 01276b1b49b3..f32473ecd2aa 100644 --- a/src/libs/image.c +++ b/src/libs/image.c @@ -550,7 +550,7 @@ void gui_init(dt_lib_module_t *self) gtk_widget_set_tooltip_text(d->rotate_ccw_button, _("rotate selected images 90 degrees CCW")); gtk_grid_attach(grid, d->rotate_ccw_button, 0, line, 1, 1); - g_signal_connect(G_OBJECT(d->rotate_ccw_button), "clicked", + g_signal_connect(d->rotate_ccw_button, "clicked", G_CALLBACK(button_clicked), GINT_TO_POINTER(4)); dt_action_define(DT_ACTION(self), NULL, N_("rotate selected images 90 degrees CCW"), @@ -561,7 +561,7 @@ void gui_init(dt_lib_module_t *self) gtk_widget_set_tooltip_text(d->rotate_cw_button, _("rotate selected images 90 degrees CW")); gtk_grid_attach(grid, d->rotate_cw_button, 1, line, 1, 1); - g_signal_connect(G_OBJECT(d->rotate_cw_button), "clicked", + g_signal_connect(d->rotate_cw_button, "clicked", G_CALLBACK(button_clicked), GINT_TO_POINTER(5)); dt_action_define(DT_ACTION(self), NULL, N_("rotate selected images 90 degrees CW"), @@ -614,7 +614,7 @@ void gui_init(dt_lib_module_t *self) dt_conf_get_bool("plugins/lighttable/copy_metadata/" #item)); \ dt_action_define(DT_ACTION(meta), N_("flags"), \ label, flag, &dt_action_def_toggle); \ - g_signal_connect(G_OBJECT(flag), "clicked", \ + g_signal_connect(flag, "clicked", \ G_CALLBACK(_##item##_flag_callback), self); } META_FLAG_BUTTON(N_("ratings"), rating, 0, _("select ratings metadata")); @@ -628,7 +628,7 @@ void gui_init(dt_lib_module_t *self) _copy_metadata_callback, self, _("set the selected image as source of metadata"), 0, 0); gtk_grid_attach(grid, d->copy_metadata_button, 0, ++line, 2, 1); - g_signal_connect(G_OBJECT(d->copy_metadata_button), "clicked", + g_signal_connect(d->copy_metadata_button, "clicked", G_CALLBACK(_copy_metadata_callback), self); d->paste_metadata_button = dt_action_button_new @@ -762,8 +762,8 @@ static int lua_register_action(lua_State *L) lua_callback_data * data = malloc(sizeof(lua_callback_data)); data->key = strdup(name); data->self = self; - const gulong s = g_signal_connect(G_OBJECT(button), "clicked", - G_CALLBACK(lua_button_clicked), data); + const gulong s = g_signal_connect_data(button, "clicked", + G_CALLBACK(lua_button_clicked), data, NULL, 0); // save the signal connection in case we need to destroy it later dt_lua_module_entry_push(L, "lib", self->plugin_name); diff --git a/src/libs/import.c b/src/libs/import.c index b9fa2566fa56..255652393e86 100644 --- a/src/libs/import.c +++ b/src/libs/import.c @@ -299,7 +299,7 @@ void _lib_import_ui_devices_update(dt_lib_module_t *self) PANGO_ELLIPSIZE_END); d->import_camera = GTK_BUTTON(ib); d->camera = camera; - g_signal_connect(G_OBJECT(ib), "clicked", + g_signal_connect(ib, "clicked", G_CALLBACK(_lib_import_from_camera_callback), self); gtk_widget_set_halign(gtk_bin_get_child(GTK_BIN(ib)), GTK_ALIGN_CENTER); dt_gui_add_help_link(ib, "import_camera"); @@ -310,7 +310,7 @@ void _lib_import_ui_devices_update(dt_lib_module_t *self) (tb = gtk_button_new_with_label(_("tethered shoot"))), FALSE, FALSE, 0); d->tethered_shoot = GTK_BUTTON(tb); - g_signal_connect(G_OBJECT(tb), "clicked", + g_signal_connect(tb, "clicked", G_CALLBACK(_lib_import_tethered_callback), camera); gtk_widget_set_halign(gtk_bin_get_child(GTK_BIN(tb)), GTK_ALIGN_CENTER); dt_gui_add_help_link(tb, "import_camera"); @@ -320,7 +320,7 @@ void _lib_import_ui_devices_update(dt_lib_module_t *self) (um = gtk_button_new_with_label(_("unmount camera"))), FALSE, FALSE, 0); d->unmount_camera = GTK_BUTTON(um); - g_signal_connect(G_OBJECT(um), "clicked", + g_signal_connect(um, "clicked", G_CALLBACK(_lib_import_unmount_callback), camera); gtk_widget_set_halign(gtk_bin_get_child(GTK_BIN(um)), GTK_ALIGN_CENTER); dt_gui_add_help_link(um, "mount_camera"); @@ -357,7 +357,7 @@ void _lib_import_ui_devices_update(dt_lib_module_t *self) PANGO_ELLIPSIZE_END); d->mount_camera = GTK_BUTTON(im); - g_signal_connect(G_OBJECT(im), "clicked", + g_signal_connect(im, "clicked", G_CALLBACK(_lib_import_mount_callback), camera); gtk_widget_set_halign(gtk_bin_get_child(GTK_BIN(im)), GTK_ALIGN_CENTER); dt_gui_add_help_link(im, "mount_camera"); @@ -1494,7 +1494,7 @@ static void _set_places_list(GtkWidget *places_paned, gtk_paned_pack1(GTK_PANED(places_paned), places_top_box, TRUE, TRUE); - g_signal_connect(G_OBJECT(d->placesView), "button-press-event", + g_signal_connect(d->placesView, "button-press-event", G_CALLBACK(_places_button_press), self); } @@ -1519,7 +1519,7 @@ static void _set_folders_list(GtkWidget *places_paned, dt_lib_module_t* self) gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_set_expander_column(d->from.folderview, column); g_signal_connect(d->from.folderview, "row-expanded", G_CALLBACK(_row_expanded), self); - g_signal_connect(G_OBJECT(d->from.folderview), "button-press-event", + g_signal_connect(d->from.folderview, "button-press-event", G_CALLBACK(_folders_button_press), self); gtk_tree_view_column_set_sort_column_id(column, DT_FOLDER_PATH); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), DT_FOLDER_PATH, @@ -1930,12 +1930,12 @@ static void _set_files_list(GtkWidget *rbox, dt_lib_module_t* self) gtk_tree_view_column_set_clickable(column, TRUE); gtk_tree_view_column_set_min_width(column, DT_PIXEL_APPLY_DPI(128)); d->from.pixcol = column; - g_signal_connect(G_OBJECT(d->from.treeview), "button-press-event", + g_signal_connect(d->from.treeview, "button-press-event", G_CALLBACK(_files_button_press), self); GtkTreeSelection *selection = gtk_tree_view_get_selection(d->from.treeview); gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); - g_signal_connect(G_OBJECT(selection), "changed", + g_signal_connect(selection, "changed", G_CALLBACK(_import_from_selection_changed), self); gtk_tree_view_set_model(d->from.treeview, GTK_TREE_MODEL(d->from.store)); @@ -2015,7 +2015,7 @@ static void _set_expander_content(GtkWidget *rbox, gtk_widget_set_tooltip_text(browsedir, _("select directory")); gtk_box_pack_start(GTK_BOX(hbox), browsedir, FALSE, FALSE, 0); - g_signal_connect(G_OBJECT(browsedir), "clicked", G_CALLBACK(_browse_basedir_clicked), + g_signal_connect(browsedir, "clicked", G_CALLBACK(_browse_basedir_clicked), basedir); gtk_grid_attach_next_to(grid, hbox, gtk_grid_get_child_at(grid, 0, line - 1), GTK_POS_RIGHT, 1, 1); @@ -2105,7 +2105,7 @@ static void _import_from_dialog_new(dt_lib_module_t* self) d->import_new = dt_gui_preferences_bool(grid, "ui_last/import_select_new", col++, line, TRUE); gtk_widget_set_hexpand(gtk_grid_get_child_at(grid, col++, line), TRUE); - g_signal_connect(G_OBJECT(d->import_new), "toggled", + g_signal_connect(d->import_new, "toggled", G_CALLBACK(_import_new_toggled), self); if(d->import_case != DT_IMPORT_CAMERA) @@ -2113,13 +2113,13 @@ static void _import_from_dialog_new(dt_lib_module_t* self) d->recursive = dt_gui_preferences_bool(grid, "ui_last/import_recursive", col++, line, TRUE); gtk_widget_set_hexpand(gtk_grid_get_child_at(grid, col++, line), TRUE); - g_signal_connect(G_OBJECT(d->recursive), "toggled", + g_signal_connect(d->recursive, "toggled", G_CALLBACK(_recursive_toggled), self); } GtkWidget *ignore_nonraws = dt_gui_preferences_bool(grid, "ui_last/import_ignore_nonraws", col++, line, TRUE); gtk_widget_set_hexpand(gtk_grid_get_child_at(grid, col++, line++), TRUE); - g_signal_connect(G_OBJECT(ignore_nonraws), "toggled", + g_signal_connect(ignore_nonraws, "toggled", G_CALLBACK(_ignore_nonraws_toggled), self); gtk_box_pack_start(GTK_BOX(rbox), GTK_WIDGET(grid), FALSE, FALSE, 8); diff --git a/src/libs/lib.c b/src/libs/lib.c index 8be7b42ceb08..1ee551ae24f3 100644 --- a/src/libs/lib.c +++ b/src/libs/lib.c @@ -438,7 +438,7 @@ static void dt_lib_presets_popup_menu_show(dt_lib_module_info_t *minfo, const gboolean hide_default = dt_conf_get_bool("plugins/lighttable/hide_default_presets"); const gboolean default_first = dt_conf_get_bool("modules/default_presets_first"); - g_signal_connect(G_OBJECT(menu), "destroy", G_CALLBACK(free_module_info), minfo); + g_signal_connect(menu, "destroy", G_CALLBACK(free_module_info), minfo); GtkWidget *mi; int active_preset = -1, cnt = 0; @@ -517,9 +517,9 @@ static void dt_lib_presets_popup_menu_show(dt_lib_module_info_t *minfo, g_object_set_data(G_OBJECT(mi), "dt-preset-module", minfo->module); dt_action_define(&minfo->module->actions, "preset", name, mi, NULL); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_activate_preset), minfo); - g_signal_connect(G_OBJECT(mi), "button-release-event", + g_signal_connect(GTK_MENU_ITEM(mi), "button-release-event", G_CALLBACK(_menuitem_button_preset), minfo); gtk_widget_set_tooltip_text(mi, (const char *)sqlite3_column_text(stmt, 3)); gtk_widget_set_has_tooltip(mi, TRUE); @@ -536,7 +536,7 @@ static void dt_lib_presets_popup_menu_show(dt_lib_module_info_t *minfo, if(minfo->module->manage_presets) { mi = gtk_menu_item_new_with_label(_("manage presets...")); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_manage_presets), minfo); + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_manage_presets), minfo); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); cnt++; } @@ -545,11 +545,11 @@ static void dt_lib_presets_popup_menu_show(dt_lib_module_info_t *minfo, if(!selected_writeprotect) { mi = gtk_menu_item_new_with_label(_("edit this preset..")); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_edit_preset), minfo); + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_edit_preset), minfo); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); mi = gtk_menu_item_new_with_label(_("delete this preset")); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_delete_preset), minfo); + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_delete_preset), minfo); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); cnt++; } @@ -563,7 +563,7 @@ static void dt_lib_presets_popup_menu_show(dt_lib_module_info_t *minfo, gtk_widget_set_tooltip_text(mi, _("nothing to save")); } else - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_new_preset), minfo); + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_new_preset), minfo); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); if(darktable.gui->last_preset && found) @@ -578,7 +578,7 @@ static void dt_lib_presets_popup_menu_show(dt_lib_module_info_t *minfo, gtk_label_set_markup(GTK_LABEL(gtk_bin_get_child(GTK_BIN(mi))), markup); g_object_set_data_full(G_OBJECT(mi), "dt-preset-name", g_strdup(darktable.gui->last_preset), g_free); - g_signal_connect(G_OBJECT(mi), "activate", + g_signal_connect(mi, "activate", G_CALLBACK(menuitem_update_preset), minfo); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); g_free(markup); @@ -845,7 +845,7 @@ void dt_lib_init_presets(dt_lib_module_t *module) } static gboolean _lib_draw_callback(GtkWidget *widget, - gpointer cr, + cairo_t *cr, dt_lib_module_t *self) { dt_lib_gui_update(self); @@ -883,7 +883,7 @@ static void dt_lib_init_module(void *m) { g_object_ref_sink(module->widget); if(module->gui_update) - g_signal_connect(G_OBJECT(module->widget), "draw", + g_signal_connect(module->widget, "draw", G_CALLBACK(_lib_draw_callback), module); } } @@ -895,16 +895,15 @@ void _lib_unload_module(dt_lib_module_t *module) g_module_close(module->module); } -static gboolean _lib_gui_reset_callback(GtkButton *button, +static gboolean _lib_gui_reset_callback(GtkWidget *button, GdkEventButton *e, - gpointer user_data) + dt_lib_module_t *module) { - dt_lib_module_t *module = (dt_lib_module_t *)user_data; module->gui_reset(module); return TRUE; } -static gboolean _presets_popup_callback(GtkButton *button, +static gboolean _presets_popup_callback(GtkWidget *button, GdkEventButton *e, dt_lib_module_t *module) { @@ -921,7 +920,7 @@ static gboolean _presets_popup_callback(GtkButton *button, // mi->params, mi->params_size); mi->params_size = 0; } - dt_lib_presets_popup_menu_show(mi, GTK_WIDGET(button)); + dt_lib_presets_popup_menu_show(mi, button); if(button) dtgtk_button_set_active(DTGTK_BUTTON(button), FALSE); @@ -968,12 +967,10 @@ gboolean dt_lib_gui_get_expanded(dt_lib_module_t *module) static gboolean _lib_plugin_arrow_button_press(GtkWidget *w, GdkEventButton *e, - gpointer user_data) + dt_lib_module_t *module) { if(e->type == GDK_2BUTTON_PRESS || e->type == GDK_3BUTTON_PRESS) return TRUE; - dt_lib_module_t *module = (dt_lib_module_t *)user_data; - if(e->button == GDK_BUTTON_PRIMARY) { /* bail out if module is static */ @@ -1033,10 +1030,10 @@ static gboolean _lib_plugin_arrow_button_press(GtkWidget *w, static gboolean _lib_plugin_header_button_release(GtkWidget *w, GdkEventButton *e, - gpointer user_data) + dt_lib_module_t *module) { if(GTK_IS_BUTTON(gtk_get_event_widget((GdkEvent*)e))) return FALSE; - return _lib_plugin_arrow_button_press(w, e, user_data); + return _lib_plugin_arrow_button_press(w, e, module); } static void show_module_callback(dt_lib_module_t *module) @@ -1086,19 +1083,21 @@ static gboolean _header_enter_notify_callback(GtkWidget *eventbox, } static gboolean _body_enter_leave_callback(GtkWidget *widget, - GdkEventCrossing *e, - gpointer user_data) + GdkEventCrossing *e, + dt_lib_module_t *module) { // set or clear focused module when entering or leaving (not when opening popup) if(e->detail != GDK_NOTIFY_INFERIOR && e->mode == GDK_CROSSING_NORMAL) - darktable.lib->gui_module = e->type == GDK_ENTER_NOTIFY ? user_data : NULL; + darktable.lib->gui_module = e->type == GDK_ENTER_NOTIFY ? module : NULL; return FALSE; } static gboolean _on_drag_motion(GtkWidget *widget, GdkDragContext *dc, - gint x, gint y, guint time, + const gint x, + const gint y, + const guint time, dt_lib_module_t *dest) { dt_lib_module_t *src = NULL; @@ -1215,7 +1214,7 @@ GtkWidget *dt_lib_gui_get_expander(dt_lib_module_t *module) // FIXME separately define as darkroom widget shortcut/action, // because not automatically registered via lib if presets btn // has been loaded to be shown outside expander - g_signal_connect(G_OBJECT(module->presets_button), "button-press-event", + g_signal_connect(module->presets_button, "button-press-event", G_CALLBACK(_presets_popup_callback), module); } module->expander = NULL; @@ -1242,17 +1241,17 @@ GtkWidget *dt_lib_gui_get_expander(dt_lib_module_t *module) } /* setup the header box */ - g_signal_connect(G_OBJECT(header_evb), "button-release-event", + g_signal_connect(header_evb, "button-release-event", G_CALLBACK(_lib_plugin_header_button_release), module); - g_signal_connect(G_OBJECT(header_evb), "enter-notify-event", + g_signal_connect(header_evb, "enter-notify-event", G_CALLBACK(_header_enter_notify_callback), GINT_TO_POINTER(DT_ACTION_ELEMENT_SHOW)); /* (un)focus module when entering/leaving body */ - g_signal_connect(G_OBJECT(body_evb), "enter-notify-event", + g_signal_connect(body_evb, "enter-notify-event", G_CALLBACK(_body_enter_leave_callback), module); - g_signal_connect(G_OBJECT(body_evb), "leave-notify-event", + g_signal_connect(body_evb, "leave-notify-event", G_CALLBACK(_body_enter_leave_callback), module); /* @@ -1262,7 +1261,7 @@ GtkWidget *dt_lib_gui_get_expander(dt_lib_module_t *module) module->arrow = dtgtk_button_new(dtgtk_cairo_paint_solid_arrow, 0, NULL); gtk_widget_set_tooltip_text(module->arrow, _("show module")); - g_signal_connect(G_OBJECT(module->arrow), "button-press-event", + g_signal_connect(module->arrow, "button-press-event", G_CALLBACK(_lib_plugin_arrow_button_press), module); dt_action_define(&module->actions, NULL, NULL, module->arrow, NULL); gtk_box_pack_start(GTK_BOX(header), module->arrow, FALSE, FALSE, 0); @@ -1287,9 +1286,9 @@ GtkWidget *dt_lib_gui_get_expander(dt_lib_module_t *module) /* add preset button if module has implementation */ module->presets_button = dtgtk_button_new(dtgtk_cairo_paint_presets, 0, NULL); gtk_widget_set_tooltip_text(module->presets_button, _("presets and preferences")); - g_signal_connect(G_OBJECT(module->presets_button), "button-press-event", + g_signal_connect(module->presets_button, "button-press-event", G_CALLBACK(_presets_popup_callback), module); - g_signal_connect(G_OBJECT(module->presets_button), "enter-notify-event", + g_signal_connect(module->presets_button, "enter-notify-event", G_CALLBACK(_header_enter_notify_callback), GINT_TO_POINTER(DT_ACTION_ELEMENT_PRESETS)); if(!module->get_params @@ -1301,9 +1300,9 @@ GtkWidget *dt_lib_gui_get_expander(dt_lib_module_t *module) /* add reset button if module has implementation */ module->reset_button = dtgtk_button_new(dtgtk_cairo_paint_reset, 0, NULL); - g_signal_connect(G_OBJECT(module->reset_button), "button-press-event", + g_signal_connect(module->reset_button, "button-press-event", G_CALLBACK(_lib_gui_reset_callback), module); - g_signal_connect(G_OBJECT(module->reset_button), "enter-notify-event", + g_signal_connect(module->reset_button, "enter-notify-event", G_CALLBACK(_header_enter_notify_callback), GINT_TO_POINTER(DT_ACTION_ELEMENT_RESET)); if(!module->gui_reset) gtk_widget_set_sensitive(module->reset_button, FALSE); diff --git a/src/libs/live_view.c b/src/libs/live_view.c index a9f7dbd31c15..da6b9a0570e6 100644 --- a/src/libs/live_view.c +++ b/src/libs/live_view.c @@ -318,7 +318,7 @@ void gui_init(dt_lib_module_t *self) button = dtgtk_##type##button_new(paint, direction, NULL); \ gtk_widget_set_tooltip_text(button, action); \ gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0); \ - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(callback), data); \ + g_signal_connect(button, "clicked", G_CALLBACK(callback), data); \ dt_action_define(DT_ACTION(self), NULL, action, button, *(#type)?&dt_action_def_toggle:&dt_action_def_button); lib->live_view = NEW_BUTTON(toggle, dtgtk_cairo_paint_eye, 0, @@ -370,7 +370,7 @@ void gui_init(dt_lib_module_t *self) dt_bauhaus_combobox_add(lib->overlay, _("selected image")); dt_bauhaus_combobox_add(lib->overlay, _("id")); gtk_widget_set_tooltip_text(lib->overlay, _("overlay another image over the live view")); - g_signal_connect(G_OBJECT(lib->overlay), "value-changed", + g_signal_connect(lib->overlay, "value-changed", G_CALLBACK(overlay_changed), lib); gtk_box_pack_start(GTK_BOX(self->widget), lib->overlay, TRUE, TRUE, 0); @@ -381,7 +381,7 @@ void gui_init(dt_lib_module_t *self) gtk_spin_button_set_digits(GTK_SPIN_BUTTON(lib->overlay_id), 0); gtk_widget_set_tooltip_text(lib->overlay_id, _("enter image id of the overlay manually")); - g_signal_connect(G_OBJECT(lib->overlay_id), "value-changed", + g_signal_connect(lib->overlay_id, "value-changed", G_CALLBACK(_overlay_id_changed), lib); gtk_spin_button_set_value(GTK_SPIN_BUTTON(lib->overlay_id), dt_conf_get_int("plugins/lighttable/live_view/overlay_imgid")); @@ -415,7 +415,7 @@ void gui_init(dt_lib_module_t *self) gtk_widget_set_tooltip_text(lib->overlay_mode, _("mode of the overlay")); dt_bauhaus_combobox_set(lib->overlay_mode, dt_conf_get_int("plugins/lighttable/live_view/overlay_mode")); - g_signal_connect(G_OBJECT(lib->overlay_mode), "value-changed", + g_signal_connect(lib->overlay_mode, "value-changed", G_CALLBACK(_overlay_mode_changed), lib); gtk_box_pack_start(GTK_BOX(self->widget), lib->overlay_mode, TRUE, TRUE, 0); @@ -426,7 +426,7 @@ void gui_init(dt_lib_module_t *self) gtk_widget_set_tooltip_text(lib->overlay_splitline, _("only draw part of the overlay")); dt_bauhaus_combobox_set(lib->overlay_splitline, dt_conf_get_int("plugins/lighttable/live_view/splitline")); - g_signal_connect(G_OBJECT(lib->overlay_splitline), "value-changed", + g_signal_connect(lib->overlay_splitline, "value-changed", G_CALLBACK(_overlay_splitline_changed), lib); gtk_box_pack_start(GTK_BOX(self->widget), lib->overlay_splitline, TRUE, TRUE, 0); diff --git a/src/libs/location.c b/src/libs/location.c index 5be0ce9f8af0..051133c8f6cc 100644 --- a/src/libs/location.c +++ b/src/libs/location.c @@ -140,9 +140,9 @@ void gui_init(dt_lib_module_t *self) /* add search box */ lib->search = GTK_ENTRY(dt_ui_entry_new(0)); - g_signal_connect(G_OBJECT(lib->search), "activate", + g_signal_connect(lib->search, "activate", G_CALLBACK(_lib_location_entry_activated), - (gpointer)self); + self); /* add result vbox */ lib->result = dt_gui_vbox(); @@ -173,9 +173,9 @@ static GtkWidget *_lib_location_place_widget_new(dt_lib_location_t *lib, GtkWidget *eb, *vb, *w; eb = gtk_event_box_new(); gtk_widget_set_name(eb, "dt-map-location"); - g_signal_connect(G_OBJECT(eb), "enter-notify-event", + g_signal_connect(eb, "enter-notify-event", G_CALLBACK(_event_box_enter_leave), NULL); - g_signal_connect(G_OBJECT(eb), "leave-notify-event", + g_signal_connect(eb, "leave-notify-event", G_CALLBACK(_event_box_enter_leave), NULL); vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); @@ -211,7 +211,7 @@ static GtkWidget *_lib_location_place_widget_new(dt_lib_location_t *lib, lib->callback_params = g_list_append(lib->callback_params, param); param->lib = lib; param->result = place; - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_lib_location_result_item_activated), (gpointer)param); } diff --git a/src/libs/map_locations.c b/src/libs/map_locations.c index f7d5952ae4b0..1e523369d001 100644 --- a/src/libs/map_locations.c +++ b/src/libs/map_locations.c @@ -622,7 +622,7 @@ static void _name_start_editing(GtkCellRenderer *renderer, GtkCellEditable *edit } gtk_tree_path_free(new_path); - g_signal_connect(G_OBJECT(editable), "editing-done", G_CALLBACK(_name_editing_done), self); + g_signal_connect(editable, "editing-done", G_CALLBACK(_name_editing_done), self); } } @@ -774,10 +774,10 @@ static void _pop_menu_view(GtkWidget *view, GdkEventButton *event, dt_lib_module const gboolean children = gtk_tree_model_iter_children(model, &child, &parent); menuitem = gtk_menu_item_new_with_label(_("edit location")); - g_signal_connect(menuitem, "activate", (GCallback)_pop_menu_edit_location, self); + g_signal_connect(menuitem, "activate", G_CALLBACK(_pop_menu_edit_location), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); menuitem = gtk_menu_item_new_with_label(_("delete location")); - g_signal_connect(menuitem, "activate", (GCallback)_pop_menu_delete_location, self); + g_signal_connect(menuitem, "activate", G_CALLBACK(_pop_menu_delete_location), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); if(children) { @@ -792,10 +792,10 @@ static void _pop_menu_view(GtkWidget *view, GdkEventButton *event, dt_lib_module { gtk_widget_set_sensitive(menuitem, FALSE); } - g_signal_connect(menuitem, "activate", (GCallback)_pop_menu_update_filmstrip, self); + g_signal_connect(menuitem, "activate", G_CALLBACK(_pop_menu_update_filmstrip), self); menuitem = gtk_menu_item_new_with_label(_("go to collection (lighttable)")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - g_signal_connect(menuitem, "activate", (GCallback)_pop_menu_goto_collection, self); + g_signal_connect(menuitem, "activate", G_CALLBACK(_pop_menu_goto_collection), self); if(!locid) { gtk_widget_set_sensitive(menuitem, FALSE); @@ -912,7 +912,7 @@ void gui_init(dt_lib_module_t *self) gtk_tree_view_column_add_attribute(col, renderer, "text", DT_MAP_LOCATION_COL_TAG); gtk_tree_view_column_set_cell_data_func(col, renderer, _tree_name_show, (gpointer)self, NULL); // g_object_set(renderer, "editable", TRUE, NULL); - g_signal_connect(G_OBJECT(renderer), "editing-started", G_CALLBACK(_name_start_editing), self); + g_signal_connect(renderer, "editing-started", G_CALLBACK(_name_start_editing), self); d->renderer = renderer; GtkTreeSelection *selection = gtk_tree_view_get_selection(view); @@ -920,7 +920,7 @@ void gui_init(dt_lib_module_t *self) gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE); gtk_tree_view_set_model(view, GTK_TREE_MODEL(treestore)); g_object_unref(treestore); - g_signal_connect(G_OBJECT(view), "button-press-event", G_CALLBACK(_click_on_view), self); + g_signal_connect(view, "button-press-event", G_CALLBACK(_click_on_view), self); gtk_widget_set_tooltip_text(GTK_WIDGET(view), _("list of user locations," "\nclick to show or hide a location on the map:" @@ -945,8 +945,8 @@ void gui_init(dt_lib_module_t *self) } d->shape_button = dtgtk_togglebutton_new(location_shapes[shape], 0, NULL); gtk_box_pack_start(hbox, d->shape_button, FALSE, TRUE, 0); - d->shape_button_handler = g_signal_connect(G_OBJECT(d->shape_button), "clicked", - G_CALLBACK(_shape_button_clicked), self); + d->shape_button_handler = g_signal_connect_data(d->shape_button, "clicked", + G_CALLBACK(_shape_button_clicked), self, NULL, 0); gtk_widget_set_tooltip_text(GTK_WIDGET(d->shape_button ), _("select the shape of the location\'s limits on the map, circle or rectangle" "\nor even polygon if available (select first a polygon place in 'find location' module)")); @@ -961,14 +961,14 @@ void gui_init(dt_lib_module_t *self) gtk_widget_set_tooltip_text(d->show_all_button, _("show all locations which are on the visible map")); gtk_box_pack_end(hbox, d->show_all_button, FALSE, FALSE, 8); - g_signal_connect(G_OBJECT(d->show_all_button), "clicked", G_CALLBACK(_show_all_button_clicked), self); + g_signal_connect(d->show_all_button, "clicked", G_CALLBACK(_show_all_button_clicked), self); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(hbox), FALSE, TRUE, 0); _locations_tree_update(self,0); _display_buttons(self); - g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(_selection_changed), self); + g_signal_connect(selection, "changed", G_CALLBACK(_selection_changed), self); // connect geotag changed signal DT_CONTROL_SIGNAL_HANDLE(DT_SIGNAL_GEOTAG_CHANGED, _view_map_geotag_changed); diff --git a/src/libs/map_settings.c b/src/libs/map_settings.c index dd6115424497..2ff72879d955 100644 --- a/src/libs/map_settings.c +++ b/src/libs/map_settings.c @@ -104,7 +104,7 @@ void gui_init(dt_lib_module_t *self) } } dt_bauhaus_combobox_set(d->map_source_dropdown, selection); - g_signal_connect(G_OBJECT(d->map_source_dropdown), "value-changed", G_CALLBACK(_map_source_changed), NULL); + g_signal_connect(d->map_source_dropdown, "value-changed", G_CALLBACK(_map_source_changed), NULL); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(d->map_source_dropdown), FALSE, TRUE, 0); GtkGrid *grid = GTK_GRID(gtk_grid_new()); @@ -113,25 +113,25 @@ void gui_init(dt_lib_module_t *self) int line = 0; d->max_outline_nodes = dt_gui_preferences_int(grid, "plugins/map/max_outline_nodes", 0, line++); d->show_osd_checkbutton = dt_gui_preferences_bool(grid, "plugins/map/show_map_osd", 0, line++, FALSE); - g_signal_connect(G_OBJECT(d->show_osd_checkbutton), "toggled", G_CALLBACK(_show_osd_toggled), NULL); + g_signal_connect(d->show_osd_checkbutton, "toggled", G_CALLBACK(_show_osd_toggled), NULL); d->filtered_images_checkbutton = dt_gui_preferences_bool(grid, "plugins/map/filter_images_drawn", 0, line++, FALSE); - g_signal_connect(G_OBJECT(d->filtered_images_checkbutton), "toggled", G_CALLBACK(_parameter_changed), NULL); + g_signal_connect(d->filtered_images_checkbutton, "toggled", G_CALLBACK(_parameter_changed), NULL); dt_shortcut_register(dt_action_define(DT_ACTION(self), NULL, N_("filtered images"), d->filtered_images_checkbutton, &dt_action_def_button), 0, 0, GDK_KEY_s, GDK_CONTROL_MASK); d->max_images_entry = dt_gui_preferences_int(grid, "plugins/map/max_images_drawn", 0, line++); - g_signal_connect(G_OBJECT(d->max_images_entry), "value-changed", G_CALLBACK(_parameter_changed), self); + g_signal_connect(d->max_images_entry, "value-changed", G_CALLBACK(_parameter_changed), self); d->epsilon_factor = dt_gui_preferences_int(grid, "plugins/map/epsilon_factor", 0, line++); - g_signal_connect(G_OBJECT(d->epsilon_factor), "value-changed", G_CALLBACK(_parameter_changed), self); + g_signal_connect(d->epsilon_factor, "value-changed", G_CALLBACK(_parameter_changed), self); d->min_images = dt_gui_preferences_int(grid, "plugins/map/min_images_per_group", 0, line++); - g_signal_connect(G_OBJECT(d->min_images), "value-changed", G_CALLBACK(_parameter_changed), self); + g_signal_connect(d->min_images, "value-changed", G_CALLBACK(_parameter_changed), self); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(grid), FALSE, TRUE, 0); d->images_thumb = dt_gui_preferences_enum(DT_ACTION(self), "plugins/map/images_thumbnail"); dt_action_t *ac = dt_bauhaus_widget_set_label(d->images_thumb, NULL, dt_confgen_get_label("plugins/map/images_thumbnail")); dt_shortcut_register(ac, 0, 0, GDK_KEY_s, GDK_SHIFT_MASK); - g_signal_connect(G_OBJECT(d->images_thumb), "value-changed", G_CALLBACK(_parameter_changed), self); + g_signal_connect(d->images_thumb, "value-changed", G_CALLBACK(_parameter_changed), self); gtk_box_pack_start(GTK_BOX(self->widget), d->images_thumb, FALSE, TRUE, 0); } diff --git a/src/libs/masks.c b/src/libs/masks.c index 2e02dae44bb7..45c418902a6d 100644 --- a/src/libs/masks.c +++ b/src/libs/masks.c @@ -120,8 +120,9 @@ gboolean _timeout_show_all_feathers(gpointer userdata) return G_SOURCE_REMOVE; } -static void _property_changed(GtkWidget *widget, dt_masks_property_t prop) +static void _property_changed(GtkWidget *widget, gpointer user_data) { + dt_masks_property_t prop = (dt_masks_property_t)GPOINTER_TO_INT(user_data); dt_lib_module_t *self = darktable.develop->proxy.masks.module; dt_lib_masks_t *d = self->data; dt_develop_t *dev = darktable.develop; @@ -250,7 +251,7 @@ static void _update_all_properties(dt_lib_masks_t *self) gtk_widget_show(self->none_label); for(int i = 0; i < DT_MASKS_PROPERTY_LAST; i++) - _property_changed(self->property[i], i); + _property_changed(self->property[i], GINT_TO_POINTER(i)); dt_masks_form_t *form = darktable.develop->form_visible; gboolean drawing_brush = form && form->type & DT_MASKS_BRUSH; @@ -309,9 +310,9 @@ static void _tree_add_shape(GtkButton *button, gpointer shape) dt_control_queue_redraw_center(); } -static void _bt_add_shape(GtkWidget *widget, GdkEventButton *event, gpointer shape) +static gboolean _bt_add_shape(GtkWidget *widget, GdkEventButton *event, gpointer shape) { - if(darktable.gui->reset) return; + if(darktable.gui->reset) return FALSE; if(event->button == GDK_BUTTON_PRIMARY) { @@ -326,6 +327,7 @@ static void _bt_add_shape(GtkWidget *widget, GdkEventButton *event, gpointer sha _lib_masks_inactivate_icons(darktable.develop->proxy.masks.module); } + return TRUE; } static void _tree_add_exist(GtkButton *button, dt_masks_form_t *grp) @@ -524,7 +526,7 @@ static void _add_tree_operation(GtkMenuShell *menu, gtk_widget_set_sensitive(item, sensitive); if(selected_states & state) gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), TRUE); - g_signal_connect(item, "activate", (GCallback)_tree_operation, + g_signal_connect(item, "activate", G_CALLBACK(_tree_operation), GINT_TO_POINTER(state)); gtk_menu_shell_append(menu, item); } @@ -757,9 +759,9 @@ static void _tree_duplicate_shape(GtkButton *button, dt_lib_module_t *self) g_list_free_full(items, (GDestroyNotify)gtk_tree_path_free); } -static void _tree_cell_edited(GtkCellRendererText *cell, - gchar *path_string, - gchar *new_text, +static void _tree_cell_edited(GtkCellRenderer *cell, + const gchar *path_string, + const gchar *new_text, dt_lib_module_t *self) { dt_lib_masks_t *lm = self->data; @@ -776,7 +778,7 @@ static void _tree_cell_edited(GtkCellRendererText *cell, // string. else this would convert in the xmp file into "" // which produces problems. we use a single whitespace as the pure // minimum text. - gchar *text = strlen(new_text) == 0 ? " " : new_text; + const gchar *text = strlen(new_text) == 0 ? " " : new_text; // first, we need to update the mask name @@ -982,27 +984,27 @@ static int _tree_button_pressed(GtkWidget *treeview, if(nb == 0 || (grp && grp->type & DT_MASKS_GROUP)) { item = gtk_menu_item_new_with_label(_("add brush")); - g_signal_connect(item, "activate", (GCallback)_tree_add_shape, + g_signal_connect(item, "activate", G_CALLBACK(_tree_add_shape), GINT_TO_POINTER(DT_MASKS_BRUSH)); gtk_menu_shell_append(menu, item); item = gtk_menu_item_new_with_label(_("add circle")); - g_signal_connect(item, "activate", (GCallback)_tree_add_shape, + g_signal_connect(item, "activate", G_CALLBACK(_tree_add_shape), GINT_TO_POINTER(DT_MASKS_CIRCLE)); gtk_menu_shell_append(menu, item); item = gtk_menu_item_new_with_label(_("add ellipse")); - g_signal_connect(item, "activate", (GCallback)_tree_add_shape, + g_signal_connect(item, "activate", G_CALLBACK(_tree_add_shape), GINT_TO_POINTER(DT_MASKS_ELLIPSE)); gtk_menu_shell_append(menu, item); item = gtk_menu_item_new_with_label(_("add path")); - g_signal_connect(item, "activate", (GCallback)_tree_add_shape, + g_signal_connect(item, "activate", G_CALLBACK(_tree_add_shape), GINT_TO_POINTER(DT_MASKS_PATH)); gtk_menu_shell_append(menu, item); item = gtk_menu_item_new_with_label(_("add gradient")); - g_signal_connect(item, "activate", (GCallback)_tree_add_shape, + g_signal_connect(item, "activate", G_CALLBACK(_tree_add_shape), GINT_TO_POINTER(DT_MASKS_GRADIENT)); gtk_menu_shell_append(menu, item); } @@ -1063,7 +1065,7 @@ static int _tree_button_pressed(GtkWidget *treeview, item = gtk_menu_item_new_with_label(str); g_object_set_data(G_OBJECT(item), "formid", GUINT_TO_POINTER(form->formid)); g_object_set_data(G_OBJECT(item), "module", module); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(_tree_add_exist), grp); + g_signal_connect(item, "activate", G_CALLBACK(_tree_add_exist), grp); gtk_menu_shell_append(GTK_MENU_SHELL(menu0), item); has_unused_shapes = TRUE; } @@ -1085,24 +1087,24 @@ static int _tree_button_pressed(GtkWidget *treeview, if(nb == 1) { item = gtk_menu_item_new_with_label(_("duplicate this shape")); - g_signal_connect(item, "activate", (GCallback)_tree_duplicate_shape, self); + g_signal_connect(item, "activate", G_CALLBACK(_tree_duplicate_shape), self); gtk_menu_shell_append(menu, item); } item = gtk_menu_item_new_with_label(_("delete this shape")); - g_signal_connect(item, "activate", (GCallback)_tree_delete_shape, self); + g_signal_connect(item, "activate", G_CALLBACK(_tree_delete_shape), self); gtk_menu_shell_append(menu, item); } else { item = gtk_menu_item_new_with_label(_("delete group")); - g_signal_connect(item, "activate", (GCallback)_tree_delete_shape, self); + g_signal_connect(item, "activate", G_CALLBACK(_tree_delete_shape), self); gtk_menu_shell_append(menu, item); } } else if(nb > 0 && depth < 3) { item = gtk_menu_item_new_with_label(_("remove from group")); - g_signal_connect(item, "activate", (GCallback)_tree_delete_shape, self); + g_signal_connect(item, "activate", G_CALLBACK(_tree_delete_shape), self); gtk_menu_shell_append(menu, item); } @@ -1110,7 +1112,7 @@ static int _tree_button_pressed(GtkWidget *treeview, { gtk_menu_shell_append(menu, gtk_separator_menu_item_new()); item = gtk_menu_item_new_with_label(_("group the forms")); - g_signal_connect(item, "activate", (GCallback)_tree_group, self); + g_signal_connect(item, "activate", G_CALLBACK(_tree_group), self); gtk_menu_shell_append(menu, item); } @@ -1135,18 +1137,18 @@ static int _tree_button_pressed(GtkWidget *treeview, gtk_menu_shell_append(menu, gtk_separator_menu_item_new()); item = gtk_menu_item_new_with_label(_("move up")); gtk_widget_set_sensitive(item, !is_first_row); - g_signal_connect(item, "activate", (GCallback)_tree_moveup, self); + g_signal_connect(item, "activate", G_CALLBACK(_tree_moveup), self); gtk_menu_shell_append(menu, item); item = gtk_menu_item_new_with_label(_("move down")); gtk_widget_set_sensitive(item, !is_last_row); - g_signal_connect(item, "activate", (GCallback)_tree_movedown, self); + g_signal_connect(item, "activate", G_CALLBACK(_tree_movedown), self); gtk_menu_shell_append(menu, item); } gtk_menu_shell_append(menu, gtk_separator_menu_item_new()); item = gtk_menu_item_new_with_label(_("delete unused shapes")); - g_signal_connect(item, "activate", (GCallback)_tree_cleanup, self); + g_signal_connect(item, "activate", G_CALLBACK(_tree_cleanup), self); gtk_menu_shell_append(menu, item); gtk_widget_show_all(GTK_WIDGET(menu)); @@ -1794,7 +1796,7 @@ void gui_init(dt_lib_module_t *self) d->bt_gradient = dtgtk_togglebutton_new(dtgtk_cairo_paint_masks_gradient, 0, NULL); dt_action_define(DT_ACTION(self), N_("shapes"), N_("add gradient"), d->bt_gradient, &dt_action_def_toggle); - g_signal_connect(G_OBJECT(d->bt_gradient), "button-press-event", + g_signal_connect(d->bt_gradient, "button-press-event", G_CALLBACK(_bt_add_shape), GINT_TO_POINTER(DT_MASKS_GRADIENT)); gtk_widget_set_tooltip_text(d->bt_gradient, _("add gradient")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->bt_gradient), FALSE); @@ -1802,7 +1804,7 @@ void gui_init(dt_lib_module_t *self) d->bt_path = dtgtk_togglebutton_new(dtgtk_cairo_paint_masks_path, 0, NULL); dt_action_define(DT_ACTION(self), N_("shapes"), N_("add path"), d->bt_path, &dt_action_def_toggle); - g_signal_connect(G_OBJECT(d->bt_path), "button-press-event", + g_signal_connect(d->bt_path, "button-press-event", G_CALLBACK(_bt_add_shape), GINT_TO_POINTER(DT_MASKS_PATH)); gtk_widget_set_tooltip_text(d->bt_path, _("add path")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->bt_path), FALSE); @@ -1810,7 +1812,7 @@ void gui_init(dt_lib_module_t *self) d->bt_ellipse = dtgtk_togglebutton_new(dtgtk_cairo_paint_masks_ellipse, 0, NULL); dt_action_define(DT_ACTION(self), N_("shapes"), N_("add ellipse"), d->bt_ellipse, &dt_action_def_toggle); - g_signal_connect(G_OBJECT(d->bt_ellipse), "button-press-event", + g_signal_connect(d->bt_ellipse, "button-press-event", G_CALLBACK(_bt_add_shape), GINT_TO_POINTER(DT_MASKS_ELLIPSE)); gtk_widget_set_tooltip_text(d->bt_ellipse, _("add ellipse")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->bt_ellipse), FALSE); @@ -1818,7 +1820,7 @@ void gui_init(dt_lib_module_t *self) d->bt_circle = dtgtk_togglebutton_new(dtgtk_cairo_paint_masks_circle, 0, NULL); dt_action_define(DT_ACTION(self), N_("shapes"), N_("add circle"), d->bt_circle, &dt_action_def_toggle); - g_signal_connect(G_OBJECT(d->bt_circle), "button-press-event", + g_signal_connect(d->bt_circle, "button-press-event", G_CALLBACK(_bt_add_shape), GINT_TO_POINTER(DT_MASKS_CIRCLE)); gtk_widget_set_tooltip_text(d->bt_circle, _("add circle")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->bt_circle), FALSE); @@ -1826,7 +1828,7 @@ void gui_init(dt_lib_module_t *self) d->bt_brush = dtgtk_togglebutton_new(dtgtk_cairo_paint_masks_brush, 0, NULL); dt_action_define(DT_ACTION(self), N_("shapes"), N_("add brush"), d->bt_brush, &dt_action_def_toggle); - g_signal_connect(G_OBJECT(d->bt_brush), "button-press-event", + g_signal_connect(d->bt_brush, "button-press-event", G_CALLBACK(_bt_add_shape), GINT_TO_POINTER(DT_MASKS_BRUSH)); gtk_widget_set_tooltip_text(d->bt_brush, _("add brush")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->bt_brush), FALSE); @@ -1850,7 +1852,7 @@ void gui_init(dt_lib_module_t *self) gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "text", TREE_TEXT); gtk_tree_view_column_add_attribute(col, renderer, "editable", TREE_EDITABLE); - g_signal_connect(renderer, "edited", (GCallback)_tree_cell_edited, self); + g_signal_connect(renderer, "edited", G_CALLBACK(_tree_cell_edited), self); dt_gui_commit_on_focus_loss(renderer, NULL); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_end(col, renderer, FALSE); @@ -1865,7 +1867,7 @@ void gui_init(dt_lib_module_t *self) g_signal_connect(d->treeview, "query-tooltip", G_CALLBACK(_tree_query_tooltip), NULL); g_signal_connect(selection, "changed", G_CALLBACK(_tree_selection_change), d); g_signal_connect(d->treeview, "button-press-event", - (GCallback)_tree_button_pressed, self); + G_CALLBACK(_tree_button_pressed), self); self->widget = dt_gui_vbox (dt_gui_hbox @@ -1900,7 +1902,7 @@ void gui_init(dt_lib_module_t *self) d->last_value[i] = dt_bauhaus_slider_get(slider); dt_gui_box_add(d->cs.container, slider); - g_signal_connect(G_OBJECT(slider), "value-changed", + g_signal_connect(slider, "value-changed", G_CALLBACK(_property_changed), GINT_TO_POINTER(i)); } diff --git a/src/libs/metadata.c b/src/libs/metadata.c index 066e5bb140bd..bffedd2da5fb 100644 --- a/src/libs/metadata.c +++ b/src/libs/metadata.c @@ -560,7 +560,7 @@ static void _populate_popup_multi(GtkTextView *textview, for(GList *item = texts; item; item = item->next) { GtkWidget *new_line = gtk_menu_item_new_with_label(item->data); - g_signal_connect(G_OBJECT(new_line), "activate", G_CALLBACK(_menu_line_activated), textview); + g_signal_connect(new_line, "activate", G_CALLBACK(_menu_line_activated), textview); gtk_menu_shell_append(GTK_MENU_SHELL(popup), new_line); } gtk_widget_show_all(popup); @@ -890,7 +890,7 @@ static void _menuitem_preferences(GtkMenuItem *menuitem, (_("display name"), renderer, "text", DT_METADATA_PREF_COL_NAME, NULL); g_object_set(renderer, "editable", TRUE, NULL); - g_signal_connect(G_OBJECT(renderer), "edited", G_CALLBACK(_display_name_edited_callback), store); + g_signal_connect(renderer, "edited", G_CALLBACK(_display_name_edited_callback), store); dt_gui_commit_on_focus_loss(renderer, &active_editable); gtk_tree_view_column_set_expand(column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); @@ -908,7 +908,7 @@ static void _menuitem_preferences(GtkMenuItem *menuitem, // drag & drop gtk_tree_view_set_reorderable(GTK_TREE_VIEW(view), TRUE); - g_signal_connect(G_OBJECT(model), "row-inserted", G_CALLBACK(_drag_data_inserted), d); + g_signal_connect(model, "row-inserted", G_CALLBACK(_drag_data_inserted), d); GtkWidget *header = gtk_tree_view_column_get_button(column); gtk_widget_set_tooltip_text(header, @@ -932,11 +932,11 @@ static void _menuitem_preferences(GtkMenuItem *menuitem, GtkWidget *plus = dtgtk_button_new(dtgtk_cairo_paint_plus_simple, 0, NULL); gtk_widget_set_tooltip_text(plus, _("add metadata tags")); - g_signal_connect(G_OBJECT(plus), "clicked", G_CALLBACK(_add_tag_button_clicked), (gpointer)d); + g_signal_connect(plus, "clicked", G_CALLBACK(_add_tag_button_clicked), (gpointer)d); GtkWidget *minus = dtgtk_button_new(dtgtk_cairo_paint_minus_simple, 0, NULL); gtk_widget_set_tooltip_text(minus, _("delete metadata tag")); - g_signal_connect(G_OBJECT(minus), "clicked", G_CALLBACK(_delete_tag_button_clicked), (gpointer)d); + g_signal_connect(minus, "clicked", G_CALLBACK(_delete_tag_button_clicked), (gpointer)d); d->delete_button = minus; #ifdef GDK_WINDOWING_QUARTZ @@ -1119,7 +1119,7 @@ static void _menuitem_preferences(GtkMenuItem *menuitem, void set_preferences(void *menu, dt_lib_module_t *self) { GtkWidget *mi = gtk_menu_item_new_with_label(_("preferences...")); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(_menuitem_preferences), self); + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_preferences), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } diff --git a/src/libs/metadata_view.c b/src/libs/metadata_view.c index f4e1abd11b09..b162629912a7 100644 --- a/src/libs/metadata_view.c +++ b/src/libs/metadata_view.c @@ -1203,7 +1203,7 @@ static void _lib_metadata_refill_grid(dt_lib_module_t *self) // film roll jump to: if(d->filmroll_event && GTK_IS_WIDGET(d->filmroll_event)) g_signal_handlers_disconnect_by_func(d->filmroll_event, G_CALLBACK(_filmroll_clicked), NULL); - g_signal_connect(G_OBJECT(w_value), "button-press-event", G_CALLBACK(_filmroll_clicked), NULL); + g_signal_connect(w_value, "button-press-event", G_CALLBACK(_filmroll_clicked), NULL); d->filmroll_event = G_OBJECT(w_value); } @@ -1476,7 +1476,7 @@ void _menuitem_preferences(GtkMenuItem *menuitem, dt_lib_module_t *self) // drag & drop gtk_tree_view_set_reorderable(GTK_TREE_VIEW(view), TRUE); - g_signal_connect(G_OBJECT(model), "row-inserted", G_CALLBACK(_drag_data_inserted), NULL); + g_signal_connect(model, "row-inserted", G_CALLBACK(_drag_data_inserted), NULL); GtkWidget *w = dt_gui_scroll_wrap(view); gtk_widget_set_size_request(w, -1, DT_PIXEL_APPLY_DPI(600)); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(w), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); @@ -1541,7 +1541,7 @@ void _menuitem_preferences(GtkMenuItem *menuitem, dt_lib_module_t *self) void set_preferences(void *menu, dt_lib_module_t *self) { GtkWidget *mi = gtk_menu_item_new_with_label(_("preferences...")); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(_menuitem_preferences), self); + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_preferences), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } diff --git a/src/libs/modulegroups.c b/src/libs/modulegroups.c index 7690e939dbfc..79ded6ffd39d 100644 --- a/src/libs/modulegroups.c +++ b/src/libs/modulegroups.c @@ -468,7 +468,7 @@ static void _basics_add_widget(dt_lib_module_t *self, dt_lib_modulegroups_basic_ gtk_label_set_xalign(GTK_LABEL(lb), 0.0); gtk_widget_set_name(lb, "basics-iop_name"); gtk_container_add(GTK_CONTAINER(evb), lb); - g_signal_connect(G_OBJECT(evb), "button-press-event", G_CALLBACK(_basics_on_off_label_callback), btn); + g_signal_connect(evb, "button-press-event", G_CALLBACK(_basics_on_off_label_callback), btn); gtk_box_pack_start(GTK_BOX(item->box), evb, FALSE, TRUE, 0); // disable widget if needed (multiinstance) @@ -576,7 +576,7 @@ static void _basics_add_widget(dt_lib_module_t *self, dt_lib_modulegroups_basic_ g_signal_connect(item->widget , "notify::visible", G_CALLBACK(_sync_visibility), item); g_signal_connect(item->old_parent , "notify::visible", G_CALLBACK(_sync_visibility), item); g_signal_connect(item->temp_widget , "notify::visible", G_CALLBACK(_sync_visibility), item); - g_signal_connect(G_OBJECT(item->temp_widget), "destroy", G_CALLBACK(gtk_widget_destroyed), &item->temp_widget); + g_signal_connect(item->temp_widget, "destroy", G_CALLBACK(gtk_widget_destroyed), &item->temp_widget); g_signal_connect_swapped(G_OBJECT(item->temp_widget), "destroy", G_CALLBACK(_basics_remove_widget), item); _sync_visibility(item->widget, NULL, item); @@ -612,7 +612,7 @@ static void _basics_add_widget(dt_lib_module_t *self, dt_lib_modulegroups_basic_ gtk_widget_set_name(wbt, "basics-link"); gtk_widget_set_valign(wbt, GTK_ALIGN_CENTER); g_free(tt); - g_signal_connect(G_OBJECT(wbt), "button-press-event", G_CALLBACK(_basics_goto_module), item->module); + g_signal_connect(wbt, "button-press-event", G_CALLBACK(_basics_goto_module), item->module); gtk_box_pack_end(GTK_BOX(compact_ui ? hbox_basic : header_box), wbt, FALSE, FALSE, 0); // we create a button to open the presets menu @@ -2006,7 +2006,7 @@ static void _manage_editor_basics_update_list(dt_lib_module_t *self) gtk_widget_set_tooltip_text(btn, _("remove this widget")); g_object_set_data(G_OBJECT(btn), "widget_id", item->id); - g_signal_connect(G_OBJECT(btn), "button-press-event", + g_signal_connect(btn, "button-press-event", G_CALLBACK(_manage_editor_basics_remove), self); gtk_box_pack_end(GTK_BOX(hb), btn, FALSE, TRUE, 0); } @@ -2130,7 +2130,7 @@ static void _manage_editor_module_update_list(dt_lib_module_t *self, gtk_widget_set_tooltip_text(btn, _("remove this module")); g_object_set_data(G_OBJECT(btn), "module_name", module->op); g_object_set_data(G_OBJECT(btn), "group", gr); - g_signal_connect(G_OBJECT(btn), "button-press-event", + g_signal_connect(btn, "button-press-event", G_CALLBACK(_manage_editor_module_remove), self); gtk_box_pack_end(GTK_BOX(hb), btn, FALSE, TRUE, 0); } @@ -2376,7 +2376,7 @@ static void _manage_module_add_popup(GtkWidget *widget, gtk_widget_set_tooltip_text(GTK_WIDGET(smir), _("add this module")); g_object_set_data(G_OBJECT(smir), "module_op", module->op); g_object_set_data(G_OBJECT(smir), "group", gr); - g_signal_connect(G_OBJECT(smir), "activate", callback, data); + g_signal_connect(smir, "activate", G_CALLBACK(callback), data); gtk_menu_shell_insert(GTK_MENU_SHELL(pop), GTK_WIDGET(smir), nba); } GtkMenuItem *smi = (GtkMenuItem *)gtk_menu_item_new_with_label(module->name()); @@ -2384,7 +2384,7 @@ static void _manage_module_add_popup(GtkWidget *widget, gtk_widget_set_tooltip_text(GTK_WIDGET(smi), _("add this module")); g_object_set_data(G_OBJECT(smi), "module_op", module->op); g_object_set_data(G_OBJECT(smi), "group", gr); - g_signal_connect(G_OBJECT(smi), "activate", callback, data); + g_signal_connect(smi, "activate", G_CALLBACK(callback), data); gtk_menu_shell_prepend(GTK_MENU_SHELL(sm_all), GTK_WIDGET(smi)); } else if(toggle) @@ -2394,7 +2394,7 @@ static void _manage_module_add_popup(GtkWidget *widget, gtk_widget_set_tooltip_text(GTK_WIDGET(smi), _("remove this module")); g_object_set_data(G_OBJECT(smi), "module_op", module->op); g_object_set_data(G_OBJECT(smi), "group", gr); - g_signal_connect(G_OBJECT(smi), "activate", callback, data); + g_signal_connect(smi, "activate", G_CALLBACK(callback), data); gtk_menu_shell_insert(GTK_MENU_SHELL(pop), GTK_WIDGET(smi), 0); nba++; } @@ -2548,7 +2548,7 @@ static GtkWidget *_build_menu_from_actions(dt_action_t *actions, gtk_widget_set_tooltip_text(item_top, _("remove this widget")); gtk_widget_set_name(item_top, "modulegroups-popup-item"); g_object_set_data(G_OBJECT(item_top), "widget_id", action); - g_signal_connect(G_OBJECT(item_top), "activate", callback, self); + g_signal_connect(item_top, "activate", G_CALLBACK(callback), self); gtk_menu_shell_insert(GTK_MENU_SHELL(base_menu), item_top, *num_selected); ++*num_selected; } @@ -2565,7 +2565,7 @@ static GtkWidget *_build_menu_from_actions(dt_action_t *actions, gtk_widget_set_tooltip_text(item_top, _("add this widget")); gtk_widget_set_name(item_top, "modulegroups-popup-item"); g_object_set_data(G_OBJECT(item_top), "widget_id", action); - g_signal_connect(G_OBJECT(item_top), "activate", callback, self); + g_signal_connect(item_top, "activate", G_CALLBACK(callback), self); gtk_menu_shell_append(GTK_MENU_SHELL(base_menu), item_top); } g_free(delimited_id); @@ -2583,7 +2583,7 @@ static GtkWidget *_build_menu_from_actions(dt_action_t *actions, } g_object_set_data(G_OBJECT(item), "widget_id", action); - g_signal_connect(G_OBJECT(item), "activate", callback, self); + g_signal_connect(item, "activate", G_CALLBACK(callback), self); g_free(action_id); } g_free(action_label); @@ -2743,7 +2743,7 @@ static gboolean _manage_direct_active_popup(GtkWidget *widget, " regardless of whether or not they are currently enabled")); gtk_widget_set_name(smt, "modulegroups-popup-item"); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(smt), d->full_active); - g_signal_connect(G_OBJECT(smt), "toggled", + g_signal_connect(smt, "toggled", G_CALLBACK(_manage_direct_full_active_toggled), self); gtk_menu_shell_append(GTK_MENU_SHELL(pop), smt); @@ -2919,10 +2919,10 @@ void gui_init(dt_lib_module_t *self) dt_action_define(&darktable.view_manager->proxy.darkroom.view->actions, NULL, N_("search modules"), d->text_entry, &dt_action_def_entry); gtk_entry_set_placeholder_text(GTK_ENTRY(d->text_entry), _("search modules by name or tag")); - g_signal_connect(G_OBJECT(d->text_entry), "search-changed", + g_signal_connect(d->text_entry, "search-changed", G_CALLBACK(_text_entry_changed_callback), self); - g_signal_connect(G_OBJECT(d->text_entry), "stop-search", - G_CALLBACK(dt_gui_search_stop), dt_ui_center(darktable.gui->ui)); + g_signal_connect(GTK_SEARCH_ENTRY(d->text_entry), "stop-search", + G_CALLBACK(dt_gui_search_stop), (GtkTreeView*)dt_ui_center(darktable.gui->ui)); g_signal_connect_data(G_OBJECT(d->text_entry), "focus-in-event", G_CALLBACK(gtk_widget_show), d->hbox_search_box, NULL, G_CONNECT_AFTER | G_CONNECT_SWAPPED); @@ -3199,7 +3199,7 @@ static void _manage_editor_group_icon_popup(GtkWidget *btn, gtk_box_pack_start(GTK_BOX(hb), ic, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hb), gtk_label_new(_("basic icon")), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(eb), "ic_name", "basic"); - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_manage_editor_group_icon_changed), gr); gtk_container_add(GTK_CONTAINER(eb), hb); gtk_box_pack_start(GTK_BOX(vb), eb, FALSE, TRUE, 0); @@ -3210,7 +3210,7 @@ static void _manage_editor_group_icon_popup(GtkWidget *btn, gtk_box_pack_start(GTK_BOX(hb), ic, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hb), gtk_label_new(_("active icon")), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(eb), "ic_name", "active"); - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_manage_editor_group_icon_changed), gr); gtk_container_add(GTK_CONTAINER(eb), hb); gtk_box_pack_start(GTK_BOX(vb), eb, FALSE, TRUE, 0); @@ -3221,7 +3221,7 @@ static void _manage_editor_group_icon_popup(GtkWidget *btn, gtk_box_pack_start(GTK_BOX(hb), ic, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hb), gtk_label_new(_("color icon")), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(eb), "ic_name", "color"); - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_manage_editor_group_icon_changed), gr); gtk_container_add(GTK_CONTAINER(eb), hb); gtk_box_pack_start(GTK_BOX(vb), eb, FALSE, TRUE, 0); @@ -3232,7 +3232,7 @@ static void _manage_editor_group_icon_popup(GtkWidget *btn, gtk_box_pack_start(GTK_BOX(hb), ic, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hb), gtk_label_new(_("correct icon")), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(eb), "ic_name", "correct"); - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_manage_editor_group_icon_changed), gr); gtk_container_add(GTK_CONTAINER(eb), hb); gtk_box_pack_start(GTK_BOX(vb), eb, FALSE, TRUE, 0); @@ -3243,7 +3243,7 @@ static void _manage_editor_group_icon_popup(GtkWidget *btn, gtk_box_pack_start(GTK_BOX(hb), ic, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hb), gtk_label_new(_("effect icon")), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(eb), "ic_name", "effect"); - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_manage_editor_group_icon_changed), gr); gtk_container_add(GTK_CONTAINER(eb), hb); gtk_box_pack_start(GTK_BOX(vb), eb, FALSE, TRUE, 0); @@ -3254,7 +3254,7 @@ static void _manage_editor_group_icon_popup(GtkWidget *btn, gtk_box_pack_start(GTK_BOX(hb), ic, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hb), gtk_label_new(_("favorites icon")), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(eb), "ic_name", "favorites"); - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_manage_editor_group_icon_changed), gr); gtk_container_add(GTK_CONTAINER(eb), hb); gtk_box_pack_start(GTK_BOX(vb), eb, FALSE, TRUE, 0); @@ -3265,7 +3265,7 @@ static void _manage_editor_group_icon_popup(GtkWidget *btn, gtk_box_pack_start(GTK_BOX(hb), ic, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hb), gtk_label_new(_("tone icon")), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(eb), "ic_name", "tone"); - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_manage_editor_group_icon_changed), gr); gtk_container_add(GTK_CONTAINER(eb), hb); gtk_box_pack_start(GTK_BOX(vb), eb, FALSE, TRUE, 0); @@ -3276,7 +3276,7 @@ static void _manage_editor_group_icon_popup(GtkWidget *btn, gtk_box_pack_start(GTK_BOX(hb), ic, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hb), gtk_label_new(_("grading icon")), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(eb), "ic_name", "grading"); - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_manage_editor_group_icon_changed), gr); gtk_container_add(GTK_CONTAINER(eb), hb); gtk_box_pack_start(GTK_BOX(vb), eb, FALSE, TRUE, 0); @@ -3287,7 +3287,7 @@ static void _manage_editor_group_icon_popup(GtkWidget *btn, gtk_box_pack_start(GTK_BOX(hb), ic, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hb), gtk_label_new(_("technical icon")), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(eb), "ic_name", "technical"); - g_signal_connect(G_OBJECT(eb), "button-press-event", + g_signal_connect(eb, "button-press-event", G_CALLBACK(_manage_editor_group_icon_changed), gr); gtk_container_add(GTK_CONTAINER(eb), hb); gtk_box_pack_start(GTK_BOX(vb), eb, FALSE, TRUE, 0); @@ -3345,7 +3345,7 @@ static GtkWidget *_manage_editor_group_init_basics_box(dt_lib_module_t *self) CPF_DIRECTION_LEFT, NULL); gtk_widget_set_tooltip_text(bt, _("add widget to the quick access panel")); gtk_widget_set_name(bt, "modulegroups-btn"); - g_signal_connect(G_OBJECT(bt), "button-press-event", + g_signal_connect(bt, "button-press-event", G_CALLBACK(_manage_editor_basics_add_popup), self); gtk_widget_set_halign(hb4, GTK_ALIGN_CENTER); gtk_box_pack_start(GTK_BOX(hb4), bt, FALSE, FALSE, 0); @@ -3378,7 +3378,7 @@ static GtkWidget *_manage_editor_group_init_modules_box(dt_lib_module_t *self, gtk_widget_set_name(btn, "modulegroups-group-icon"); gtk_widget_set_tooltip_text(btn, _("group icon")); gtk_widget_set_sensitive(btn, !d->edit_ro); - g_signal_connect(G_OBJECT(btn), "button-press-event", + g_signal_connect(btn, "button-press-event", G_CALLBACK(_manage_editor_group_icon_popup), self); g_object_set_data(G_OBJECT(btn), "group", gr); gtk_box_pack_start(GTK_BOX(hb3), btn, FALSE, TRUE, 0); @@ -3389,7 +3389,7 @@ static GtkWidget *_manage_editor_group_init_modules_box(dt_lib_module_t *self, gtk_widget_set_tooltip_text(tb, _("group name")); g_object_set_data(G_OBJECT(tb), "group", gr); gtk_widget_set_sensitive(tb, !d->edit_ro); - g_signal_connect(G_OBJECT(tb), "changed", + g_signal_connect(tb, "changed", G_CALLBACK(_manage_editor_group_name_changed), self); gtk_entry_set_text(GTK_ENTRY(tb), gr->name); gtk_box_pack_start(GTK_BOX(hb3), tb, TRUE, TRUE, 0); @@ -3400,7 +3400,7 @@ static GtkWidget *_manage_editor_group_init_modules_box(dt_lib_module_t *self, btn = dtgtk_button_new(dtgtk_cairo_paint_remove, 0, NULL); gtk_widget_set_tooltip_text(btn, _("remove group")); g_object_set_data(G_OBJECT(btn), "group", gr); - g_signal_connect(G_OBJECT(btn), "button-press-event", + g_signal_connect(btn, "button-press-event", G_CALLBACK(_manage_editor_group_remove), self); gtk_box_pack_end(GTK_BOX(hb3), btn, FALSE, TRUE, 0); } @@ -3428,7 +3428,7 @@ static GtkWidget *_manage_editor_group_init_modules_box(dt_lib_module_t *self, gtk_widget_set_name(btn, "modulegroups-btn"); gtk_widget_set_tooltip_text(btn, _("move group to the left")); g_object_set_data(G_OBJECT(btn), "group", gr); - g_signal_connect(G_OBJECT(btn), "button-press-event", + g_signal_connect(btn, "button-press-event", G_CALLBACK(_manage_editor_group_move_left), self); gtk_box_pack_start(GTK_BOX(hb4), btn, FALSE, FALSE, 2); @@ -3439,7 +3439,7 @@ static GtkWidget *_manage_editor_group_init_modules_box(dt_lib_module_t *self, gtk_widget_set_tooltip_text(bt, _("add module to the group")); gtk_widget_set_name(bt, "modulegroups-btn"); g_object_set_data(G_OBJECT(bt), "group", gr); - g_signal_connect(G_OBJECT(bt), "button-press-event", + g_signal_connect(bt, "button-press-event", G_CALLBACK(_manage_editor_module_add_popup), self); gtk_widget_set_halign(plusbox, GTK_ALIGN_CENTER); gtk_box_pack_start(GTK_BOX(plusbox), bt, FALSE, FALSE, 0); @@ -3450,7 +3450,7 @@ static GtkWidget *_manage_editor_group_init_modules_box(dt_lib_module_t *self, gtk_widget_set_name(btn, "modulegroups-btn"); gtk_widget_set_tooltip_text(btn, _("move group to the right")); g_object_set_data(G_OBJECT(btn), "group", gr); - g_signal_connect(G_OBJECT(btn), "button-press-event", + g_signal_connect(btn, "button-press-event", G_CALLBACK(_manage_editor_group_move_right), self); gtk_box_pack_end(GTK_BOX(hb4), btn, FALSE, FALSE, 2); @@ -3653,7 +3653,7 @@ static void _manage_editor_preset_action(GtkWidget *btn, 10 + g_utf8_strlen(gtk_window_get_title(GTK_WINDOW(dialog)), -1)); gpointer verify_params[] = {dialog, names, lb}; - g_signal_connect(G_OBJECT(tb), "changed", + g_signal_connect(tb, "changed", G_CALLBACK(_manage_editor_preset_name_verify), verify_params); dt_gui_dialog_add(GTK_DIALOG(dialog), gtk_label_new(_("new preset name:")), tb, lb); gtk_widget_show_all(dialog); @@ -3985,7 +3985,7 @@ static void _manage_show_window(dt_lib_module_t *self) GtkWidget *hb2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start(GTK_BOX(hb2), gtk_label_new(_("preset: ")), FALSE, TRUE, 2); d->presets_combo = gtk_combo_box_text_new(); - g_signal_connect(G_OBJECT(d->presets_combo), "changed", + g_signal_connect(d->presets_combo, "changed", G_CALLBACK(_manage_preset_change), self); gtk_box_pack_start(GTK_BOX(hb2), d->presets_combo, TRUE, TRUE, 2); gtk_box_pack_start(GTK_BOX(vb), hb2, FALSE, TRUE, 2); @@ -4014,11 +4014,11 @@ static void _manage_show_window(dt_lib_module_t *self) vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_name(vb, "modulegroups-top-boxes"); d->edit_search_cb = gtk_check_button_new_with_label(_("show search line")); - g_signal_connect(G_OBJECT(d->edit_search_cb), "toggled", + g_signal_connect(d->edit_search_cb, "toggled", G_CALLBACK(_manage_editor_search_toggle), self); gtk_box_pack_start(GTK_BOX(vb), d->edit_search_cb, FALSE, TRUE, 0); d->basics_chkbox = gtk_check_button_new_with_label(_("show quick access panel")); - g_signal_connect(G_OBJECT(d->basics_chkbox), "toggled", + g_signal_connect(d->basics_chkbox, "toggled", G_CALLBACK(_manage_editor_basics_toggle), self); gtk_box_pack_start(GTK_BOX(vb), d->basics_chkbox, FALSE, TRUE, 0); d->edit_full_active_cb = @@ -4027,7 +4027,7 @@ static void _manage_show_window(dt_lib_module_t *self) d->edit_full_active_cb, _("show modules that are present in the history stack," " regardless of whether or not they are currently enabled")); - g_signal_connect(G_OBJECT(d->edit_full_active_cb), "toggled", + g_signal_connect(d->edit_full_active_cb, "toggled", G_CALLBACK(_manage_editor_full_active_toggle), self); gtk_box_pack_start(GTK_BOX(vb), d->edit_full_active_cb, FALSE, TRUE, 0); @@ -4040,7 +4040,7 @@ static void _manage_show_window(dt_lib_module_t *self) gtk_widget_set_sensitive(d->edit_autoapply_chkbox, FALSE); // always readonly. change are done with the button... gtk_box_pack_start(GTK_BOX(hb2), d->edit_autoapply_chkbox, FALSE, TRUE, 0); d->edit_autoapply_btn = dtgtk_button_new(dtgtk_cairo_paint_preferences, 0, NULL); - g_signal_connect(G_OBJECT(d->edit_autoapply_btn), "clicked", + g_signal_connect(d->edit_autoapply_btn, "clicked", G_CALLBACK(_preset_autoapply_edit), self); gtk_widget_set_name(d->edit_autoapply_btn, "modulegroups-autoapply-btn"); gtk_box_pack_start(GTK_BOX(hb2), d->edit_autoapply_btn, FALSE, FALSE, 2); @@ -4055,7 +4055,7 @@ static void _manage_show_window(dt_lib_module_t *self) gtk_box_pack_start(GTK_BOX(hb), gtk_label_new(_("module groups")), FALSE, TRUE, 0); d->preset_btn_add_group = dtgtk_button_new(dtgtk_cairo_paint_square_plus, CPF_DIRECTION_LEFT, NULL); - g_signal_connect(G_OBJECT(d->preset_btn_add_group), "button-press-event", + g_signal_connect(d->preset_btn_add_group, "button-press-event", G_CALLBACK(_manage_editor_group_add), self); gtk_box_pack_start(GTK_BOX(hb), d->preset_btn_add_group, FALSE, FALSE, 0); @@ -4080,7 +4080,7 @@ static void _manage_show_window(dt_lib_module_t *self) hb2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); d->preset_reset_btn = gtk_button_new_with_label(_("reset")); - g_signal_connect(G_OBJECT(d->preset_reset_btn), "button-press-event", + g_signal_connect(d->preset_reset_btn, "button-press-event", G_CALLBACK(_manage_editor_reset), self); gtk_box_pack_end(GTK_BOX(hb2), d->preset_reset_btn, FALSE, TRUE, 0); diff --git a/src/libs/navigation.c b/src/libs/navigation.c index 697a3af217cf..f0a542f12552 100644 --- a/src/libs/navigation.c +++ b/src/libs/navigation.c @@ -214,17 +214,17 @@ void gui_init(dt_lib_module_t *self) /* connect callbacks */ gtk_widget_set_app_paintable(thumbnail, TRUE); - g_signal_connect(G_OBJECT(thumbnail), "draw", + g_signal_connect(thumbnail, "draw", G_CALLBACK(_lib_navigation_draw_callback), self); - g_signal_connect(G_OBJECT(thumbnail), "button-press-event", + g_signal_connect(thumbnail, "button-press-event", G_CALLBACK(_lib_navigation_button_press_callback), self); - g_signal_connect(G_OBJECT(thumbnail), "scroll-event", + g_signal_connect(thumbnail, "scroll-event", G_CALLBACK(_lib_navigation_button_press_callback), self); - g_signal_connect(G_OBJECT(thumbnail), "button-release-event", + g_signal_connect(thumbnail, "button-release-event", G_CALLBACK(_lib_navigation_button_release_callback), self); - g_signal_connect(G_OBJECT(thumbnail), "motion-notify-event", + g_signal_connect(thumbnail, "motion-notify-event", G_CALLBACK(_lib_navigation_motion_notify_callback), self); - g_signal_connect(G_OBJECT(thumbnail), "leave-notify-event", + g_signal_connect(thumbnail, "leave-notify-event", G_CALLBACK(_lib_navigation_leave_notify_callback), self); /* set size of navigation draw area */ diff --git a/src/libs/print_settings.c b/src/libs/print_settings.c index f0f4a9820a95..9b98272746ae 100644 --- a/src/libs/print_settings.c +++ b/src/libs/print_settings.c @@ -1021,7 +1021,7 @@ _lock_callback(GtkWidget *button, dt_lib_module_t *self) } static void -_alignment_callback(GtkWidget *tb, dt_lib_module_t *self) +_alignment_callback(GtkDarktableToggleButton *tb, dt_lib_module_t *self) { if(darktable.gui->reset) return; @@ -1033,7 +1033,7 @@ _alignment_callback(GtkWidget *tb, dt_lib_module_t *self) /* block signal handler */ g_signal_handlers_block_by_func(ps->dtba[i],_alignment_callback, self); - if(GTK_WIDGET(ps->dtba[i]) == tb) + if(ps->dtba[i] == tb) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ps->dtba[i]), TRUE); index=i; @@ -2484,7 +2484,7 @@ void gui_init(dt_lib_module_t *self) d->printers = dt_bauhaus_combobox_new_action(DT_ACTION(self)); gtk_box_pack_start(GTK_BOX(self->widget), d->printers, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(d->printers), "value-changed", + g_signal_connect(d->printers, "value-changed", G_CALLBACK(_printer_changed), self); //// media @@ -2493,7 +2493,7 @@ void gui_init(dt_lib_module_t *self) dt_bauhaus_widget_set_label(d->media, N_("printer"), N_("media")); - g_signal_connect(G_OBJECT(d->media), "value-changed", + g_signal_connect(d->media, "value-changed", G_CALLBACK(_media_changed), self); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(d->media), TRUE, TRUE, 0); @@ -2549,8 +2549,8 @@ void gui_init(dt_lib_module_t *self) gtk_widget_set_tooltip_markup(d->pprofile, tooltip); g_free(tooltip); - g_signal_connect(G_OBJECT(d->pprofile), "value-changed", - G_CALLBACK(_printer_profile_changed), (gpointer)self); + g_signal_connect(d->pprofile, "value-changed", + G_CALLBACK(_printer_profile_changed), self); // Add printer intent combo @@ -2570,7 +2570,7 @@ void gui_init(dt_lib_module_t *self) gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(d->black_point_compensation), TRUE, FALSE, 0); g_signal_connect(d->black_point_compensation, "toggled", - G_CALLBACK(_printer_bpc_callback), (gpointer)self); + G_CALLBACK(_printer_bpc_callback), self); d->v_black_point_compensation = dt_conf_get_bool(PRINT_CONFIG_PREFIX "black_point_compensation"); @@ -2594,7 +2594,7 @@ void gui_init(dt_lib_module_t *self) dt_bauhaus_widget_set_label(d->papers, NULL, N_("paper size")); - g_signal_connect(G_OBJECT(d->papers), "value-changed", G_CALLBACK(_paper_changed), self); + g_signal_connect(d->papers, "value-changed", G_CALLBACK(_paper_changed), self); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(d->papers), TRUE, TRUE, 0); //// portrait / landscape @@ -2677,15 +2677,15 @@ void gui_init(dt_lib_module_t *self) gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->b_left), left_b); gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->b_right), right_b); - g_signal_connect(G_OBJECT (d->b_top), "value-changed", + g_signal_connect(d->b_top, "value-changed", G_CALLBACK (_top_border_callback), self); - g_signal_connect(G_OBJECT (d->b_bottom), "value-changed", + g_signal_connect(d->b_bottom, "value-changed", G_CALLBACK (_bottom_border_callback), self); - g_signal_connect(G_OBJECT (d->b_left), "value-changed", + g_signal_connect(d->b_left, "value-changed", G_CALLBACK (_left_border_callback), self); - g_signal_connect(G_OBJECT (d->b_right), "value-changed", + g_signal_connect(d->b_right, "value-changed", G_CALLBACK (_right_border_callback), self); - g_signal_connect(G_OBJECT(d->lock_button), "toggled", + g_signal_connect(d->lock_button, "toggled", G_CALLBACK(_lock_callback), self); gtk_widget_set_halign(GTK_WIDGET(hboxdim), GTK_ALIGN_CENTER); @@ -2715,12 +2715,12 @@ void gui_init(dt_lib_module_t *self) gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(vbox), TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(d->grid_size), "value-changed", + g_signal_connect(d->grid_size, "value-changed", G_CALLBACK(_grid_size_changed), self); - g_signal_connect(G_OBJECT(d->grid), "toggled", + g_signal_connect(d->grid, "toggled", G_CALLBACK(_grid_callback), self); g_signal_connect(d->snap_grid, "toggled", - G_CALLBACK(_snap_grid_callback), (gpointer)self); + G_CALLBACK(_snap_grid_callback), self); } d->borderless = gtk_check_button_new_with_label(_("borderless mode required")); @@ -2752,8 +2752,8 @@ void gui_init(dt_lib_module_t *self) = DTGTK_TOGGLEBUTTON(dtgtk_togglebutton_new(dtgtk_cairo_paint_alignment, (CPF_SPECIAL_FLAG << i), NULL)); gtk_grid_attach (GTK_GRID (bat), GTK_WIDGET (d->dtba[i]), (i%3), i/3, 1, 1); - g_signal_connect (G_OBJECT (d->dtba[i]), "toggled", - G_CALLBACK (_alignment_callback), self); + g_signal_connect(d->dtba[i], "toggled", + G_CALLBACK (_alignment_callback), self); } GtkWidget *hbox22 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); @@ -2838,14 +2838,14 @@ void gui_init(dt_lib_module_t *self) gtk_widget_add_events(d->b_width, GDK_BUTTON_PRESS_MASK); gtk_widget_add_events(d->b_height, GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(d->b_x), "value-changed", - G_CALLBACK(_x_changed), (gpointer)d); - g_signal_connect(G_OBJECT(d->b_y), "value-changed", - G_CALLBACK(_y_changed), (gpointer)d); - g_signal_connect(G_OBJECT(d->b_width), "value-changed", - G_CALLBACK(_width_changed), (gpointer)d); - g_signal_connect(G_OBJECT(d->b_height), "value-changed", - G_CALLBACK(_height_changed), (gpointer)d); + g_signal_connect(d->b_x, "value-changed", + G_CALLBACK(_x_changed), d); + g_signal_connect(d->b_y, "value-changed", + G_CALLBACK(_y_changed), d); + g_signal_connect(d->b_width, "value-changed", + G_CALLBACK(_width_changed), d); + g_signal_connect(d->b_height, "value-changed", + G_CALLBACK(_height_changed), d); ////////////////////////// PRINT SETTINGS @@ -2897,8 +2897,8 @@ void gui_init(dt_lib_module_t *self) gtk_widget_set_tooltip_markup(d->profile, tooltip); g_free(tooltip); - g_signal_connect(G_OBJECT(d->profile), "value-changed", - G_CALLBACK(_profile_changed), (gpointer)self); + g_signal_connect(d->profile, "value-changed", + G_CALLBACK(_profile_changed), self); // Add export intent combo @@ -2918,7 +2918,7 @@ void gui_init(dt_lib_module_t *self) GtkWidget *styles_button = dtgtk_button_new(dtgtk_cairo_paint_styles, 0, NULL); gtk_widget_set_halign(styles_button,GTK_ALIGN_END); - g_signal_connect(G_OBJECT(styles_button), "clicked", G_CALLBACK(_style_popupmenu_callback), (gpointer)d); + g_signal_connect(styles_button, "clicked", G_CALLBACK(_style_popupmenu_callback), d); gtk_widget_set_tooltip_text(styles_button, _("select style to be applied on printing")); GtkBox *style_box = (GtkBox*)gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); gtk_widget_set_tooltip_text(GTK_WIDGET(style_box), _("temporary style to use while printing")); diff --git a/src/libs/recentcollect.c b/src/libs/recentcollect.c index ef2d291aad63..596daaced6a0 100644 --- a/src/libs/recentcollect.c +++ b/src/libs/recentcollect.c @@ -278,7 +278,7 @@ void _menuitem_preferences(GtkMenuItem *menuitem, dt_lib_module_t *self) d->items = g_list_append(d->items, item); item->button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(box), item->button, FALSE, TRUE, 0); - g_signal_connect(G_OBJECT(item->button), "clicked", G_CALLBACK(_button_pressed), (gpointer)self); + g_signal_connect(item->button, "clicked", G_CALLBACK(_button_pressed), (gpointer)self); gtk_widget_set_no_show_all(item->button, TRUE); gtk_widget_set_name(GTK_WIDGET(item->button), "recent-collection-button"); gtk_widget_set_visible(item->button, FALSE); @@ -295,7 +295,7 @@ void _menuitem_preferences(GtkMenuItem *menuitem, dt_lib_module_t *self) void set_preferences(void *menu, dt_lib_module_t *self) { GtkWidget *mi = gtk_menu_item_new_with_label(_("preferences...")); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(_menuitem_preferences), self); + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_preferences), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } @@ -333,7 +333,7 @@ void gui_init(dt_lib_module_t *self) d->items = g_list_append(d->items, item); item->button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(box), item->button, FALSE, TRUE, 0); - g_signal_connect(G_OBJECT(item->button), "clicked", G_CALLBACK(_button_pressed), (gpointer)self); + g_signal_connect(GTK_BUTTON(item->button), "clicked", G_CALLBACK(_button_pressed), self); gtk_widget_set_no_show_all(item->button, TRUE); dt_gui_add_class(GTK_WIDGET(item->button), "dt_transparent_background"); gtk_widget_set_name(GTK_WIDGET(item->button), "recent-collection-button"); diff --git a/src/libs/select.c b/src/libs/select.c index 020a43a308bc..28df825150c4 100644 --- a/src/libs/select.c +++ b/src/libs/select.c @@ -259,7 +259,7 @@ static int lua_register_selection(lua_State *L) lua_callback_data * data = malloc(sizeof(lua_callback_data)); data->key = strdup(name); data->self = self; - gulong s = g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(lua_button_clicked), data); + gulong s = g_signal_connect_data(button, "clicked", G_CALLBACK(lua_button_clicked), data, NULL, 0); dt_lua_module_entry_push(L, "lib", self->plugin_name); lua_getiuservalue(L, -1, 1); diff --git a/src/libs/session.c b/src/libs/session.c index c2deb8166b41..8ba5a5b65a35 100644 --- a/src/libs/session.c +++ b/src/libs/session.c @@ -107,7 +107,7 @@ void gui_init(dt_lib_module_t *self) gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(hbox), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(lib->gui.button1), TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(lib->gui.button1), "clicked", G_CALLBACK(create_callback), self); + g_signal_connect(lib->gui.button1, "clicked", G_CALLBACK(create_callback), self); const char *str = dt_conf_get_string_const("plugins/session/jobcode"); gtk_entry_set_text(lib->gui.entry1, str); diff --git a/src/libs/snapshots.c b/src/libs/snapshots.c index ae403636dfd0..4dd974295ea9 100644 --- a/src/libs/snapshots.c +++ b/src/libs/snapshots.c @@ -577,9 +577,9 @@ static void _init_snapshot_entry(dt_lib_module_t *self, /* create snapshot button */ s->button = gtk_toggle_button_new(); gtk_widget_set_name(s->button, "snapshot-button"); - g_signal_connect(G_OBJECT(s->button), "toggled", + g_signal_connect(s->button, "toggled", G_CALLBACK(_lib_snapshots_toggled_callback), self); - g_signal_connect(G_OBJECT(s->button), "button-press-event", + g_signal_connect(s->button, "button-press-event", G_CALLBACK(_lib_button_button_pressed_callback), self); s->num = gtk_label_new(""); @@ -595,14 +595,14 @@ static void _init_snapshot_entry(dt_lib_module_t *self, s->entry = gtk_entry_new(); gtk_widget_set_halign(s->entry, GTK_ALIGN_FILL); - g_signal_connect(G_OBJECT(s->entry), "activate", + g_signal_connect(s->entry, "activate", G_CALLBACK(_entry_activated_callback), self); s->restore_button = dtgtk_button_new(dtgtk_cairo_paint_snapshots_restore, CPF_NONE, NULL); gtk_widget_set_name(s->restore_button, "non-flat"); gtk_widget_set_tooltip_text(s->restore_button, _("restore snapshot into current history")); - g_signal_connect(G_OBJECT(s->restore_button), "clicked", + g_signal_connect(s->restore_button, "clicked", G_CALLBACK(_lib_snapshots_restore_callback), self); } @@ -865,7 +865,7 @@ void gui_init(dt_lib_module_t *self) gtk_box_pack_start(GTK_BOX(hbox), d->take_button, TRUE, TRUE, 0); d->sidebyside_button = dtgtk_togglebutton_new(dtgtk_cairo_paint_lt_mode_culling_dynamic, 0, NULL); gtk_box_pack_start(GTK_BOX(hbox), d->sidebyside_button, FALSE, TRUE, 0); - g_signal_connect(G_OBJECT(d->sidebyside_button), "clicked", + g_signal_connect(d->sidebyside_button, "clicked", G_CALLBACK(_sidebyside_button_clicked), self); gtk_widget_set_tooltip_text(GTK_WIDGET(d->sidebyside_button), _("place the snapshot side-by-side / above-below the current image instead of overlaying")); diff --git a/src/libs/styles.c b/src/libs/styles.c index 2dbc8aaf3a85..50b6688313a3 100644 --- a/src/libs/styles.c +++ b/src/libs/styles.c @@ -734,13 +734,12 @@ static void _import_clicked(GtkWidget *w, dt_lib_styles_t *d) g_object_unref(filechooser); } -static gboolean _entry_callback(GtkEntry *entry, dt_lib_styles_t *d) +static void _entry_callback(GtkEntry *entry, dt_lib_styles_t *d) { _gui_styles_update_view(d); - return FALSE; } -static gboolean _entry_activated(GtkEntry *entry, dt_lib_styles_t *d) +static void _entry_activated(GtkEntry *entry, dt_lib_styles_t *d) { const gchar *name = gtk_entry_get_text(d->entry); if(name) @@ -753,15 +752,12 @@ static gboolean _entry_activated(GtkEntry *entry, dt_lib_styles_t *d) dt_control_apply_styles(imgs, styles, duplicate); } } - - return FALSE; } -static gboolean _duplicate_callback(GtkEntry *entry, dt_lib_styles_t *d) +static void _duplicate_callback(GtkWidget *entry, dt_lib_styles_t *d) { dt_conf_set_bool("ui_last/styles_create_duplicate", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->duplicate))); - return FALSE; } static void _applymode_combobox_changed(GtkWidget *widget, gpointer user_data) diff --git a/src/libs/tagging.c b/src/libs/tagging.c index 07055024ed13..4e9e90ac04fa 100644 --- a/src/libs/tagging.c +++ b/src/libs/tagging.c @@ -1414,7 +1414,7 @@ static void _pop_menu_attached(GtkWidget *treeview, { menuitem = gtk_menu_item_new_with_label(_("attach tag to all")); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_attached_attach_to_all, self); + G_CALLBACK(_pop_menu_attached_attach_to_all), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); menuitem = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); @@ -1423,15 +1423,15 @@ static void _pop_menu_attached(GtkWidget *treeview, menuitem = gtk_menu_item_new_with_label(_("detach tag")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - g_signal_connect(menuitem, "activate", (GCallback)_pop_menu_attached_detach, self); + g_signal_connect(menuitem, "activate", G_CALLBACK(_pop_menu_attached_detach), self); menuitem = gtk_menu_item_new_with_label(_("find tag")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - g_signal_connect(menuitem, "activate", (GCallback)_pop_menu_attached_find, self); + g_signal_connect(menuitem, "activate", G_CALLBACK(_pop_menu_attached_find), self); menuitem = gtk_menu_item_new_with_label(_("copy to clipboard")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - g_signal_connect(menuitem, "activate", (GCallback)_pop_menu_attached_clipboard, self); + g_signal_connect(menuitem, "activate", G_CALLBACK(_pop_menu_attached_clipboard), self); gtk_widget_show_all(GTK_WIDGET(menu)); @@ -2494,12 +2494,12 @@ static void _pop_menu_dictionary(GtkWidget *treeview, { menuitem = gtk_menu_item_new_with_label(_("attach tag")); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_attach_tag, self); + G_CALLBACK(_pop_menu_dictionary_attach_tag), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); menuitem = gtk_menu_item_new_with_label(_("detach tag")); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_detach_tag, self); + G_CALLBACK(_pop_menu_dictionary_detach_tag), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); menuitem = gtk_separator_menu_item_new(); @@ -2510,14 +2510,14 @@ static void _pop_menu_dictionary(GtkWidget *treeview, menuitem = gtk_menu_item_new_with_label(_("create tag...")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_create_tag, self); + G_CALLBACK(_pop_menu_dictionary_create_tag), self); if(tagid) { menuitem = gtk_menu_item_new_with_label(_("delete tag")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_delete_tag, self); + G_CALLBACK(_pop_menu_dictionary_delete_tag), self); } if(gtk_tree_model_iter_children(model, &child, &iter)) @@ -2525,13 +2525,13 @@ static void _pop_menu_dictionary(GtkWidget *treeview, menuitem = gtk_menu_item_new_with_label(_("delete node")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_delete_node, self); + G_CALLBACK(_pop_menu_dictionary_delete_node), self); } menuitem = gtk_menu_item_new_with_label(_("edit...")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_edit_tag, self); + G_CALLBACK(_pop_menu_dictionary_edit_tag), self); } if(d->tree_flag) @@ -2539,7 +2539,7 @@ static void _pop_menu_dictionary(GtkWidget *treeview, menuitem = gtk_menu_item_new_with_label(_("change path...")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_change_path, self); + G_CALLBACK(_pop_menu_dictionary_change_path), self); } if(d->tree_flag && !tagid) @@ -2550,7 +2550,7 @@ static void _pop_menu_dictionary(GtkWidget *treeview, menuitem = gtk_menu_item_new_with_label(_("set as a tag")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_set_as_tag, self); + G_CALLBACK(_pop_menu_dictionary_set_as_tag), self); } if(!d->suggestion_flag) @@ -2561,13 +2561,13 @@ static void _pop_menu_dictionary(GtkWidget *treeview, menuitem = gtk_menu_item_new_with_label(_("copy to entry")); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_copy_tag, self); + G_CALLBACK(_pop_menu_dictionary_copy_tag), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); menuitem = gtk_menu_item_new_with_label(_("copy to clipboard")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_clipboard, self); + G_CALLBACK(_pop_menu_dictionary_clipboard), self); if(d->collection[0]) { @@ -2587,14 +2587,14 @@ static void _pop_menu_dictionary(GtkWidget *treeview, { menuitem = gtk_menu_item_new_with_label(_("go to tag collection")); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_goto_tag_collection, self); + G_CALLBACK(_pop_menu_dictionary_goto_tag_collection), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); } if(d->collection[0]) { menuitem = gtk_menu_item_new_with_label(_("go back to work")); g_signal_connect(menuitem, "activate", - (GCallback)_pop_menu_dictionary_goto_collection_back, self); + G_CALLBACK(_pop_menu_dictionary_goto_collection_back), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); } } @@ -3470,8 +3470,8 @@ void gui_init(dt_lib_module_t *self) DT_TAG_SORT_COUNT_ID, (GtkTreeIterCompareFunc)_sort_tree_count_func, self, NULL); d->attached_liststore = liststore; g_object_set(G_OBJECT(view), "has-tooltip", TRUE, NULL); - g_signal_connect(G_OBJECT(view), "query-tooltip", - G_CALLBACK(_row_tooltip_setup), (gpointer)self); + g_signal_connect(view, "query-tooltip", + G_CALLBACK(_row_tooltip_setup), self); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(view, col); @@ -3487,7 +3487,7 @@ void gui_init(dt_lib_module_t *self) gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, _tree_tagname_show_attached, - (gpointer)self, NULL); + self, NULL); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(view), GTK_SELECTION_SINGLE); gtk_tree_view_set_model(view, GTK_TREE_MODEL(liststore)); @@ -3498,10 +3498,10 @@ void gui_init(dt_lib_module_t *self) "\npress Delete or double-click to detach" "\nright-click for other actions on attached tag," "\nTab to give the focus to entry")); - g_signal_connect(G_OBJECT(view), "button-press-event", - G_CALLBACK(_click_on_view_attached), (gpointer)self); - g_signal_connect(G_OBJECT(view), "key-press-event", - G_CALLBACK(_attached_key_pressed), (gpointer)self); + g_signal_connect(view, "button-press-event", + G_CALLBACK(_click_on_view_attached), self); + g_signal_connect(view, "key-press-event", + G_CALLBACK(_attached_key_pressed), self); g_signal_connect(gtk_tree_view_get_selection(view), "changed", G_CALLBACK(_tree_selection_changed), self); @@ -3524,7 +3524,7 @@ void gui_init(dt_lib_module_t *self) button = dtgtk_togglebutton_new(paint, 0, NULL); \ gtk_widget_set_tooltip_text(button, tooltip); \ gtk_box_pack_end(hbox, button, FALSE, TRUE, 0); \ - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(callback), self); \ + g_signal_connect(button, "clicked", G_CALLBACK(callback), self); \ dt_action_define(toggle, NULL, action, button, &dt_action_def_toggle); d->toggle_hide_button = NEW_TOGGLE_BUTTON @@ -3558,17 +3558,17 @@ void gui_init(dt_lib_module_t *self) "\npress shift+Tab to select the first attached user tag")); gtk_box_pack_start(hbox, w, TRUE, TRUE, 0); gtk_widget_add_events(GTK_WIDGET(w), GDK_KEY_RELEASE_MASK); - g_signal_connect(G_OBJECT(w), "changed", - G_CALLBACK(_tag_name_changed), (gpointer)self); - g_signal_connect(G_OBJECT(w), "key-press-event", - G_CALLBACK(_enter_key_pressed), (gpointer)self); + g_signal_connect(w, "changed", + G_CALLBACK(_tag_name_changed), self); + g_signal_connect(w, "key-press-event", + G_CALLBACK(_enter_key_pressed), self); d->entry = GTK_ENTRY(w); button = dtgtk_button_new(dtgtk_cairo_paint_multiply_small, 0, NULL); gtk_widget_set_tooltip_text(button, _("clear entry")); gtk_box_pack_end(hbox, button, FALSE, TRUE, 0); - g_signal_connect(G_OBJECT(button), "clicked", - G_CALLBACK(_clear_entry_button_callback), (gpointer)self); + g_signal_connect(button, "clicked", + G_CALLBACK(_clear_entry_button_callback), self); gtk_box_pack_start(box, GTK_WIDGET(hbox), FALSE, TRUE, 0); dt_gui_add_class(GTK_WIDGET(box), "dt_spacing_sw"); d->clear_button = button; @@ -3625,7 +3625,7 @@ void gui_init(dt_lib_module_t *self) g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_MIDDLE, (gchar *)0); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, - _tree_tagname_show_dictionary, (gpointer)self, NULL); + _tree_tagname_show_dictionary, self, NULL); gtk_tree_view_set_expander_column(view, col); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(view), GTK_SELECTION_SINGLE); @@ -3638,15 +3638,15 @@ void gui_init(dt_lib_module_t *self) "\nright-click for other actions on selected tag" "\nshift+Tab to give the focus to entry")); - g_signal_connect(G_OBJECT(view), "button-press-event", - G_CALLBACK(_click_on_view_dictionary), (gpointer)self); - g_signal_connect(G_OBJECT(view), "key-press-event", - G_CALLBACK(_dictionary_key_pressed), (gpointer)self); + g_signal_connect(view, "button-press-event", + G_CALLBACK(_click_on_view_dictionary), self); + g_signal_connect(view, "key-press-event", + G_CALLBACK(_dictionary_key_pressed), self); gtk_tree_view_set_model(view, GTK_TREE_MODEL(d->dictionary_listfilter)); g_object_unref(d->dictionary_listfilter); g_object_set(G_OBJECT(view), "has-tooltip", TRUE, NULL); - g_signal_connect(G_OBJECT(view), "query-tooltip", - G_CALLBACK(_row_tooltip_setup), (gpointer)self); + g_signal_connect(view, "query-tooltip", + G_CALLBACK(_row_tooltip_setup), self); g_signal_connect(gtk_tree_view_get_selection(view), "changed", G_CALLBACK(_tree_selection_changed), self); @@ -3848,7 +3848,7 @@ static void _lib_tagging_tag_show(dt_action_t *action) gtk_entry_completion_set_text_column(completion, DT_LIB_TAGGING_COL_PATH); gtk_entry_completion_set_inline_completion(completion, TRUE); gtk_entry_completion_set_popup_set_width(completion, FALSE); - g_signal_connect(G_OBJECT(completion), "match-selected", + g_signal_connect(completion, "match-selected", G_CALLBACK(_match_selected_func), self); gtk_entry_completion_set_match_func(completion, _completion_match_func, NULL, NULL); gtk_entry_set_completion(GTK_ENTRY(entry), completion); @@ -3967,7 +3967,7 @@ void _menuitem_preferences(GtkMenuItem *menuitem, void set_preferences(void *menu, dt_lib_module_t *self) { GtkWidget *mi = gtk_menu_item_new_with_label(_("preferences...")); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(_menuitem_preferences), self); + g_signal_connect(mi, "activate", G_CALLBACK(_menuitem_preferences), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } diff --git a/src/libs/tools/colorlabels.c b/src/libs/tools/colorlabels.c index 2c6831bd627e..2448a08004a0 100644 --- a/src/libs/tools/colorlabels.c +++ b/src/libs/tools/colorlabels.c @@ -44,9 +44,9 @@ typedef struct dt_lib_colorlabels_t } dt_lib_colorlabels_t; /* callback when a colorlabel button is clicked */ -static void _lib_colorlabels_button_clicked_callback(GtkWidget *w, - GdkEventButton *event, - dt_lib_module_t *self); +static gboolean _lib_colorlabels_button_clicked_callback(GtkWidget *w, + GdkEventButton *event, + dt_lib_module_t *self); gint _get_colorlabel(dt_lib_module_t *self, GtkWidget *w) { @@ -136,10 +136,10 @@ void gui_init(dt_lib_module_t *self) gtk_widget_set_tooltip_markup(button, tooltip); g_free(tooltip); gtk_box_pack_start(GTK_BOX(self->widget), button, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(button), "button-press-event", + g_signal_connect(button, "button-press-event", G_CALLBACK(_lib_colorlabels_button_clicked_callback), self); - g_signal_connect(G_OBJECT(button), "enter-notify-event", + g_signal_connect(button, "enter-notify-event", G_CALLBACK(_lib_colorlabels_enter_notify_callback), self); ac = dt_action_define(&darktable.control->actions_thumb, NULL, @@ -267,9 +267,9 @@ static void _lib_colorlabels_edit(dt_lib_module_t *self, } } -static void _lib_colorlabels_button_clicked_callback(GtkWidget *w, - GdkEventButton *event, - dt_lib_module_t *self) +static gboolean _lib_colorlabels_button_clicked_callback(GtkWidget *w, + GdkEventButton *event, + dt_lib_module_t *self) { dt_lib_colorlabels_t *d = self->data; @@ -290,6 +290,7 @@ static void _lib_colorlabels_button_clicked_callback(GtkWidget *w, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_COLORLABEL, imgs); } + return TRUE; } // clang-format off diff --git a/src/libs/tools/darktable.c b/src/libs/tools/darktable.c index 720c527b8e66..5073eb6ba08f 100644 --- a/src/libs/tools/darktable.c +++ b/src/libs/tools/darktable.c @@ -94,9 +94,9 @@ void gui_init(dt_lib_module_t *self) self->widget = gtk_event_box_new(); /* connect callbacks */ - g_signal_connect(G_OBJECT(self->widget), "draw", + g_signal_connect(self->widget, "draw", G_CALLBACK(_lib_darktable_draw_callback), self); - g_signal_connect(G_OBJECT(self->widget), "button-press-event", + g_signal_connect(self->widget, "button-press-event", G_CALLBACK(_lib_darktable_button_press_callback), self); /* create a cairo surface of dt icon */ diff --git a/src/libs/tools/filmstrip.c b/src/libs/tools/filmstrip.c index e8178a1a9d58..399463ecbd60 100644 --- a/src/libs/tools/filmstrip.c +++ b/src/libs/tools/filmstrip.c @@ -91,7 +91,7 @@ void gui_init(dt_lib_module_t *self) self->widget = gtk_event_box_new(); /* connect callbacks */ - g_signal_connect(G_OBJECT(self->widget), "draw", + g_signal_connect(self->widget, "draw", G_CALLBACK(_lib_filmstrip_draw_callback), self); /* initialize view manager proxy */ diff --git a/src/libs/tools/filter.c b/src/libs/tools/filter.c index 6ab6c4ca1efd..57c91de28bd3 100644 --- a/src/libs/tools/filter.c +++ b/src/libs/tools/filter.c @@ -102,7 +102,7 @@ void gui_init(dt_lib_module_t *self) GtkWidget *bt = dtgtk_button_new(dtgtk_cairo_paint_filtering_menu, 0, NULL); gtk_widget_set_tooltip_text(bt, _("filter preferences")); - g_signal_connect(G_OBJECT(bt), "button-press-event", G_CALLBACK(_pref_show), self); + g_signal_connect(bt, "button-press-event", G_CALLBACK(_pref_show), self); gtk_box_pack_start(GTK_BOX(self->widget), bt, FALSE, TRUE, 0); d->filter_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); diff --git a/src/libs/tools/global_toolbox.c b/src/libs/tools/global_toolbox.c index 5ab5b172282c..ac31640c2a5a 100644 --- a/src/libs/tools/global_toolbox.c +++ b/src/libs/tools/global_toolbox.c @@ -393,7 +393,7 @@ void gui_init(dt_lib_module_t *self) else gtk_widget_set_tooltip_text(d->grouping_button, _("collapse grouped images")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->grouping_button), darktable.gui->grouping); - g_signal_connect(G_OBJECT(d->grouping_button), "clicked", G_CALLBACK(_lib_filter_grouping_button_clicked), + g_signal_connect(d->grouping_button, "clicked", G_CALLBACK(_lib_filter_grouping_button_clicked), NULL); /* create the "show/hide overlays" button */ @@ -403,18 +403,18 @@ void gui_init(dt_lib_module_t *self) d->over_popup = gtk_popover_new(d->overlays_button); gtk_widget_set_size_request(d->over_popup, 350, -1); g_object_set(G_OBJECT(d->over_popup), "transitions-enabled", FALSE, NULL); - g_signal_connect(G_OBJECT(d->overlays_button), "clicked", G_CALLBACK(_overlays_show_popup), self); + g_signal_connect(d->overlays_button, "clicked", G_CALLBACK(_overlays_show_popup), self); // we register size of overlay icon to keep in sync thumbtable overlays - g_signal_connect(G_OBJECT(d->overlays_button), "size-allocate", G_CALLBACK(_main_icons_register_size), NULL); + g_signal_connect(d->overlays_button, "size-allocate", G_CALLBACK(_main_icons_register_size), NULL); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_container_add(GTK_CONTAINER(d->over_popup), vbox); -#define NEW_RADIO(widget, box, callback, label) \ +#define NEW_RADIO(widget, box, callback, label) \ rb = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(rb), _(label)); \ dt_action_define(ac, NULL, label, rb, &dt_action_def_button); \ - g_signal_connect(G_OBJECT(rb), "clicked", G_CALLBACK(callback), self); \ + g_signal_connect(rb, "clicked", G_CALLBACK(callback), self); \ gtk_box_pack_start(GTK_BOX(box), rb, TRUE, TRUE, 0); \ widget = rb; @@ -437,11 +437,11 @@ void gui_init(dt_lib_module_t *self) NEW_RADIO(d->over_r6, hbox, _overlays_toggle_button, N_("overlays block on mouse hover")); gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new(_("during (s)")), FALSE, FALSE, 0); d->over_timeout = gtk_spin_button_new_with_range(-1, 99, 1); - g_signal_connect(G_OBJECT(d->over_timeout), "value-changed", G_CALLBACK(_overlays_timeout_changed), self); + g_signal_connect(d->over_timeout, "value-changed", G_CALLBACK(_overlays_timeout_changed), self); gtk_box_pack_start(GTK_BOX(hbox), d->over_timeout, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(d->thumbnails_box), hbox, TRUE, TRUE, 0); d->over_tt = gtk_check_button_new_with_label(_("show tooltip")); - g_signal_connect(G_OBJECT(d->over_tt), "toggled", G_CALLBACK(_overlays_toggle_button), self); + g_signal_connect(d->over_tt, "toggled", G_CALLBACK(_overlays_toggle_button), self); gtk_widget_set_name(d->over_tt, "show-tooltip"); gtk_box_pack_start(GTK_BOX(d->thumbnails_box), d->over_tt, TRUE, TRUE, 0); @@ -463,11 +463,11 @@ void gui_init(dt_lib_module_t *self) NEW_RADIO(d->over_culling_r6, hbox, _overlays_toggle_culling_button, N_("overlays block on mouse hover")); gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new(_("during (s)")), FALSE, FALSE, 0); d->over_culling_timeout = gtk_spin_button_new_with_range(-1, 99, 1); - g_signal_connect(G_OBJECT(d->over_culling_timeout), "value-changed", G_CALLBACK(_overlays_timeout_changed), self); + g_signal_connect(d->over_culling_timeout, "value-changed", G_CALLBACK(_overlays_timeout_changed), self); gtk_box_pack_start(GTK_BOX(hbox), d->over_culling_timeout, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(d->culling_box), hbox, TRUE, TRUE, 0); d->over_culling_tt = gtk_check_button_new_with_label(_("show tooltip")); - g_signal_connect(G_OBJECT(d->over_culling_tt), "toggled", G_CALLBACK(_overlays_toggle_culling_button), self); + g_signal_connect(d->over_culling_tt, "toggled", G_CALLBACK(_overlays_toggle_culling_button), self); gtk_widget_set_name(d->over_culling_tt, "show-tooltip"); gtk_box_pack_start(GTK_BOX(d->culling_box), d->over_culling_tt, TRUE, TRUE, 0); @@ -480,7 +480,7 @@ void gui_init(dt_lib_module_t *self) d->help_button = dtgtk_togglebutton_new(dtgtk_cairo_paint_help, 0, NULL); dt_action_define(&darktable.control->actions_global, NULL, N_("help"), d->help_button, &dt_action_def_toggle); gtk_widget_set_tooltip_text(d->help_button, _("enable this, then click on a control element to see its online help")); - g_signal_connect(G_OBJECT(d->help_button), "clicked", G_CALLBACK(_lib_help_button_clicked), d); + g_signal_connect(d->help_button, "clicked", G_CALLBACK(_lib_help_button_clicked), d); /* create the shortcuts button */ d->keymap_button = dtgtk_togglebutton_new(dtgtk_cairo_paint_shortcut, 0, NULL); @@ -500,9 +500,9 @@ void gui_init(dt_lib_module_t *self) "dialog for more detailed configuration\n" "\n" "right-click to exit mapping mode")); - g_signal_connect(G_OBJECT(d->keymap_button), "clicked", G_CALLBACK(_lib_keymap_button_clicked), d); - g_signal_connect(G_OBJECT(d->keymap_button), "button-press-event", G_CALLBACK(_lib_keymap_button_press_release), d); - g_signal_connect(G_OBJECT(d->keymap_button), "button-release-event", G_CALLBACK(_lib_keymap_button_press_release), d); + g_signal_connect(d->keymap_button, "clicked", G_CALLBACK(_lib_keymap_button_clicked), d); + g_signal_connect(d->keymap_button, "button-press-event", G_CALLBACK(_lib_keymap_button_press_release), d); + g_signal_connect(d->keymap_button, "button-release-event", G_CALLBACK(_lib_keymap_button_press_release), d); // the rest of these is added in reverse order as they are always put at the end of the container. // that's done so that buttons added via Lua will come first. @@ -511,7 +511,7 @@ void gui_init(dt_lib_module_t *self) d->preferences_button = dtgtk_button_new(dtgtk_cairo_paint_preferences, 0, NULL); ac = dt_action_define(&darktable.control->actions_global, NULL, N_("preferences"), d->preferences_button, &dt_action_def_button); gtk_widget_set_tooltip_text(d->preferences_button, _("show global preferences")); - g_signal_connect(G_OBJECT(d->preferences_button), "clicked", G_CALLBACK(_lib_preferences_button_clicked), + g_signal_connect(d->preferences_button, "clicked", G_CALLBACK(_lib_preferences_button_clicked), NULL); // Register CMD+, for preferences (this is standard on macOS) @@ -573,7 +573,7 @@ static void _main_do_event_help(GdkEvent *event, gpointer data) if(event_widget == d->help_button) break; - dt_gui_show_help(event_widget); + dt_gui_show_help(event_widget, NULL); } handled = TRUE; break; @@ -670,7 +670,7 @@ static void _show_shortcuts_prefs(GtkWidget *w) gtk_window_move(GTK_WINDOW(shortcuts_dialog), _shortcuts_dialog_posize.x, _shortcuts_dialog_posize.y); gtk_window_resize(GTK_WINDOW(shortcuts_dialog), _shortcuts_dialog_posize.w, _shortcuts_dialog_posize.h); } - g_signal_connect(G_OBJECT(shortcuts_dialog), "configure-event", G_CALLBACK(_resize_shortcuts_dialog), NULL); + g_signal_connect(shortcuts_dialog, "configure-event", G_CALLBACK(_resize_shortcuts_dialog), NULL); //grab the content area of the dialog dt_gui_dialog_add(GTK_DIALOG(shortcuts_dialog), dt_shortcuts_prefs(w)); diff --git a/src/libs/tools/lighttable.c b/src/libs/tools/lighttable.c index f5a8b09bd51f..4cd3ca2bb154 100644 --- a/src/libs/tools/lighttable.c +++ b/src/libs/tools/lighttable.c @@ -461,7 +461,7 @@ void gui_init(dt_lib_module_t *self) dt_action_register(ac, NULL, _lib_lighttable_key_accel_toggle_filemanager, 0, 0); dt_gui_add_help_link(d->layout_filemanager, "layout_filemanager"); gtk_widget_set_tooltip_text(d->layout_filemanager, _("click to enter filemanager layout.")); - g_signal_connect(G_OBJECT(d->layout_filemanager), "button-release-event", + g_signal_connect(d->layout_filemanager, "button-release-event", G_CALLBACK(_lib_lighttable_layout_btn_release), self); d->layout_zoomable = dtgtk_togglebutton_new(dtgtk_cairo_paint_lt_mode_zoom, 0, NULL); @@ -469,7 +469,7 @@ void gui_init(dt_lib_module_t *self) dt_action_register(ac, NULL, _lib_lighttable_key_accel_toggle_zoomable, 0, 0); dt_gui_add_help_link(d->layout_zoomable, "layout_zoomable"); gtk_widget_set_tooltip_text(d->layout_zoomable, _("click to enter zoomable lighttable layout.")); - g_signal_connect(G_OBJECT(d->layout_zoomable), "button-release-event", + g_signal_connect(d->layout_zoomable, "button-release-event", G_CALLBACK(_lib_lighttable_layout_btn_release), self); d->layout_culling_fix = dtgtk_togglebutton_new(dtgtk_cairo_paint_lt_mode_culling_fixed, 0, NULL); @@ -477,14 +477,14 @@ void gui_init(dt_lib_module_t *self) dt_shortcut_register(ac, DT_ACTION_ELEMENT_DEFAULT, DT_ACTION_EFFECT_HOLD_TOGGLE, GDK_KEY_x, 0); dt_shortcut_register(ac, DT_ACTION_ELEMENT_CULLING_NO_RESTRICTION, DT_ACTION_EFFECT_HOLD_TOGGLE, GDK_KEY_x, GDK_SHIFT_MASK); dt_gui_add_help_link(d->layout_culling_fix, "layout_culling"); - g_signal_connect(G_OBJECT(d->layout_culling_fix), "button-release-event", + g_signal_connect(d->layout_culling_fix, "button-release-event", G_CALLBACK(_lib_lighttable_layout_btn_release), self); d->layout_culling_dynamic = dtgtk_togglebutton_new(dtgtk_cairo_paint_lt_mode_culling_dynamic, 0, NULL); ac = dt_action_define(ltv, NULL, N_("toggle culling dynamic mode"), d->layout_culling_dynamic, NULL); dt_action_register(ac, NULL, _lib_lighttable_key_accel_toggle_culling_dynamic_mode, GDK_KEY_x, GDK_CONTROL_MASK); dt_gui_add_help_link(d->layout_culling_dynamic, "layout_culling"); - g_signal_connect(G_OBJECT(d->layout_culling_dynamic), "button-release-event", + g_signal_connect(d->layout_culling_dynamic, "button-release-event", G_CALLBACK(_lib_lighttable_layout_btn_release), self); d->layout_preview = dtgtk_togglebutton_new(dtgtk_cairo_paint_lt_mode_fullpreview, 0, NULL); @@ -494,7 +494,7 @@ void gui_init(dt_lib_module_t *self) dt_shortcut_register(ac, DT_ACTION_ELEMENT_DEFAULT, DT_ACTION_EFFECT_HOLD, GDK_KEY_w, 0); dt_shortcut_register(ac, DT_ACTION_ELEMENT_PREVIEW_FOCUS_DETECT, DT_ACTION_EFFECT_HOLD, GDK_KEY_w, GDK_CONTROL_MASK); dt_gui_add_help_link(d->layout_preview, "layout_preview"); - g_signal_connect(G_OBJECT(d->layout_preview), "button-release-event", + g_signal_connect(d->layout_preview, "button-release-event", G_CALLBACK(_lib_lighttable_layout_btn_release), self); d->layout_box = dt_gui_hbox(d->layout_filemanager, d->layout_zoomable, @@ -516,14 +516,14 @@ void gui_init(dt_lib_module_t *self) dt_action_register(ac, NULL, _lib_lighttable_key_accel_toggle_restricted_mode, GDK_KEY_r, GDK_CONTROL_MASK); dt_gui_add_help_link(d->layout_culling_restricted, "layout_culling"); gtk_widget_set_no_show_all(d->layout_culling_restricted, TRUE); - g_signal_connect(G_OBJECT(d->layout_culling_restricted), "button-release-event", + g_signal_connect(d->layout_culling_restricted, "button-release-event", G_CALLBACK(_lib_lighttable_restricted_btn_release), self); self->widget = dt_gui_hbox(d->layout_box, d->zoom, d->layout_culling_restricted); _lib_lighttable_update_btn(self); - g_signal_connect(G_OBJECT(d->zoom), "value-changed", G_CALLBACK(_lib_lighttable_zoom_slider_changed), self); + g_signal_connect(d->zoom, "value-changed", G_CALLBACK(_lib_lighttable_zoom_slider_changed), self); darktable.view_manager->proxy.lighttable.module = self; darktable.view_manager->proxy.lighttable.set_zoom = _lib_lighttable_set_zoom; diff --git a/src/libs/tools/ratings.c b/src/libs/tools/ratings.c index e5fe913bbd4f..c2e656ca9081 100644 --- a/src/libs/tools/ratings.c +++ b/src/libs/tools/ratings.c @@ -96,12 +96,12 @@ void gui_init(dt_lib_module_t *self) /* connect callbacks */ gtk_widget_set_tooltip_text(drawing, _("set star rating for selected images")); gtk_widget_set_app_paintable(drawing, TRUE); - g_signal_connect(G_OBJECT(drawing), "draw", G_CALLBACK(_lib_ratings_draw_callback), self); - g_signal_connect(G_OBJECT(drawing), "button-press-event", G_CALLBACK(_lib_ratings_button_press_callback), self); - g_signal_connect(G_OBJECT(drawing), "button-release-event", G_CALLBACK(_lib_ratings_button_release_callback), + g_signal_connect(drawing, "draw", G_CALLBACK(_lib_ratings_draw_callback), self); + g_signal_connect(drawing, "button-press-event", G_CALLBACK(_lib_ratings_button_press_callback), self); + g_signal_connect(drawing, "button-release-event", G_CALLBACK(_lib_ratings_button_release_callback), self); - g_signal_connect(G_OBJECT(drawing), "motion-notify-event", G_CALLBACK(_lib_ratings_motion_notify_callback), self); - g_signal_connect(G_OBJECT(drawing), "leave-notify-event", G_CALLBACK(_lib_ratings_leave_notify_callback), self); + g_signal_connect(drawing, "motion-notify-event", G_CALLBACK(_lib_ratings_motion_notify_callback), self); + g_signal_connect(drawing, "leave-notify-event", G_CALLBACK(_lib_ratings_leave_notify_callback), self); gtk_box_pack_start(GTK_BOX(self->widget), drawing, TRUE, TRUE, 0); diff --git a/src/libs/tools/timeline.c b/src/libs/tools/timeline.c index 240472f884f9..5f9947f1ce98 100644 --- a/src/libs/tools/timeline.c +++ b/src/libs/tools/timeline.c @@ -1399,15 +1399,15 @@ void gui_init(dt_lib_module_t *self) | GDK_BUTTON_RELEASE_MASK | darktable.gui->scroll_mask | GDK_LEAVE_NOTIFY_MASK); - g_signal_connect(G_OBJECT(d->timeline), "draw", G_CALLBACK(_lib_timeline_draw_callback), self); - g_signal_connect(G_OBJECT(d->timeline), "button-press-event", G_CALLBACK(_lib_timeline_button_press_callback), + g_signal_connect(d->timeline, "draw", G_CALLBACK(_lib_timeline_draw_callback), self); + g_signal_connect(d->timeline, "button-press-event", G_CALLBACK(_lib_timeline_button_press_callback), self); - g_signal_connect(G_OBJECT(d->timeline), "button-release-event", + g_signal_connect(d->timeline, "button-release-event", G_CALLBACK(_lib_timeline_button_release_callback), self); - g_signal_connect(G_OBJECT(d->timeline), "scroll-event", G_CALLBACK(_lib_timeline_scroll_callback), self); - g_signal_connect(G_OBJECT(d->timeline), "motion-notify-event", G_CALLBACK(_lib_timeline_motion_notify_callback), + g_signal_connect(d->timeline, "scroll-event", G_CALLBACK(_lib_timeline_scroll_callback), self); + g_signal_connect(d->timeline, "motion-notify-event", G_CALLBACK(_lib_timeline_motion_notify_callback), self); - g_signal_connect(G_OBJECT(d->timeline), "leave-notify-event", G_CALLBACK(_lib_timeline_mouse_leave_callback), + g_signal_connect(d->timeline, "leave-notify-event", G_CALLBACK(_lib_timeline_mouse_leave_callback), self); gtk_box_pack_start(GTK_BOX(self->widget), d->timeline, TRUE, TRUE, 0); diff --git a/src/libs/tools/viewswitcher.c b/src/libs/tools/viewswitcher.c index c6743058d7a8..9a185e212b30 100644 --- a/src/libs/tools/viewswitcher.c +++ b/src/libs/tools/viewswitcher.c @@ -82,7 +82,7 @@ int position(const dt_lib_module_t *self) #define SHORTCUT_TOOLTIP(v, w) dt_action_define(&darktable.control->actions_global, "switch views", v->module_name, w, NULL); -static void _dropdown_changed(GtkComboBox *widget, dt_lib_viewswitcher_t *d) +static void _dropdown_changed(GtkWidget *widget, dt_lib_viewswitcher_t *d) { GtkTreeIter iter; if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(d->dropdown), &iter)) @@ -151,7 +151,7 @@ void gui_init(dt_lib_module_t *self) gtk_list_store_insert_with_values(model, NULL, -1, TEXT_COLUMN, _("other"), VIEW_COLUMN, NULL, SENSITIVE_COLUMN, 0, -1); gtk_box_pack_start(GTK_BOX(self->widget), d->dropdown, FALSE, FALSE, 0); - g_signal_connect(G_OBJECT(d->dropdown), "changed", G_CALLBACK(_dropdown_changed), d); + g_signal_connect(d->dropdown, "changed", G_CALLBACK(_dropdown_changed), d); } gtk_list_store_insert_with_values(model, NULL, -1, TEXT_COLUMN, view->name(view), VIEW_COLUMN, view, SENSITIVE_COLUMN, gimping ? 0 : 1, -1); @@ -258,13 +258,13 @@ static GtkWidget *_lib_viewswitcher_create_label(dt_view_t *view) gtk_widget_set_state_flags(b, GTK_STATE_FLAG_NORMAL, TRUE); /* connect button press handler */ - g_signal_connect(G_OBJECT(eb), "button-press-event", G_CALLBACK(_lib_viewswitcher_button_press_callback), view); + g_signal_connect(eb, "button-press-event", G_CALLBACK(_lib_viewswitcher_button_press_callback), view); /* set enter/leave notify events and connect signals */ gtk_widget_add_events(GTK_WIDGET(eb), GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); - g_signal_connect(G_OBJECT(eb), "enter-notify-event", G_CALLBACK(_lib_viewswitcher_enter_leave_notify_callback), b); - g_signal_connect(G_OBJECT(eb), "leave-notify-event", G_CALLBACK(_lib_viewswitcher_enter_leave_notify_callback), b); + g_signal_connect(eb, "enter-notify-event", G_CALLBACK(_lib_viewswitcher_enter_leave_notify_callback), b); + g_signal_connect(eb, "leave-notify-event", G_CALLBACK(_lib_viewswitcher_enter_leave_notify_callback), b); return eb; } diff --git a/src/lua/preferences.c b/src/lua/preferences.c index b198f0588f44..bf3df7a0b043 100644 --- a/src/lua/preferences.c +++ b/src/lua/preferences.c @@ -501,8 +501,8 @@ static void update_widget_enum(pref_element* cur_elt, GtkWidget* dialog, GtkWidg { char pref_name[1024]; get_pref_name(pref_name, sizeof(pref_name), cur_elt->script, cur_elt->name); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(reset_widget_enum), cur_elt); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(response_callback_enum), cur_elt); + g_signal_connect(labelev, "button-press-event", G_CALLBACK(reset_widget_enum), cur_elt); + g_signal_connect(dialog, "response", G_CALLBACK(response_callback_enum), cur_elt); gtk_combo_box_set_active(GTK_COMBO_BOX(cur_elt->widget), 0); const char *value = dt_conf_get_string_const(pref_name); do { @@ -533,8 +533,8 @@ static void update_widget_dir(pref_element* cur_elt, GtkWidget* dialog, GtkWidge get_pref_name(pref_name, sizeof(pref_name), cur_elt->script, cur_elt->name); const char *str = dt_conf_get_string_const(pref_name); gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(cur_elt->widget), str); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(reset_widget_dir), cur_elt); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(response_callback_dir), cur_elt); + g_signal_connect(labelev, "button-press-event", G_CALLBACK(reset_widget_dir), cur_elt); + g_signal_connect(dialog, "response", G_CALLBACK(response_callback_dir), cur_elt); } @@ -544,8 +544,8 @@ static void update_widget_file(pref_element* cur_elt, GtkWidget* dialog, GtkWidg get_pref_name(pref_name, sizeof(pref_name), cur_elt->script, cur_elt->name); const char *str = dt_conf_get_string_const(pref_name); gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(cur_elt->widget), str); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(reset_widget_file), cur_elt); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(response_callback_file), cur_elt); + g_signal_connect(labelev, "button-press-event", G_CALLBACK(reset_widget_file), cur_elt); + g_signal_connect(dialog, "response", G_CALLBACK(response_callback_file), cur_elt); } @@ -553,8 +553,8 @@ static void update_widget_string(pref_element* cur_elt, GtkWidget* dialog, GtkWi { char pref_name[1024]; get_pref_name(pref_name, sizeof(pref_name), cur_elt->script, cur_elt->name); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(reset_widget_string), cur_elt); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(response_callback_string), cur_elt); + g_signal_connect(labelev, "button-press-event", G_CALLBACK(reset_widget_string), cur_elt); + g_signal_connect(dialog, "response", G_CALLBACK(response_callback_string), cur_elt); const char *str = dt_conf_get_string_const(pref_name); gtk_entry_set_text(GTK_ENTRY(cur_elt->widget), str); } @@ -564,8 +564,8 @@ static void update_widget_bool(pref_element* cur_elt, GtkWidget* dialog, GtkWidg { char pref_name[1024]; get_pref_name(pref_name, sizeof(pref_name), cur_elt->script, cur_elt->name); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(click_widget_bool), cur_elt); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(response_callback_bool), cur_elt); + g_signal_connect(labelev, "button-press-event", G_CALLBACK(click_widget_bool), cur_elt); + g_signal_connect(dialog, "response", G_CALLBACK(response_callback_bool), cur_elt); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cur_elt->widget), dt_conf_get_bool(pref_name)); } @@ -575,8 +575,8 @@ static void update_widget_int(pref_element* cur_elt, GtkWidget* dialog, GtkWidge char pref_name[1024]; get_pref_name(pref_name, sizeof(pref_name), cur_elt->script, cur_elt->name); gtk_spin_button_set_value(GTK_SPIN_BUTTON(cur_elt->widget), dt_conf_get_int(pref_name)); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(reset_widget_int), cur_elt); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(response_callback_int), cur_elt); + g_signal_connect(labelev, "button-press-event", G_CALLBACK(reset_widget_int), cur_elt); + g_signal_connect(dialog, "response", G_CALLBACK(response_callback_int), cur_elt); } @@ -585,8 +585,8 @@ static void update_widget_float(pref_element* cur_elt, GtkWidget* dialog, GtkWid char pref_name[1024]; get_pref_name(pref_name, sizeof(pref_name), cur_elt->script, cur_elt->name); gtk_spin_button_set_value(GTK_SPIN_BUTTON(cur_elt->widget), dt_conf_get_float(pref_name)); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(reset_widget_float), cur_elt); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(response_callback_float), cur_elt); + g_signal_connect(labelev, "button-press-event", G_CALLBACK(reset_widget_float), cur_elt); + g_signal_connect(dialog, "response", G_CALLBACK(response_callback_float), cur_elt); } @@ -599,8 +599,8 @@ static void update_widget_lua(pref_element* cur_elt, GtkWidget* dialog, GtkWidge lua_pushstring(L, "reset"); lua_call(L, 2, 0); dt_lua_unlock(); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(reset_widget_lua), cur_elt); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(response_callback_lua), cur_elt); + g_signal_connect(labelev, "button-press-event", G_CALLBACK(reset_widget_lua), cur_elt); + g_signal_connect(dialog, "response", G_CALLBACK(response_callback_lua), cur_elt); } diff --git a/src/lua/widget/container.c b/src/lua/widget/container.c index ec5045d025b0..4f5e3bd959af 100644 --- a/src/lua/widget/container.c +++ b/src/lua/widget/container.c @@ -49,7 +49,7 @@ static int container_reset(lua_State* L) return 0; } -static void on_child_added(GtkContainer *container,GtkWidget *child,lua_container user_data) +static void on_child_added(GtkWidget *container,GtkWidget *child,lua_container user_data) { dt_lua_async_call_alien(dt_lua_widget_trigger_callback, 0,NULL,NULL, @@ -59,7 +59,7 @@ static void on_child_added(GtkContainer *container,GtkWidget *child,lua_containe LUA_ASYNC_DONE); } -static void on_child_removed(GtkContainer *container,GtkWidget *child,lua_container user_data) +static void on_child_removed(GtkWidget *container,GtkWidget *child,lua_container user_data) { dt_lua_async_call_alien(dt_lua_widget_trigger_callback, 0,NULL,NULL, diff --git a/src/lua/widget/widget.c b/src/lua/widget/widget.c index f0fbe7abbdf8..d8194ac9417d 100644 --- a/src/lua/widget/widget.c +++ b/src/lua/widget/widget.c @@ -107,7 +107,7 @@ static int get_widget_params(lua_State *L) lua_pushnil(L); /* first key */ while(lua_next(L, -2) != 0) { - g_signal_connect(widget->widget, lua_tostring(L,-2), G_CALLBACK(lua_touserdata(L,-1)), widget); + g_signal_connect_data(widget->widget, lua_tostring(L,-2), G_CALLBACK(lua_touserdata(L,-1)), widget, NULL, 0); lua_pop(L,1); } lua_pop(L,1); diff --git a/src/osx/osx.mm b/src/osx/osx.mm index 7b7132c7bb81..1a3276128978 100644 --- a/src/osx/osx.mm +++ b/src/osx/osx.mm @@ -86,7 +86,7 @@ void dt_osx_disallow_fullscreen(GtkWidget *widget) if(gtk_widget_get_realized(widget)) dt_osx_disable_fullscreen(widget); else - g_signal_connect(G_OBJECT(widget), "realize", G_CALLBACK(dt_osx_disable_fullscreen), NULL); + g_signal_connect(widget, "realize", G_CALLBACK(dt_osx_disable_fullscreen), NULL); #endif #endif } diff --git a/src/views/darkroom.c b/src/views/darkroom.c index f96f077bca2b..a53fc51811eb 100644 --- a/src/views/darkroom.c +++ b/src/views/darkroom.c @@ -2456,7 +2456,7 @@ void gui_init(dt_view_t *self) dt_action_define(sa, NULL, N_("quick access to presets"), favorite_presets, &dt_action_def_button); gtk_widget_set_tooltip_text(favorite_presets, _("quick access to presets")); - g_signal_connect(G_OBJECT(favorite_presets), "clicked", + g_signal_connect(favorite_presets, "clicked", G_CALLBACK(_darkroom_ui_favorite_presets_popupmenu), NULL); dt_gui_add_help_link(favorite_presets, "favorite_presets"); @@ -2466,7 +2466,7 @@ void gui_init(dt_view_t *self) /* create quick styles popup menu tool */ GtkWidget *styles = dtgtk_button_new(dtgtk_cairo_paint_styles, 0, NULL); dt_action_define(sa, NULL, N_("quick access to styles"), styles, &dt_action_def_button); - g_signal_connect(G_OBJECT(styles), "clicked", + g_signal_connect(styles, "clicked", G_CALLBACK(_darkroom_ui_apply_style_popupmenu), NULL); gtk_widget_set_tooltip_text(styles, _("quick access for applying any of your styles")); dt_gui_add_help_link(styles, "bottom_panel_styles"); @@ -2477,7 +2477,7 @@ void gui_init(dt_view_t *self) dev->second_wnd_button = dtgtk_togglebutton_new(dtgtk_cairo_paint_display2, 0, NULL); dt_action_define(sa, NULL, N_("second window"), dev->second_wnd_button, &dt_action_def_toggle); - g_signal_connect(G_OBJECT(dev->second_wnd_button), "clicked", + g_signal_connect(dev->second_wnd_button, "clicked", G_CALLBACK(_second_window_quickbutton_clicked),dev); gtk_widget_set_tooltip_text(dev->second_wnd_button, _("display a second darkroom image window")); @@ -2492,7 +2492,7 @@ void gui_init(dt_view_t *self) &dt_action_def_toggle); gtk_widget_set_tooltip_text(dev->color_assessment.button, _("toggle color assessment conditions\nright-click for options")); dt_shortcut_register(ac, 0, 0, GDK_KEY_b, GDK_CONTROL_MASK); - g_signal_connect(G_OBJECT(dev->color_assessment.button), "toggled", + g_signal_connect(dev->color_assessment.button, "toggled", G_CALLBACK(_full_color_assessment_callback), dev); dt_view_manager_module_toolbox_add(darktable.view_manager, dev->color_assessment.button, DT_VIEW_DARKROOM); @@ -2511,7 +2511,7 @@ void gui_init(dt_view_t *self) gtk_widget_set_tooltip_text(border_width_slider, _("total border width in relation to the screen size for the assessment mode.\n" "this includes the outer gray part plus the inner white frame.")); - g_signal_connect(G_OBJECT(border_width_slider), "value-changed", + g_signal_connect(border_width_slider, "value-changed", G_CALLBACK(_color_assessment_border_width_callback), dev); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(border_width_slider), TRUE, TRUE, 0); @@ -2523,7 +2523,7 @@ void gui_init(dt_view_t *self) dt_bauhaus_widget_set_label(border_ratio_slider, N_("color_assessment"), N_("white border ratio")); gtk_widget_set_tooltip_text(border_ratio_slider, _("the border ratio specifies the fraction of the white part of the border.")); - g_signal_connect(G_OBJECT(border_ratio_slider), "value-changed", + g_signal_connect(border_ratio_slider, "value-changed", G_CALLBACK(_color_assessment_border_white_ratio_callback), dev); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(border_ratio_slider), TRUE, TRUE, 0); @@ -2539,7 +2539,7 @@ void gui_init(dt_view_t *self) (dev->late_scaling.button, _("toggle high quality processing." " if activated darktable processes image data as it does while exporting")); - g_signal_connect(G_OBJECT(dev->late_scaling.button), "clicked", + g_signal_connect(dev->late_scaling.button, "clicked", G_CALLBACK(_latescaling_quickbutton_clicked), dev); dt_view_manager_module_toolbox_add(darktable.view_manager, dev->late_scaling.button, DT_VIEW_DARKROOM); @@ -2557,7 +2557,7 @@ void gui_init(dt_view_t *self) dt_shortcut_register(ac, 0, 0, GDK_KEY_o, GDK_SHIFT_MASK); gtk_widget_set_tooltip_text(dev->rawoverexposed.button, _("toggle indication of raw overexposure\nright-click for options")); - g_signal_connect(G_OBJECT(dev->rawoverexposed.button), "clicked", + g_signal_connect(dev->rawoverexposed.button, "clicked", G_CALLBACK(_rawoverexposed_quickbutton_clicked), dev); dt_view_manager_module_toolbox_add(darktable.view_manager, dev->rawoverexposed.button, DT_VIEW_DARKROOM); @@ -2605,7 +2605,7 @@ void gui_init(dt_view_t *self) N_("clipping threshold")); gtk_widget_set_tooltip_text( threshold, _("threshold of what shall be considered overexposed\n1.0 - white level\n0.0 - black level")); - g_signal_connect(G_OBJECT(threshold), "value-changed", + g_signal_connect(threshold, "value-changed", G_CALLBACK(_rawoverexposed_threshold_callback), dev); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(threshold), TRUE, TRUE, 0); @@ -2624,7 +2624,7 @@ void gui_init(dt_view_t *self) dt_shortcut_register(ac, 0, 0, GDK_KEY_o, 0); gtk_widget_set_tooltip_text(dev->overexposed.button, _("toggle clipping indication\nright-click for options")); - g_signal_connect(G_OBJECT(dev->overexposed.button), "clicked", + g_signal_connect(dev->overexposed.button, "clicked", G_CALLBACK(_overexposed_quickbutton_clicked), dev); dt_view_manager_module_toolbox_add(darktable.view_manager, dev->overexposed.button, DT_VIEW_DARKROOM); @@ -2680,7 +2680,7 @@ void gui_init(dt_view_t *self) "typical color glossy prints produce black at -8.00 EV,\n" "typical B&W glossy prints produce black at -9.00 EV." )); - g_signal_connect(G_OBJECT(lower), "value-changed", + g_signal_connect(lower, "value-changed", G_CALLBACK(_lower_callback), dev); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(lower), TRUE, TRUE, 0); @@ -2692,7 +2692,7 @@ void gui_init(dt_view_t *self) /* xgettext:no-c-format */ gtk_widget_set_tooltip_text(upper, _("clipping threshold for the white point.\n" "100% is peak medium luminance.")); - g_signal_connect(G_OBJECT(upper), "value-changed", G_CALLBACK(_upper_callback), dev); + g_signal_connect(upper, "value-changed", G_CALLBACK(_upper_callback), dev); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(upper), TRUE, TRUE, 0); gtk_widget_show_all(vbox); @@ -2707,7 +2707,7 @@ void gui_init(dt_view_t *self) dt_shortcut_register(ac, 0, 0, GDK_KEY_s, GDK_CONTROL_MASK); gtk_widget_set_tooltip_text(dev->profile.softproof_button, _("toggle softproofing\nright-click for profile options")); - g_signal_connect(G_OBJECT(dev->profile.softproof_button), "clicked", + g_signal_connect(dev->profile.softproof_button, "clicked", G_CALLBACK(_softproof_quickbutton_clicked), dev); dt_view_manager_module_toolbox_add(darktable.view_manager, dev->profile.softproof_button, DT_VIEW_DARKROOM); @@ -2720,7 +2720,7 @@ void gui_init(dt_view_t *self) dt_shortcut_register(ac, 0, 0, GDK_KEY_g, GDK_CONTROL_MASK); gtk_widget_set_tooltip_text(dev->profile.gamut_button, _("toggle gamut checking\nright-click for profile options")); - g_signal_connect(G_OBJECT(dev->profile.gamut_button), "clicked", + g_signal_connect(dev->profile.gamut_button, "clicked", G_CALLBACK(_gamut_quickbutton_clicked), dev); dt_view_manager_module_toolbox_add(darktable.view_manager, dev->profile.gamut_button, DT_VIEW_DARKROOM); @@ -2854,15 +2854,15 @@ void gui_init(dt_view_t *self) gtk_widget_set_tooltip_markup(histogram_profile, tooltip); g_free(tooltip); - g_signal_connect(G_OBJECT(display_profile), "value-changed", + g_signal_connect(display_profile, "value-changed", G_CALLBACK(_display_profile_callback), dev); - g_signal_connect(G_OBJECT(display2_profile), "value-changed", + g_signal_connect(display2_profile, "value-changed", G_CALLBACK(_display2_profile_callback), dev); - g_signal_connect(G_OBJECT(display2_color_assessment), "toggled", + g_signal_connect(display2_color_assessment, "toggled", G_CALLBACK(_display2_color_assessment_callback), dev); - g_signal_connect(G_OBJECT(softproof_profile), "value-changed", + g_signal_connect(softproof_profile, "value-changed", G_CALLBACK(_softproof_profile_callback), dev); - g_signal_connect(G_OBJECT(histogram_profile), "value-changed", + g_signal_connect(histogram_profile, "value-changed", G_CALLBACK(_histogram_profile_callback), dev); _update_softproof_gamut_checking(dev); @@ -2903,7 +2903,7 @@ void gui_init(dt_view_t *self) darktable.view_manager->guides_popover = dt_guides_popover(self, darktable.view_manager->guides_toggle); g_object_ref(darktable.view_manager->guides_popover); - g_signal_connect(G_OBJECT(darktable.view_manager->guides_toggle), "clicked", + g_signal_connect(darktable.view_manager->guides_toggle, "clicked", G_CALLBACK(_guides_quickbutton_clicked), dev); connect_button_press_release(darktable.view_manager->guides_toggle, darktable.view_manager->guides_popover); @@ -4016,24 +4016,24 @@ static void _darkroom_display_second_window(dt_develop_t *dev) | darktable.gui->scroll_mask); /* connect callbacks */ - g_signal_connect(G_OBJECT(dev->preview2.widget), "draw", + g_signal_connect(dev->preview2.widget, "draw", G_CALLBACK(_second_window_draw_callback), dev); - g_signal_connect(G_OBJECT(dev->preview2.widget), "scroll-event", + g_signal_connect(dev->preview2.widget, "scroll-event", G_CALLBACK(_second_window_scrolled_callback), dev); - g_signal_connect(G_OBJECT(dev->preview2.widget), "button-press-event", + g_signal_connect(dev->preview2.widget, "button-press-event", G_CALLBACK(_second_window_button_pressed_callback), dev); - g_signal_connect(G_OBJECT(dev->preview2.widget), "button-release-event", + g_signal_connect(dev->preview2.widget, "button-release-event", G_CALLBACK(_second_window_button_released_callback), dev); - g_signal_connect(G_OBJECT(dev->preview2.widget), "motion-notify-event", + g_signal_connect(dev->preview2.widget, "motion-notify-event", G_CALLBACK(_second_window_mouse_moved_callback), dev); - g_signal_connect(G_OBJECT(dev->preview2.widget), "leave-notify-event", + g_signal_connect(dev->preview2.widget, "leave-notify-event", G_CALLBACK(_second_window_leave_callback), dev); - g_signal_connect(G_OBJECT(dev->preview2.widget), "configure-event", + g_signal_connect(dev->preview2.widget, "configure-event", G_CALLBACK(_second_window_configure_callback), dev); - g_signal_connect(G_OBJECT(dev->second_wnd), "delete-event", + g_signal_connect(dev->second_wnd, "delete-event", G_CALLBACK(_second_window_delete_callback), dev); - g_signal_connect(G_OBJECT(dev->second_wnd), "event", + g_signal_connect(dev->second_wnd, "event", G_CALLBACK(dt_shortcut_dispatcher), NULL); _darkroom_ui_second_window_init(dev->second_wnd, dev); diff --git a/src/views/lighttable.c b/src/views/lighttable.c index 0d8e7bb990a9..4f39913887ad 100644 --- a/src/views/lighttable.c +++ b/src/views/lighttable.c @@ -1243,7 +1243,7 @@ void gui_init(dt_view_t *self) lib->profile_floating_window = gtk_popover_new(profile_button); g_object_set(G_OBJECT(lib->profile_floating_window), "transitions-enabled", FALSE, NULL); - g_signal_connect_swapped(G_OBJECT(profile_button), "button-press-event", + g_signal_connect_swapped(profile_button, "button-press-event", G_CALLBACK(gtk_widget_show_all), lib->profile_floating_window); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); @@ -1310,9 +1310,9 @@ void gui_init(dt_view_t *self) gtk_widget_set_tooltip_markup(display2_profile, tooltip); g_free(tooltip); - g_signal_connect(G_OBJECT(display_profile), "value-changed", G_CALLBACK(_profile_display_profile_callback), NULL); + g_signal_connect(display_profile, "value-changed", G_CALLBACK(_profile_display_profile_callback), NULL); - g_signal_connect(G_OBJECT(display2_profile), "value-changed", G_CALLBACK(_profile_display2_profile_callback), + g_signal_connect(display2_profile, "value-changed", G_CALLBACK(_profile_display2_profile_callback), NULL); // update the gui when profiles change diff --git a/src/views/map.c b/src/views/map.c index 497bfb3ce24d..a02d33e290aa 100644 --- a/src/views/map.c +++ b/src/views/map.c @@ -777,14 +777,14 @@ void init(dt_view_t *self) g_signal_connect(GTK_WIDGET(lib->map), "changed", G_CALLBACK(_view_map_changed_callback), self); - g_signal_connect_after(G_OBJECT(lib->map), "button-press-event", + g_signal_connect_after(lib->map, "button-press-event", G_CALLBACK(_view_map_button_press_callback), self); - g_signal_connect_after(G_OBJECT(lib->map), "button-release-event", + g_signal_connect_after(lib->map, "button-release-event", G_CALLBACK(_view_map_button_release_callback), self); - g_signal_connect(G_OBJECT(lib->map), "motion-notify-event", + g_signal_connect(lib->map, "motion-notify-event", G_CALLBACK(_view_map_motion_notify_callback), self); - g_signal_connect(G_OBJECT(lib->map), "drag-motion", + g_signal_connect(lib->map, "drag-motion", G_CALLBACK(_view_map_drag_motion_callback), self); } diff --git a/src/views/view.c b/src/views/view.c index bebc33493f90..7b8d60653fb2 100644 --- a/src/views/view.c +++ b/src/views/view.c @@ -1501,7 +1501,7 @@ void dt_view_accels_show(dt_view_manager_t *vm) vm->accels_window.sticky_btn = dtgtk_button_new(dtgtk_cairo_paint_multiinstance, 0, NULL); gtk_widget_set_tooltip_text(vm->accels_window.sticky_btn, _("switch to a classic window which will stay open after key release")); - g_signal_connect(G_OBJECT(vm->accels_window.sticky_btn), "button-press-event", + g_signal_connect(vm->accels_window.sticky_btn, "button-press-event", G_CALLBACK(_accels_window_sticky), vm); dt_gui_add_class(vm->accels_window.sticky_btn, "dt_accels_stick"); diff --git a/tools/generate_prefs.xsl b/tools/generate_prefs.xsl index 58cf1b30f523..73225385dfa6 100644 --- a/tools/generate_prefs.xsl +++ b/tools/generate_prefs.xsl @@ -188,7 +188,7 @@ static void wrapup_pref(const gchar *name, gtk_grid_attach(GTK_GRID(grid), labdef, 1, *line, 1, 1); gtk_grid_attach(GTK_GRID(grid), widget, 2, (*line)++, 1, 1); gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(callback), (gpointer)widget); + g_signal_connect(labelev, "button-press-event", G_CALLBACK(callback), widget); } static gboolean click_widget_label(GtkWidget *label, GdkEventButton *event, GtkWidget *widget) @@ -302,14 +302,14 @@ gboolean restart_required = FALSE; - static void preferences_changed_callback_ (GtkWidget *widget, gpointer user_data) { + static void preferences_changed_callback_ (GtkWidget *widget, GtkWidget *label) { restart_required = TRUE; set_widget_label_default(widget, " - ", GTK_WIDGET(user_data), factor); + ", label, factor); } @@ -561,8 +561,8 @@ static void init_tab_generated(GtkWidget *dialog, GtkWidget *stack) gchar *setting = dt_conf_get_string(""); gtk_text_buffer_set_text(buffer, setting, strlen(setting)); g_free(setting); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_), widget); - g_signal_connect(G_OBJECT(widget), "key-press-event", G_CALLBACK(handle_enter_key), NULL); + g_signal_connect(dialog, "response", G_CALLBACK(preferences_response_callback_), widget); + g_signal_connect(widget, "key-press-event", G_CALLBACK(handle_enter_key), NULL); snprintf(tooltip, 1024, _("double click to reset to `%s'"), ""); gtk_widget_set_tooltip_text(labelev, tooltip); @@ -575,8 +575,8 @@ static void init_tab_generated(GtkWidget *dialog, GtkWidget *stack) gtk_entry_set_text(GTK_ENTRY(widget), setting); g_free(setting); gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget); - g_signal_connect(G_OBJECT(widget), "changed", G_CALLBACK(preferences_changed_callback_), labdef); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_), widget); + g_signal_connect(widget, "changed", G_CALLBACK(preferences_changed_callback_), labdef); + g_signal_connect(dialog, "response", G_CALLBACK(preferences_response_callback_), widget); snprintf(tooltip, 1024, _("double click to reset to `%s'"), ""); gtk_widget_set_tooltip_text(labelev, tooltip); @@ -590,8 +590,8 @@ static void init_tab_generated(GtkWidget *dialog, GtkWidget *stack) gchar *setting = dt_conf_get_string(""); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(widget), setting); g_free(setting); - g_signal_connect(G_OBJECT(widget), "selection-changed", G_CALLBACK(preferences_changed_callback_), labdef); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_), widget); + g_signal_connect(widget, "selection-changed", G_CALLBACK(preferences_changed_callback_), labdef); + g_signal_connect(dialog, "response", G_CALLBACK(preferences_response_callback_), widget); gchar *default_path = dt_conf_expand_default_dir(""); snprintf(tooltip, 1024, _("double click to reset to `%s'"), default_path); g_free(default_path); @@ -613,8 +613,8 @@ static void init_tab_generated(GtkWidget *dialog, GtkWidget *stack) gtk_size_group_add_widget(widget_group, widget); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(widget), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), dt_conf_get_int("") * factor); - g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_), labdef); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_), widget); + g_signal_connect(widget, "value-changed", G_CALLBACK(preferences_changed_callback_), labdef); + g_signal_connect(dialog, "response", G_CALLBACK(preferences_response_callback_), widget); snprintf(tooltip, 1024, _("double click to reset to `%d'"), (int)( * factor)); gtk_widget_set_tooltip_text(labelev, tooltip); @@ -632,8 +632,8 @@ static void init_tab_generated(GtkWidget *dialog, GtkWidget *stack) gtk_size_group_add_widget(widget_group, widget); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(widget), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), dt_conf_get_int64("") * factor); - g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_), labdef); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_), widget); + g_signal_connect(widget, "value-changed", G_CALLBACK(preferences_changed_callback_), labdef); + g_signal_connect(dialog, "response", G_CALLBACK(preferences_response_callback_), widget); char value[100]; snprintf(value, 100, "%"G_GINT64_FORMAT"",(gint64)( * factor)); snprintf(tooltip, 1024, _("double click to reset to `%s'"), value); @@ -651,8 +651,8 @@ static void init_tab_generated(GtkWidget *dialog, GtkWidget *stack) widget = gtk_spin_button_new_with_range(min, max, 0.001f); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(widget), 5); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), dt_conf_get_float("") * factor); - g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_), labdef); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_), widget); + g_signal_connect(widget, "value-changed", G_CALLBACK(preferences_changed_callback_), labdef); + g_signal_connect(dialog, "response", G_CALLBACK(preferences_response_callback_), widget); snprintf(tooltip, 1024, _("double click to reset to `%.03f'"), * factor); gtk_widget_set_tooltip_text(labelev, tooltip); @@ -661,8 +661,8 @@ static void init_tab_generated(GtkWidget *dialog, GtkWidget *stack) widget = gtk_check_button_new(); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), dt_conf_get_bool("")); - g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(preferences_changed_callback_), labdef); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_), widget); + g_signal_connect(widget, "toggled", G_CALLBACK(preferences_changed_callback_), labdef); + g_signal_connect(dialog, "response", G_CALLBACK(preferences_response_callback_), widget); snprintf(tooltip, 1024, _("double click to reset to `%s'"), C_("preferences", "")); gtk_widget_set_tooltip_text(labelev, tooltip); @@ -681,8 +681,8 @@ static void init_tab_generated(GtkWidget *dialog, GtkWidget *stack) gtk_widget_set_halign(widget, GTK_ALIGN_START); gtk_size_group_add_widget(widget_group, widget); - g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_), labdef); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_), widget); + g_signal_connect(widget, "value-changed", G_CALLBACK(preferences_changed_callback_), labdef); + g_signal_connect(dialog, "response", G_CALLBACK(preferences_response_callback_), widget); snprintf(tooltip, 1024, _("double click to reset to `%s'"), C_("preferences", "")); gtk_widget_set_tooltip_text(labelev, tooltip);