diff --git a/Gtk3/gtk35/main.cpp b/Gtk3/gtk35/main.cpp index 124c3d6..2fc6ed3 100644 --- a/Gtk3/gtk35/main.cpp +++ b/Gtk3/gtk35/main.cpp @@ -1,9 +1,27 @@ #include +void file_dialog(GtkWidget *widget,gpointer data){ + GtkFileChooserAction action=GTK_FILE_CHOOSER_ACTION_OPEN; + GtkWidget *dialog=gtk_file_chooser_dialog_new("Open File",GTK_WINDOW(data),action, + "Cencel",GTK_RESPONSE_CANCEL,"OK",GTK_RESPONSE_OK,NULL); + gint res; + res=gtk_dialog_run(GTK_DIALOG(dialog)); + if(res==GTK_RESPONSE_OK){ + char *filename; + filename=gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); + g_print("%s\n",filename); + } + gtk_widget_destroy(dialog); +} + static void gtkmain(GtkApplication *app,gpointer user_data){ + //Main window GtkBuilder *builder=gtk_builder_new_from_file("window.ui"); GObject *window=gtk_builder_get_object(builder,"window"); gtk_application_add_window(app,GTK_WINDOW(window)); + //dialog button + GObject *btn_dialog=gtk_builder_get_object(builder,"btnchoose"); + g_signal_connect(btn_dialog,"clicked",G_CALLBACK(file_dialog),window); gtk_widget_show_all(GTK_WIDGET(window)); } diff --git a/Gtk3/gtk35/window.ui b/Gtk3/gtk35/window.ui index d785a29..b1b00be 100644 --- a/Gtk3/gtk35/window.ui +++ b/Gtk3/gtk35/window.ui @@ -13,7 +13,12 @@ 440 250 - + + File Chooser dialog + True + True + True + @@ -21,10 +26,19 @@ False vertical - - - - + + True + True + in + + + + + + False + True + 0 +