void gui_init(dt_lib_module_t *self) { dt_lib_recentcollect_t *d = (dt_lib_recentcollect_t *)calloc(1, sizeof(dt_lib_recentcollect_t)); self->data = (void *)d; self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); d->inited = 0; gtk_widget_set_name(self->widget, "recent-collection-ui"); // add buttons in the list, set them all to invisible for(int k = 0; k < NUM_LINES; k++) { d->item[k].button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(self->widget), d->item[k].button, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(d->item[k].button), "clicked", G_CALLBACK(button_pressed), (gpointer)self); gtk_widget_set_no_show_all(d->item[k].button, TRUE); gtk_widget_set_visible(d->item[k].button, FALSE); GtkWidget *child = gtk_bin_get_child(GTK_BIN(d->item[k].button)); if(child) gtk_widget_set_halign(child, GTK_ALIGN_START); } _lib_recentcollection_updated(NULL, self); /* connect collection changed signal */ dt_control_signal_connect(darktable.signals, DT_SIGNAL_COLLECTION_CHANGED, G_CALLBACK(_lib_recentcollection_updated), (gpointer)self); }
void gui_init (dt_lib_module_t *self) { dt_lib_recentcollect_t *d = (dt_lib_recentcollect_t *)malloc(sizeof(dt_lib_recentcollect_t)); memset(d,0,sizeof(dt_lib_recentcollect_t)); self->data = (void *)d; self->widget = gtk_vbox_new(FALSE, 0); d->inited = 0; // add buttons in the list, set them all to invisible for(int k=0; k<NUM_LINES; k++) { d->item[k].button = dtgtk_button_new(NULL, CPF_STYLE_FLAT); gtk_box_pack_start(GTK_BOX(self->widget), d->item[k].button, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(d->item[k].button), "clicked", G_CALLBACK(button_pressed), (gpointer)self); gtk_widget_set_no_show_all(d->item[k].button, TRUE); gtk_widget_set_visible(d->item[k].button, FALSE); } _lib_recentcollection_updated(NULL,self); /* connect collection changed signal */ dt_control_signal_connect(darktable.signals, DT_SIGNAL_COLLECTION_CHANGED, G_CALLBACK(_lib_recentcollection_updated), (gpointer)self); }
void gui_reset(dt_lib_module_t *self) { dt_conf_set_int("plugins/lighttable/recentcollect/num_items", 0); char confname[200]; for(int k = 0; k < NUM_LINES; k++) { snprintf(confname, sizeof(confname), "plugins/lighttable/recentcollect/line%1d", k); dt_conf_set_string(confname, ""); snprintf(confname, sizeof(confname), "plugins/lighttable/recentcollect/pos%1d", k); dt_conf_set_int(confname, 0); } _lib_recentcollection_updated(NULL, self); }