static gboolean dt_iop_levels_scroll(GtkWidget *widget, GdkEventScroll *event, gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_levels_gui_data_t *c = (dt_iop_levels_gui_data_t *)self->gui_data; dt_iop_levels_params_t *p = (dt_iop_levels_params_t *)self->params; dt_iop_color_picker_reset(self, TRUE); if(c->dragging) { return FALSE; } const float interval = 0.002; // Distance moved for each scroll event gdouble delta_y; if(dt_gui_get_scroll_deltas(event, NULL, &delta_y)) { float new_position = p->levels[c->handle_move] - interval * delta_y; dt_iop_levels_move_handle(self, c->handle_move, new_position, p->levels, c->drag_start_percentage); dt_dev_add_history_item(darktable.develop, self, TRUE); return TRUE; } return FALSE; }
static gboolean lowlight_scrolled(GtkWidget *widget, GdkEventScroll *event, gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_lowlight_gui_data_t *c = (dt_iop_lowlight_gui_data_t *)self->gui_data; gdouble delta_y; if(dt_gui_get_scroll_deltas(event, NULL, &delta_y)) { c->mouse_radius = CLAMP(c->mouse_radius * (1.0 + 0.1 * delta_y), 0.2 / DT_IOP_LOWLIGHT_BANDS, 1.0); gtk_widget_queue_draw(widget); } return TRUE; }
static gboolean dt_iop_monochrome_scrolled(GtkWidget *widget, GdkEventScroll *event, gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_monochrome_params_t *p = (dt_iop_monochrome_params_t *)self->params; dt_iop_monochrome_gui_data_t *g = (dt_iop_monochrome_gui_data_t *)self->gui_data; self->request_color_pick = DT_REQUEST_COLORPICK_OFF; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->colorpicker), 0); gdouble delta_y; if(dt_gui_get_scroll_deltas(event, NULL, &delta_y)) { const float old_size = p->size; p->size = CLAMP(p->size + delta_y * 0.1, 0.5f, 3.0f); if(old_size != p->size) dt_dev_add_history_item(darktable.develop, self, TRUE); gtk_widget_queue_draw(widget); } return TRUE; }