There's no Gambit example here: http://www.turtle.dds.nl/gtk-server/examples.html This seems to work: ;; NOTE: requires srfi-13 for "string-join". (define *gtk-port* (open-process "gtk-server -stdin")) (thread-sleep! 1) (define (gtk-command . items) (let ((strings (map (lambda (x) (if (string? x) x (object->string x))) items))) (display (string-join strings " ") *gtk-port*) (newline *gtk-port*) (force-output *gtk-port*) (read-line *gtk-port*))) (gtk-command "gtk_init NULL NULL") (define *win* (gtk-command "gtk_window_new 0")) (gtk-command "gtk_window_set_title" win "\"Scheme GTK-server demo via stdin\"") (gtk-command "gtk_window_set_default_size" *win* 400 200) (gtk-command "gtk_window_set_position" *win* 1) (define *tbl* (gtk-command "gtk_table_new 10 10 1")) (gtk-command "gtk_container_add" *win* *tbl*) (define *but* (gtk-command "gtk_button_new_with_label \"Click to Quit\"")) (gtk-command "gtk_table_attach_defaults" *tbl* *but* 5 9 5 9) (gtk-command "gtk_widget_show_all" win) (let loop () (let ((event (gtk-command "gtk_server_callback WAIT"))) (if (not (member event (list *win* *but*))) (loop)))) (display "gtk_server_exit" *gtk-port*) (newline *gtk-port*) (force-output *gtk-port*) (close-port *gtk-port*)
Afficher les réponses par date
participants (1)
-
William James