static void autoexp_callback (GtkToggleButton *button, gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_exposure_gui_data_t *g = (dt_iop_exposure_gui_data_t *)self->gui_data; if(self->dt->gui->reset) return; deflicker_disable(self); self->request_color_pick = gtk_toggle_button_get_active(button); dt_iop_request_focus(self); if (self->request_color_pick > 0) { dt_lib_colorpicker_set_area(darktable.lib, 0.99); dt_dev_reprocess_all(self->dev); } else dt_control_queue_redraw(); gtk_widget_set_sensitive(GTK_WIDGET(g->autoexpp), gtk_toggle_button_get_active(button)); dt_dev_add_history_item(darktable.develop, self, TRUE); }
static void _blendop_blendif_pick_toggled(GtkToggleButton *togglebutton, dt_iop_module_t *module) { if(darktable.gui->reset) return; /* if module itself already requested color pick (positive value in request_color_pick), don't tamper with it. A module color picker takes precedence. */ if(module->request_color_pick > 0) { gtk_toggle_button_set_active(togglebutton, 0); return; } /* we put a negative value into request_color_pick to later see if color picker was requested by blendif. A module color picker may overwrite this. This is fine, blendif will use the color picker data, but not deactivate it. */ module->request_color_pick = (gtk_toggle_button_get_active(togglebutton) ? -1 : 0); /* set the area sample size */ if (module->request_color_pick) { dt_lib_colorpicker_set_point(darktable.lib, 0.5, 0.5); dt_dev_reprocess_all(module->dev); } else dt_control_queue_redraw(); if(module->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(module->off), 1); dt_iop_request_focus(module); }
static void dt_iop_levels_pick_general_handler(GtkToggleButton *togglebutton, dt_iop_module_t *self, double xpick, double ypick, dt_iop_levels_pick_t picklevel) { dt_iop_levels_gui_data_t *c = (dt_iop_levels_gui_data_t *)self->gui_data; darktable.gui->reset = 1; // we do not require the callback if we deactivate it here if(c->activeToggleButton != NULL) gtk_toggle_button_set_active(c->activeToggleButton, FALSE); darktable.gui->reset = 0; gboolean toggle = gtk_toggle_button_get_active(togglebutton); if(darktable.gui->reset) return; if(TRUE == toggle) { self->request_color_pick = DT_REQUEST_COLORPICK_MODULE; dt_lib_colorpicker_set_point(darktable.lib, xpick, ypick); c->activeToggleButton = togglebutton; c->current_pick = picklevel; dt_dev_reprocess_all(self->dev); } else { self->request_color_pick = DT_REQUEST_COLORPICK_OFF; c->activeToggleButton = NULL; c->current_pick = NONE; // gtk_widget_queue_draw(self->widget); dt_control_queue_redraw(); } if(self->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), TRUE); dt_iop_request_focus(self); }
static void _blendop_blendif_suppress_toggled(GtkToggleButton *togglebutton, dt_iop_module_t *module) { module->suppress_mask = gtk_toggle_button_get_active(togglebutton); if(darktable.gui->reset) return; if(module->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(module->off), 1); dt_iop_request_focus(module); dt_dev_reprocess_all(module->dev); }
static void request_pick_toggled(GtkToggleButton *togglebutton, dt_iop_module_t *self) { if(darktable.gui->reset) return; self->request_color_pick = (gtk_toggle_button_get_active(togglebutton) ? 1 : 0); if(self->request_color_pick) { dt_lib_colorpicker_set_point(darktable.lib, 0.5, 0.5); dt_dev_reprocess_all(self->dev); } else dt_control_queue_redraw(); if(self->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), 1); dt_iop_request_focus(self); }
static void request_pick_toggled(GtkToggleButton *togglebutton, dt_iop_module_t *self) { if(darktable.gui->reset) return; self->request_color_pick = (gtk_toggle_button_get_active(togglebutton) ? DT_REQUEST_COLORPICK_MODULE : DT_REQUEST_COLORPICK_OFF); if(self->request_color_pick != DT_REQUEST_COLORPICK_OFF) { dt_lib_colorpicker_set_area(darktable.lib, 0.99); dt_dev_reprocess_all(self->dev); } else dt_control_queue_redraw(); if(self->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), 1); dt_iop_request_focus(self); }
static void picker_callback(GtkWidget *button, gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; if(darktable.gui->reset) return; if(self->request_color_pick == DT_REQUEST_COLORPICK_OFF) self->request_color_pick = DT_REQUEST_COLORPICK_MODULE; else self->request_color_pick = DT_REQUEST_COLORPICK_OFF; dt_iop_request_focus(self); if(self->request_color_pick != DT_REQUEST_COLORPICK_OFF) dt_dev_reprocess_all(self->dev); else dt_control_queue_redraw(); if(self->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), 1); }
static void picker_callback (GtkDarktableToggleButton *button, gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; if(darktable.gui->reset) return; self->request_color_pick = (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (button)) ? 1 : 0); /* set the area sample size*/ if (self->request_color_pick) { dt_lib_colorpicker_set_point(darktable.lib, 0.5, 0.5); dt_dev_reprocess_all(self->dev); } else dt_control_queue_redraw(); if(self->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), 1); dt_iop_request_focus(self); }
static gboolean expose (GtkWidget *widget, GdkEventExpose *event, dt_iop_module_t *self) { if(darktable.gui->reset) return FALSE; dt_iop_exposure_gui_data_t *g = (dt_iop_exposure_gui_data_t *)self->gui_data; if(!isnan(g->deflicker_computed_exposure)) { gchar *str = g_strdup_printf("%.2fEV", g->deflicker_computed_exposure); darktable.gui->reset = 1; gtk_label_set_text(g->deflicker_used_EC, str); darktable.gui->reset = 0; g_free(str); g->deflicker_computed_exposure = NAN; } if(self->enabled && g->reprocess_on_next_expose) { g->reprocess_on_next_expose = FALSE; //FIXME: or just use dev->pipe->changed |= DT_DEV_PIPE_SYNCH; ? dt_dev_reprocess_all(self->dev); return TRUE; } if(self->request_color_pick != DT_REQUEST_COLORPICK_MODULE) return FALSE; if(self->picked_color_max[0] < 0.0f) return FALSE; const float white = fmaxf(fmaxf(self->picked_color_max[0], self->picked_color_max[1]), self->picked_color_max[2]) * (1.0-dt_bauhaus_slider_get(g->autoexpp)); const float black = fminf(fminf(self->picked_color_min[0], self->picked_color_min[1]), self->picked_color_min[2]); exposure_set_white(self, white); exposure_set_black(self, black); return FALSE; }
static void picker_callback(GtkToggleButton *button, gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; if(darktable.gui->reset) return; self->request_color_pick = (gtk_toggle_button_get_active(button) ? DT_REQUEST_COLORPICK_MODULE : DT_REQUEST_COLORPICK_OFF); if(self->request_color_pick == DT_REQUEST_COLORPICK_MODULE) { dt_lib_colorpicker_set_area(darktable.lib, 0.99); dt_dev_reprocess_all(self->dev); } else dt_control_queue_redraw(); // only activate if the color picker is selected, this is becasue the monochrome module as a draw signal. if (self->request_color_pick == DT_REQUEST_COLORPICK_MODULE) { if(self->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), 1); dt_iop_request_focus(self); } }