void gui_init(struct dt_iop_module_t *self) { self->gui_data = malloc(sizeof(dt_iop_colortransfer_gui_data_t)); self->widget = gtk_label_new(_("this module will be removed in the future\nand is only here so you can " "switch it off\nand move to the new color mapping module.")); gtk_misc_set_alignment(GTK_MISC(self->widget), 0.0f, 0.5f); #if 0 self->gui_data = malloc(sizeof(dt_iop_colortransfer_gui_data_t)); dt_iop_colortransfer_gui_data_t *g = (dt_iop_colortransfer_gui_data_t *)self->gui_data; // dt_iop_colortransfer_params_t *p = (dt_iop_colortransfer_params_t *)self->params; g->flowback_set = 0; g->hsRGB = dt_colorspaces_create_srgb_profile(); g->hLab = dt_colorspaces_create_lab_profile(); g->xform = cmsCreateTransform(g->hLab, TYPE_Lab_DBL, g->hsRGB, TYPE_RGB_DBL, INTENT_PERCEPTUAL, 0); self->widget = GTK_WIDGET(gtk_vbox_new(FALSE, DT_GUI_IOP_MODULE_CONTROL_SPACING)); g_signal_connect (G_OBJECT(self->widget), "expose-event", G_CALLBACK(expose), self); g->area = gtk_drawing_area_new(); gtk_widget_set_size_request(GTK_WIDGET(g->area), 300, 100); gtk_box_pack_start(GTK_BOX(self->widget), g->area, TRUE, TRUE, 0); g_signal_connect (G_OBJECT (g->area), "expose-event", G_CALLBACK (cluster_preview_expose), self); GtkBox *box = GTK_BOX(gtk_hbox_new(FALSE, 5)); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(box), TRUE, TRUE, 0); GtkWidget *button; g->spinbutton = GTK_SPIN_BUTTON(gtk_spin_button_new_with_range(1, MAXN, 1)); g_object_set(G_OBJECT(g->spinbutton), "tooltip-text", _("number of clusters to find in image"), (char *)NULL); gtk_box_pack_start(box, GTK_WIDGET(g->spinbutton), FALSE, FALSE, 0); g_signal_connect(G_OBJECT(g->spinbutton), "value-changed", G_CALLBACK(spinbutton_changed), (gpointer)self); button = dtgtk_button_new_with_label(_("acquire"), NULL, CPF_STYLE_FLAT|CPF_DO_NOT_USE_BORDER); g->acquire_button = button; g_object_set(G_OBJECT(button), "tooltip-text", _("analyze this image"), (char *)NULL); gtk_box_pack_start(box, button, TRUE, TRUE, 0); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(acquire_button_pressed), (gpointer)self); g->apply_button = dtgtk_button_new_with_label(_("apply"), NULL, CPF_STYLE_FLAT|CPF_DO_NOT_USE_BORDER); g_object_set(G_OBJECT(g->apply_button), "tooltip-text", _("apply previously analyzed image look to this image"), (char *)NULL); gtk_box_pack_start(box, g->apply_button, TRUE, TRUE, 0); g_signal_connect(G_OBJECT(g->apply_button), "clicked", G_CALLBACK(apply_button_pressed), (gpointer)self); FILE *f = fopen("/tmp/dt_colortransfer_loaded", "rb"); if(f) { if(fread(&g->flowback, self->params_size, 1, f) > 0) g->flowback_set = 1; fclose(f); } else gtk_widget_set_sensitive(GTK_WIDGET(g->apply_button), FALSE); #endif }
void gui_init(struct dt_iop_module_t *self) { self->gui_data = malloc(sizeof(dt_iop_levels_gui_data_t)); dt_iop_levels_gui_data_t *c = (dt_iop_levels_gui_data_t *)self->gui_data; c->mouse_x = c->mouse_y = -1.0; c->dragging = 0; c->activeToggleButton = NULL; c->current_pick = NONE; c->last_picked_color = -1; for (int i=0; i<3; i++) for (int j=0; j<2; j++) c->pick_xy_positions[i][j] = 0.5; self->widget = GTK_WIDGET(gtk_vbox_new(FALSE, 5)); c->area = GTK_DRAWING_AREA(gtk_drawing_area_new()); GtkWidget *asp = gtk_aspect_frame_new(NULL, 0.5, 0.5, 1.0, TRUE); gtk_box_pack_start(GTK_BOX(self->widget), asp, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(asp), GTK_WIDGET(c->area)); gtk_drawing_area_size(c->area, 258, 150); g_object_set (GTK_OBJECT(c->area), "tooltip-text", _("drag handles to set black, grey, and white points. operates on L channel."), (char *)NULL); gtk_widget_add_events(GTK_WIDGET(c->area), GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK); g_signal_connect (G_OBJECT (c->area), "expose-event", G_CALLBACK (dt_iop_levels_expose), self); g_signal_connect (G_OBJECT (c->area), "button-press-event", G_CALLBACK (dt_iop_levels_button_press), self); g_signal_connect (G_OBJECT (c->area), "button-release-event", G_CALLBACK (dt_iop_levels_button_release), self); g_signal_connect (G_OBJECT (c->area), "motion-notify-event", G_CALLBACK (dt_iop_levels_motion_notify), self); g_signal_connect (G_OBJECT (c->area), "leave-notify-event", G_CALLBACK (dt_iop_levels_leave_notify), self); g_signal_connect (G_OBJECT (c->area), "scroll-event", G_CALLBACK (dt_iop_levels_scroll), self); GtkWidget *autobutton = dtgtk_button_new_with_label(_("auto"), NULL, CPF_STYLE_FLAT|CPF_DO_NOT_USE_BORDER); g_object_set(G_OBJECT(autobutton), "tooltip-text", _("apply auto levels"), (char *)NULL); gtk_widget_set_size_request(autobutton, 70, 24); GtkWidget *blackpick = dtgtk_togglebutton_new(dtgtk_cairo_paint_colorpicker, CPF_STYLE_FLAT); g_object_set(G_OBJECT(blackpick), "tooltip-text", _("pick blackpoint from image"), (char *)NULL); gtk_widget_set_size_request(blackpick, 24, 24); GtkWidget *greypick = dtgtk_togglebutton_new(dtgtk_cairo_paint_colorpicker, CPF_STYLE_FLAT); g_object_set(G_OBJECT(greypick), "tooltip-text", _("pick medium greypoint from image"), (char *)NULL); gtk_widget_set_size_request(greypick, 24, 24); GtkWidget *whitepick = dtgtk_togglebutton_new(dtgtk_cairo_paint_colorpicker, CPF_STYLE_FLAT); g_object_set(G_OBJECT(whitepick), "tooltip-text", _("pick whitepoint from image"), (char *)NULL); gtk_widget_set_size_request(whitepick, 24, 24); GdkColor col; col.red = col.green = col.blue = 0; gtk_widget_modify_fg(GTK_WIDGET(blackpick), GTK_STATE_NORMAL, &col); gtk_widget_modify_fg(GTK_WIDGET(blackpick), GTK_STATE_SELECTED, &col); col.red = col.green = col.blue = 32767; gtk_widget_modify_fg(GTK_WIDGET(greypick), GTK_STATE_NORMAL, &col); gtk_widget_modify_fg(GTK_WIDGET(greypick), GTK_STATE_SELECTED, &col); col.red = col.green = col.blue = 65535; gtk_widget_modify_fg(GTK_WIDGET(whitepick), GTK_STATE_NORMAL, &col); gtk_widget_modify_fg(GTK_WIDGET(whitepick), GTK_STATE_SELECTED, &col); col.red = col.green = col.blue = 4096; gtk_widget_modify_bg(GTK_WIDGET(blackpick), GTK_STATE_ACTIVE, &col); gtk_widget_modify_bg(GTK_WIDGET(greypick), GTK_STATE_ACTIVE, &col); gtk_widget_modify_bg(GTK_WIDGET(whitepick), GTK_STATE_ACTIVE, &col); GtkWidget *box = gtk_hbox_new(TRUE,0); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(autobutton), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(blackpick), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(greypick), FALSE, FALSE, 0); gtk_box_pack_end(GTK_BOX(box), GTK_WIDGET(whitepick), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(self->widget), box, TRUE, TRUE, 0); g_signal_connect (G_OBJECT(autobutton), "clicked", G_CALLBACK(dt_iop_levels_autoadjust_callback), (gpointer)self); g_signal_connect (G_OBJECT(blackpick), "toggled", G_CALLBACK (dt_iop_levels_pick_black_callback), self); g_signal_connect (G_OBJECT(greypick), "toggled", G_CALLBACK (dt_iop_levels_pick_grey_callback), self); g_signal_connect (G_OBJECT(whitepick), "toggled", G_CALLBACK (dt_iop_levels_pick_white_callback), self); }