rendered paste body#include <gtk/gtk.h>
#include <glade/glade.h>
typedef struct state {
int started;
int stopped;
char *path;
GtkWidget *main_window;
GtkWidget *start;
GtkWidget *save;
GtkWidget *clear;
} GdsoState;
static void gdso_state_set_path(GdsoState *data, char *path)
{
g_free(data->path);
data->path = g_strdup(path);
}
void on_browse_clicked(GtkButton *button, gpointer data)
{
GtkWidget *window1 = data.main_window;
GtkWidget *dialog = gtk_file_chooser_dialog_new("Seleziona directory...",
GTK_WINDOW(window1),
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
{
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
gdso_state_set_path(data, filename);
gtk_widget_set_sensitive(data.start, TRUE);
gtk_widget_set_sensitive(data.save, TRUE);
gtk_widget_set_sensitive(data.clear, TRUE);
}
gtk_widget_destroy(dialog);
}
int main(int argc, char *argv[])
{
GladeXML *main_window;
GtkWidget *widget;
main_window = glade_xml_new("gdso.glade", NULL, NULL);
gtk_init(&argc, &argv);
widget = glade_xml_get_widget(main_window, "window1");
g_signal_connect(widget, "delete_event",
G_CALLBACK(gtk_main_quit), NULL);
static GdsoState *data = g_new0(GdsoState, 1);
data->main_window = widget;
widget = glade_xml_get_widget(main_window, "clear");
g_signal_connect(widget, "clicked",
G_CALLBACK(on_clear_clicked), main_window);
gtk_widget_set_sensitive(widget, FALSE);
data->clear = widget;
widget = glade_xml_get_widget(main_window, "browse");
g_signal_connect(widget, "clicked",
G_CALLBACK(on_browse_clicked), data);
gtk_main();
return 0;
}
///////////////////////////////////////////////////////////
cc -o gdso main.c `pkg-config --cflags --libs libglade-2.0`
main.c: In function 'on_browse_clicked':
main.c:22: error: request for member 'main_window' in something not a structure or union
main.c:36: error: request for member 'start' in something not a structure or union
main.c:37: error: request for member 'save' in something not a structure or union
main.c:38: error: request for member 'clear' in something not a structure or union
main.c: In function 'main':
main.c:66: error: initializer element is not constant