static void _samples_mode_changed(GtkComboBox *widget, gpointer p) { dt_conf_set_int("ui_last/colorsamples_model", gtk_combo_box_get_active(widget)); _update_samples_output((dt_lib_module_t *)p); }
static void _add_sample(GtkButton *widget, gpointer self) { dt_lib_colorpicker_t *data = ((dt_lib_module_t *)self)->data; dt_colorpicker_sample_t *sample = (dt_colorpicker_sample_t *)malloc(sizeof(dt_colorpicker_sample_t)); darktable.lib->proxy.colorpicker.live_samples = g_slist_append(darktable.lib->proxy.colorpicker.live_samples, sample); dt_iop_module_t *module = get_colorout_module(); int i; sample->locked = 0; sample->rgb.red = 0.7; sample->rgb.green = 0.7; sample->rgb.blue = 0.7; sample->rgb.alpha = 1.0; // Initializing the UI sample->container = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); gtk_box_pack_start(GTK_BOX(data->samples_container), sample->container, TRUE, TRUE, 0); sample->color_patch = gtk_drawing_area_new(); gtk_widget_set_size_request(sample->color_patch, DT_PIXEL_APPLY_DPI(40), -1); gtk_widget_set_events(sample->color_patch, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK); gtk_widget_set_tooltip_text(sample->color_patch, _("hover to highlight sample on canvas, " "click to lock sample")); gtk_box_pack_start(GTK_BOX(sample->container), sample->color_patch, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(sample->color_patch), "enter-notify-event", G_CALLBACK(_live_sample_enter), sample); g_signal_connect(G_OBJECT(sample->color_patch), "leave-notify-event", G_CALLBACK(_live_sample_leave), sample); g_signal_connect(G_OBJECT(sample->color_patch), "button-press-event", G_CALLBACK(_sample_lock_toggle), sample); g_signal_connect(G_OBJECT(sample->color_patch), "draw", G_CALLBACK(sample_draw_callback), sample); sample->output_label = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(sample->container), sample->output_label, TRUE, TRUE, 0); sample->delete_button = gtk_button_new_with_label(_("remove")); gtk_box_pack_start(GTK_BOX(sample->container), sample->delete_button, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(sample->delete_button), "clicked", G_CALLBACK(_remove_sample), sample); gtk_widget_show_all(data->samples_container); // Setting the actual data if(dt_conf_get_int("ui_last/colorpicker_size")) { sample->size = DT_COLORPICKER_SIZE_BOX; for(i = 0; i < 4; i++) sample->box[i] = module->color_picker_box[i]; } else { sample->size = DT_COLORPICKER_SIZE_POINT; for(i = 0; i < 2; i++) sample->point[i] = module->color_picker_point[i]; } for(i = 0; i < 3; i++) sample->picked_color_lab_max[i] = darktable.lib->proxy.colorpicker.picked_color_lab_max[i]; for(i = 0; i < 3; i++) sample->picked_color_lab_mean[i] = darktable.lib->proxy.colorpicker.picked_color_lab_mean[i]; for(i = 0; i < 3; i++) sample->picked_color_lab_min[i] = darktable.lib->proxy.colorpicker.picked_color_lab_min[i]; for(i = 0; i < 3; i++) sample->picked_color_rgb_max[i] = darktable.lib->proxy.colorpicker.picked_color_rgb_max[i]; for(i = 0; i < 3; i++) sample->picked_color_rgb_mean[i] = darktable.lib->proxy.colorpicker.picked_color_rgb_mean[i]; for(i = 0; i < 3; i++) sample->picked_color_rgb_min[i] = darktable.lib->proxy.colorpicker.picked_color_rgb_min[i]; // Updating the display _update_samples_output((dt_lib_module_t *)self); }
static void _add_sample(GtkButton *widget, gpointer self) { dt_lib_colorpicker_t *data = ((dt_lib_module_t*)self)->data; dt_colorpicker_sample_t *sample = (dt_colorpicker_sample_t*)malloc(sizeof(dt_colorpicker_sample_t)); darktable.lib->proxy.colorpicker.live_samples = g_slist_append(darktable.lib->proxy.colorpicker.live_samples, sample); dt_iop_module_t *module = get_colorout_module(); int i; // Initializing the UI sample->container = gtk_hbox_new(FALSE, 2); gtk_box_pack_start(GTK_BOX(data->samples_container), sample->container, TRUE, TRUE, 0); sample->output_button = dtgtk_button_new(NULL, CPF_STYLE_BOX); gtk_widget_set_size_request(sample->output_button, 40, -1); gtk_widget_set_events(sample->output_button, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_widget_set_tooltip_text(sample->output_button, _("hover to highlight sample on canvas, " "click to lock sample")); gtk_box_pack_start(GTK_BOX(sample->container), sample->output_button, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(sample->output_button), "enter-notify-event", G_CALLBACK(_live_sample_enter), sample); g_signal_connect(G_OBJECT(sample->output_button), "leave-notify-event", G_CALLBACK(_live_sample_leave), sample); g_signal_connect(G_OBJECT(sample->output_button), "button-press-event", G_CALLBACK(_sample_lock_toggle), sample); sample->output_label = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(sample->container), sample->output_label, TRUE, TRUE, 0); sample->delete_button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); gtk_box_pack_start(GTK_BOX(sample->container), sample->delete_button, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(sample->delete_button), "clicked", G_CALLBACK(_remove_sample), sample); gtk_widget_show_all(data->samples_container); // Setting the actual data if(dt_conf_get_int("ui_last/colorpicker_size")) { sample->size = DT_COLORPICKER_SIZE_BOX; for(i = 0; i < 4; i++) sample->box[i] = module->color_picker_box[i]; } else { sample->size = DT_COLORPICKER_SIZE_POINT; for(i = 0; i < 2; i++) sample->point[i] = module->color_picker_point[i]; } for(i = 0; i < 3; i++) sample->picked_color_lab_max[i] = darktable.lib->proxy.colorpicker.picked_color_lab_max[i]; for(i = 0; i < 3; i++) sample->picked_color_lab_mean[i] = darktable.lib->proxy.colorpicker.picked_color_lab_mean[i]; for(i = 0; i < 3; i++) sample->picked_color_lab_min[i] = darktable.lib->proxy.colorpicker.picked_color_lab_min[i]; for(i = 0; i < 3; i++) sample->picked_color_rgb_max[i] = darktable.lib->proxy.colorpicker.picked_color_rgb_max[i]; for(i = 0; i < 3; i++) sample->picked_color_rgb_mean[i] = darktable.lib->proxy.colorpicker.picked_color_rgb_mean[i]; for(i = 0; i < 3; i++) sample->picked_color_rgb_min[i] = darktable.lib->proxy.colorpicker.picked_color_rgb_min[i]; sample->locked = 0; // Updating the display _update_samples_output((dt_lib_module_t*)self); }