|
|
|
@ -29,8 +29,11 @@ example. First we create a file `main.c` which holds the source. It |
|
|
|
|
looks like this. |
|
|
|
|
|
|
|
|
|
```c |
|
|
|
|
#include<stdio.h> |
|
|
|
|
#include <stdio.h> |
|
|
|
|
|
|
|
|
|
// |
|
|
|
|
// main is where all program execution starts |
|
|
|
|
// |
|
|
|
|
int main(int argc, char **argv) { |
|
|
|
|
printf("Hello there.\n"); |
|
|
|
|
return 0; |
|
|
|
@ -53,7 +56,7 @@ to initialize the build by going into the source directory and issuing |
|
|
|
|
the following commands. |
|
|
|
|
|
|
|
|
|
```console |
|
|
|
|
$ meson builddir |
|
|
|
|
$ meson setup builddir |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
We create a separate build directory to hold all of the compiler |
|
|
|
@ -110,17 +113,40 @@ create a graphical window instead. We'll use the |
|
|
|
|
use GTK+. The new version looks like this. |
|
|
|
|
|
|
|
|
|
```c |
|
|
|
|
#include<gtk/gtk.h> |
|
|
|
|
|
|
|
|
|
int main(int argc, char **argv) { |
|
|
|
|
GtkWidget *win; |
|
|
|
|
gtk_init(&argc, &argv); |
|
|
|
|
win = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
|
|
|
gtk_window_set_title(GTK_WINDOW(win), "Hello there"); |
|
|
|
|
g_signal_connect(win, "destroy", G_CALLBACK(gtk_main_quit), NULL); |
|
|
|
|
gtk_widget_show(win); |
|
|
|
|
gtk_main(); |
|
|
|
|
} |
|
|
|
|
#include <gtk/gtk.h> |
|
|
|
|
|
|
|
|
|
// |
|
|
|
|
// Should provided the active view for a GTK application |
|
|
|
|
// |
|
|
|
|
static void activate(GtkApplication* app, gpointer user_data) |
|
|
|
|
{ |
|
|
|
|
GtkWidget *window; |
|
|
|
|
GtkWidget *label; |
|
|
|
|
|
|
|
|
|
window = gtk_application_window_new (app); |
|
|
|
|
label = gtk_label_new("Hello GNOME!"); |
|
|
|
|
gtk_container_add (GTK_CONTAINER (window), label); |
|
|
|
|
gtk_window_set_title(GTK_WINDOW (window), "Welcome to GNOME"); |
|
|
|
|
gtk_window_set_default_size(GTK_WINDOW (window), 200, 100); |
|
|
|
|
gtk_widget_show_all(window); |
|
|
|
|
} // end of function activate |
|
|
|
|
|
|
|
|
|
// |
|
|
|
|
// main is where all program execution starts |
|
|
|
|
// |
|
|
|
|
int main(int argc, char **argv) |
|
|
|
|
{ |
|
|
|
|
GtkApplication *app; |
|
|
|
|
int status; |
|
|
|
|
|
|
|
|
|
app = gtk_application_new(NULL, G_APPLICATION_FLAGS_NONE); |
|
|
|
|
g_signal_connect(app, "activate", G_CALLBACK(activate), NULL); |
|
|
|
|
status = g_application_run(G_APPLICATION(app), argc, argv); |
|
|
|
|
g_object_unref(app); |
|
|
|
|
|
|
|
|
|
return status; |
|
|
|
|
} // end of function main |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
Then we edit the Meson file, instructing it to find and use the GTK+ |
|
|
|
|