static void saturation_callback(GtkWidget *slider, gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_splittoning_params_t *p = (dt_iop_splittoning_params_t *)self->params; dt_iop_splittoning_gui_data_t *g = (dt_iop_splittoning_gui_data_t *)self->gui_data; double hue=0; double saturation=0; GtkWidget* colorpicker; if( slider == g->gslider2 ) { // Shadows hue=dt_bauhaus_slider_get(g->gslider1); p->shadow_saturation=saturation=dt_bauhaus_slider_get(slider); colorpicker=GTK_WIDGET(g->colorpick1); } else { hue=dt_bauhaus_slider_get(g->gslider3); p->highlight_saturation=saturation=dt_bauhaus_slider_get(slider); colorpicker=GTK_WIDGET(g->colorpick2); } update_colorpicker_fg(colorpicker, hue, saturation); if(self->dt->gui->reset) return; dt_dev_add_history_item(darktable.develop, self, TRUE); }
void gui_update(struct dt_iop_module_t *self) { dt_iop_module_t *module = (dt_iop_module_t *)self; dt_iop_splittoning_gui_data_t *g = (dt_iop_splittoning_gui_data_t *)self->gui_data; dt_iop_splittoning_params_t *p = (dt_iop_splittoning_params_t *)module->params; dt_bauhaus_slider_set(g->gslider1,p->shadow_hue); dt_bauhaus_slider_set(g->gslider3,p->highlight_hue); dt_bauhaus_slider_set(g->gslider4,p->highlight_saturation); dt_bauhaus_slider_set(g->gslider2,p->shadow_saturation); dt_bauhaus_slider_set(g->scale1, p->balance*100.0); dt_bauhaus_slider_set(g->scale2, p->compress); update_colorpicker_fg(GTK_WIDGET(g->colorpick1), p->shadow_hue, p->shadow_saturation); update_colorpicker_fg(GTK_WIDGET(g->colorpick2), p->highlight_hue, p->highlight_saturation); update_saturation_slider_end_color(g->gslider2, p->shadow_hue); update_saturation_slider_end_color(g->gslider4, p->highlight_hue); }
static void hue_callback(GtkWidget *slider, gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_splittoning_params_t *p = (dt_iop_splittoning_params_t *)self->params; dt_iop_splittoning_gui_data_t *g = (dt_iop_splittoning_gui_data_t *)self->gui_data; double hue=0; double saturation=0; GtkWidget* colorpicker; GtkWidget* sat_slider=NULL; if( slider == g->gslider1 ) { // Shadows hue = p->shadow_hue = dt_bauhaus_slider_get(slider); saturation = p->shadow_saturation; colorpicker = GTK_WIDGET(g->colorpick1); sat_slider = g->gslider2; update_balance_slider_colors(g->scale1, -1, hue); } else { hue = p->highlight_hue = dt_bauhaus_slider_get(slider); saturation=p->highlight_saturation; colorpicker=GTK_WIDGET(g->colorpick2); sat_slider=g->gslider4; update_balance_slider_colors(g->scale1, hue, -1); } update_colorpicker_fg(colorpicker, hue, saturation); update_saturation_slider_end_color(sat_slider, hue); if(self->dt->gui->reset) return; gtk_widget_queue_draw(GTK_WIDGET(sat_slider)); dt_dev_add_history_item(darktable.develop, self, TRUE); }