Good Morning all, I was wondering how to connect to a gtk-server with anarki. In the following is a Scheme code example from the gtk-server website: http://www.gtk-server.org/examples.html. #!/usr/local/bin/csi -script
; Demo created by Felix Winkelmann - April 7, 2005
; Tested with GTK 1.3.3 and the CHICKEN Scheme compiler
(use posix)
(define-values (*gtk-in* *gtk-out* _) (process "gtk-server -stdin"))
(sleep 1)
(define (gtk . str)
(write-line (string-intersperse str " ") *gtk-out*)
(read-line *gtk-in*) )
(gtk "gtk_init NULL NULL")
(define win (gtk "gtk_window_new 0"))
(pp win)
(gtk "gtk_window_set_title" win "\"Scheme GTK-server demo via stdin\"")
(gtk "gtk_window_set_default_size" win "400 200")
(gtk "gtk_window_set_position" win "1")
(define tbl (gtk "gtk_table_new 10 10 1"))
(gtk "gtk_container_add " win tbl)
(define but (gtk "gtk_button_new_with_label \"Click to Quit\""))
(gtk "gtk_table_attach_defaults" tbl but "5 9 5 9")
(gtk "gtk_widget_show_all" win)
(let loop ()
(let ([event (gtk "gtk_server_callback WAIT")])
(pp event)
(unless (member event (list win but))
(loop) ) ) )
(write-line "gtk_server_exit" *gtk-out*)
(close-input-port *gtk-in*)
(close-output-port *gtk-out*)
I have interpreted it to be, please help and corrections is much appreciated. I am beginning to learn about sockets and I/O. (assign (gtk-in gtk-out)
; ??? (socket-connect ..
; (process "/home/conan/Documents/Arcprojects/gtk-server
;-stdin" gtkin gtkout))
(def gtk str
(write str gtk-out)
(if (~is "gtk_server_exit")
(read-line gtk-in)))
(gtk "gtk_init NULL NULL ")
(assign win (gtk "gtk_window_new 0"))
(gtk (+ "gtk_window_set_default_size " win " 100 100"))
(gtk (+ "gtk_window_set_position " win " 1"))
(assign table (gtk "gtk_container_add " win " " table))
(gtk (+ "gtk_container_add " win " " table))
(assign button1 (gtk "gtk_button_new_with_label Exit"))
(gtk (+ "gtk_table_attach_defaults " table " " button1 " 17 28 20 25"))
(assign button2 (gtk "gtk_button_new_with_label Print "))
(gtk (+ "gtk_table_attach_defaults " table " " button2 " 2 13 20 25"))
(assign entry (gtk "gtk_entry_new"))
(gtk (+ "gtk_table_attach_defaults " table " " entry " 2 28 5 15"))
(gtk (+ "gtk_widget_show_all " win))
(until (or (is event button1) (is event win))
(assign event (gtk "gtk_server_callback wait"))
(if (is event button2)
(prn "this is the conents: " (gtk (+ "gtk_entry_get_text " entry)))))
(gtk "gtk_server_exit")
Thanks |