void dt_iop_gui_update_blendif(dt_iop_module_t *module) { dt_iop_gui_blend_data_t *data = module->blend_data; dt_develop_blend_params_t *bp = module->blend_params; dt_develop_blend_params_t *dp = module->default_blendop_params; if (!data->blendif_support) return; float *iparameters = &(bp->blendif_parameters[4*data->channel]); float *oparameters = &(bp->blendif_parameters[16+4*data->channel]); float *idefaults = &(dp->blendif_parameters[4*data->channel]); float *odefaults = &(dp->blendif_parameters[16+4*data->channel]); char text[256]; int reset = darktable.gui->reset; darktable.gui->reset = 1; for(int k=0; k < 4; k++) { dtgtk_gradient_slider_multivalue_set_value(data->lower_slider, iparameters[k], k); dtgtk_gradient_slider_multivalue_set_value(data->upper_slider, oparameters[k], k); dtgtk_gradient_slider_multivalue_set_resetvalue(data->lower_slider, idefaults[k], k); dtgtk_gradient_slider_multivalue_set_resetvalue(data->upper_slider, odefaults[k], k); } for(int k=0; k < 4 ; k++) { (data->scale_print[data->channel])(iparameters[k], text, 256); gtk_label_set_text(data->lower_label[k], text); (data->scale_print[data->channel])(oparameters[k], text, 256); gtk_label_set_text(data->upper_label[k], text); } dtgtk_gradient_slider_multivalue_set_stop(data->lower_slider, 0.0f, data->colors[data->channel][0]); dtgtk_gradient_slider_multivalue_set_stop(data->lower_slider, 0.5f, data->colors[data->channel][1]); dtgtk_gradient_slider_multivalue_set_stop(data->lower_slider, 1.0f, data->colors[data->channel][2]); dtgtk_gradient_slider_multivalue_set_stop(data->upper_slider, 0.0f, data->colors[data->channel][0]); dtgtk_gradient_slider_multivalue_set_stop(data->upper_slider, 0.5f, data->colors[data->channel][1]); dtgtk_gradient_slider_multivalue_set_stop(data->upper_slider, 1.0f, data->colors[data->channel][2]); dtgtk_gradient_slider_multivalue_set_increment(data->lower_slider, data->increments[data->channel]); dtgtk_gradient_slider_multivalue_set_increment(data->upper_slider, data->increments[data->channel]); darktable.gui->reset = reset; }
void dtgtk_gradient_slider_set_value(GtkDarktableGradientSlider *gslider,gdouble value) { dtgtk_gradient_slider_multivalue_set_value(gslider, value, 0); }
void dt_iop_gui_update_blendif(dt_iop_module_t *module) { dt_iop_gui_blend_data_t *data = module->blend_data; dt_develop_blend_params_t *bp = module->blend_params; dt_develop_blend_params_t *dp = module->default_blendop_params; if (!data || !data->blendif_support || !data->blendif_inited) return; int tab = data->tab; int in_ch = data->channels[tab][0]; int out_ch = data->channels[tab][1]; float *iparameters = &(bp->blendif_parameters[4*in_ch]); float *oparameters = &(bp->blendif_parameters[4*out_ch]); float *idefaults = &(dp->blendif_parameters[4*in_ch]); float *odefaults = &(dp->blendif_parameters[4*out_ch]); int ipolarity = !(bp->blendif & (1<<(in_ch+16))); int opolarity = !(bp->blendif & (1<<(out_ch+16))); char text[256]; int reset = darktable.gui->reset; darktable.gui->reset = 1; dt_bauhaus_combobox_set(data->blendif_enable, (module->blend_params->blendif & (1<<DEVELOP_BLENDIF_active)) ? 1 : 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->lower_polarity), ipolarity); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->upper_polarity), opolarity); dtgtk_gradient_slider_multivalue_set_marker(data->lower_slider, ipolarity ? GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG : GRADIENT_SLIDER_MARKER_UPPER_OPEN_BIG, 0); dtgtk_gradient_slider_multivalue_set_marker(data->lower_slider, ipolarity ? GRADIENT_SLIDER_MARKER_UPPER_FILLED_BIG : GRADIENT_SLIDER_MARKER_LOWER_FILLED_BIG, 1); dtgtk_gradient_slider_multivalue_set_marker(data->lower_slider, ipolarity ? GRADIENT_SLIDER_MARKER_UPPER_FILLED_BIG : GRADIENT_SLIDER_MARKER_LOWER_FILLED_BIG, 2); dtgtk_gradient_slider_multivalue_set_marker(data->lower_slider, ipolarity ? GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG : GRADIENT_SLIDER_MARKER_UPPER_OPEN_BIG, 3); dtgtk_gradient_slider_multivalue_set_marker(data->upper_slider, opolarity ? GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG : GRADIENT_SLIDER_MARKER_UPPER_OPEN_BIG, 0); dtgtk_gradient_slider_multivalue_set_marker(data->upper_slider, opolarity ? GRADIENT_SLIDER_MARKER_UPPER_FILLED_BIG : GRADIENT_SLIDER_MARKER_LOWER_FILLED_BIG, 1); dtgtk_gradient_slider_multivalue_set_marker(data->upper_slider, opolarity ? GRADIENT_SLIDER_MARKER_UPPER_FILLED_BIG : GRADIENT_SLIDER_MARKER_LOWER_FILLED_BIG, 2); dtgtk_gradient_slider_multivalue_set_marker(data->upper_slider, opolarity ? GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG : GRADIENT_SLIDER_MARKER_UPPER_OPEN_BIG, 3); for(int k=0; k < 4; k++) { dtgtk_gradient_slider_multivalue_set_value(data->lower_slider, iparameters[k], k); dtgtk_gradient_slider_multivalue_set_value(data->upper_slider, oparameters[k], k); dtgtk_gradient_slider_multivalue_set_resetvalue(data->lower_slider, idefaults[k], k); dtgtk_gradient_slider_multivalue_set_resetvalue(data->upper_slider, odefaults[k], k); } for(int k=0; k < 4 ; k++) { (data->scale_print[tab])(iparameters[k], text, 256); gtk_label_set_text(data->lower_label[k], text); (data->scale_print[tab])(oparameters[k], text, 256); gtk_label_set_text(data->upper_label[k], text); } dtgtk_gradient_slider_multivalue_clear_stops(data->lower_slider); dtgtk_gradient_slider_multivalue_clear_stops(data->upper_slider); for(int k=0; k < data->numberstops[tab]; k++) { dtgtk_gradient_slider_multivalue_set_stop(data->lower_slider, (data->colorstops[tab])[k].stoppoint, (data->colorstops[tab])[k].color); dtgtk_gradient_slider_multivalue_set_stop(data->upper_slider, (data->colorstops[tab])[k].stoppoint, (data->colorstops[tab])[k].color); } dtgtk_gradient_slider_multivalue_set_increment(data->lower_slider, data->increments[tab]); dtgtk_gradient_slider_multivalue_set_increment(data->upper_slider, data->increments[tab]); dt_bauhaus_slider_set(data->radius_slider, bp->radius); darktable.gui->reset = reset; }