easyffi を使ってみたんだけど、なにがなんだかわからない

Vala のサンプルを見て書いてみた:

(require-extension easyffi)

(foreign-parse/declare "#include <gtk/gtk.h>")

(define-external (_gtk_main_quit_gtk_widget_destroy ((pointer "GtkWidget") _sender)
                                                    (c-pointer data))
  void

  (gtk_main_quit))

(define-external (_button_did_clicked ((pointer "GtkButton") _sender)
                                      (c-pointer data))
  void

  (gtk_button_set_label _sender "Thank you"))


;; gtk_init を呼び出します。
(foreign-code "gtk_init( &C_main_argc, &C_main_argv );")

(define window (gtk_window_new GTK_WINDOW_TOPLEVEL))
(gtk_window_set_title window "First GTK+ Program")
(gtk_container_set_border_width window 10)
(g_object_set window "window-position" GTK_WIN_POS_CENTER NULL)
(gtk_window_set_default_size window 370 70)
(g_signal_connect window "destroy" #$_gtk_main_quit_gtk_widget_destroy #f)
(define button (gtk_button_new_with_label "Click me!"))
(g_signal_connect button "clicked" #$_button_did_clicked #f)
(gtk_container_add window button)
(gtk_widget_show_all window)
(gtk_main)

そんなことはともかく、杉浦 日向子さんの『百日紅』上巻を Amazon で買って読みました。