如何用c语言做出app

#include
GtkWidget *text_view;
GtkTextBuffer *text_buffer;
void on_open_button_clicked(GtkWidget *widget, gpointer data) {
GtkWidget *dialog;
dialog = gtk_file_chooser_dialog_new("Open File", GTK_WINDOW(data), GTK_FILE_CHOOSER_ACTION_OPEN,
"_Cancel", GTK_RESPONSE_CANCEL, "_Open", GTK_RESPONSE_ACCEPT, NULL);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
char *filename;
filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
gchar *content;
g_file_get_contents(filename, &content, NULL, NULL);
gtk_text_buffer_set_text(text_buffer, content, -1);
g_free(content);
g_free(filename);
}
gtk_widget_destroy(dialog);
}
void on_save_button_clicked(GtkWidget *widget, gpointer data) {
GtkWidget *dialog;
dialog = gtk_file_chooser_dialog_new("Save File", GTK_WINDOW(data), GTK_FILE_CHOOSER_ACTION_SAVE,
"_Cancel", GTK_RESPONSE_CANCEL, "_Save", GTK_RESPONSE_ACCEPT, NULL);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
char *filename;
filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
GtkTextIter start, end;
gtk_text_buffer_get_start_iter(text_buffer, &start);
gtk_text_buffer_get_end_iter(text_buffer, &end);
gchar *content = gtk_text_buffer_get_text(text_buffer, &start, &end, FALSE);
g_file_set_contents(filename, content, -1, NULL);
g_free(content);
g_free(filename);
}
gtk_widget_destroy(dialog);
}
void on_clear_button_clicked(GtkWidget *widget, gpointer data) {
gtk_text_buffer_set_text(text_buffer, "", -1);
}
int main(int argc, char *argv[]) {
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *toolbar;
GtkWidget *open_button;
GtkWidget *save_button;
GtkWidget *clear_button;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Simple Notepad");
gtk_window_set_default_size(GTK_WINDOW(window), 600, 400);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
gtk_container_add(GTK_CONTAINER(window), vbox);
toolbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 5);
open_button = gtk_button_new_with_label("Open");
g_signal_connect(open_button, "clicked", G_CALLBACK(on_open_button_clicked), window);
gtk_box_pack_start(GTK_BOX(toolbar), open_button, FALSE, FALSE, 5);
save_button = gtk_button_new_with_label("Save");
g_signal_connect(save_button, "clicked", G_CALLBACK(on_save_button_clicked), window);
gtk_box_pack_start(GTK_BOX(toolbar), save_button, FALSE, FALSE, 5);
clear_button = gtk_button_new_with_label("Clear");
g_signal_connect(clear_button, "clicked", G_CALLBACK(on_clear_button_clicked), NULL);
gtk_box_pack_start(GTK_BOX(toolbar), clear_button, FALSE, FALSE, 5);
text_view = gtk_text_view_new();
text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view));
gtk_box_pack_start(GTK_BOX(vbox), text_view, TRUE, TRUE, 5);
gtk_widget_show_all(window);
gtk_main();
return 0;
}