#!/usr/local/bin/lua -------------------------------------------------------------------- -- -- Demo for GTK-server 1.3 with LUA -- -- Tested with LUA 5.0.2 on Slackware 10 --- http://www.lua.org/ -- -- Feb 27, 2005 - PvE. -- Revised for GTK-server 2.0.6 at december 17, 2005 -- -------------------------------------------------------------------- -- Communication function function gtk(str) local buf="" local fp = io.open ("/tmp/demo.lua", "a") fp:write(str) fp:close() local fp = io.open ("/tmp/demo.lua", "r") buf = fp:read("*l") fp:close() return buf end -- Start GTK-server and wait for initialization os.execute ("gtk-server -fifo=/tmp/demo.lua -detach") -- Build GUI gtk ("gtk_init NULL NULL") WIN = gtk ("gtk_window_new 0") gtk ("gtk_widget_set_usize " .. WIN .. " 300 100") gtk ("gtk_window_set_title " .. WIN .. " \"LUA with GTK\"") gtk ("gtk_window_set_position " .. WIN .. " 1") TBL = gtk ("gtk_table_new 20 20 1") gtk ("gtk_container_add " .. WIN .. " " .. TBL) BUT = gtk ("gtk_button_new_with_label \"Click to Quit\"") gtk ("gtk_table_attach_defaults " .. TBL .. " " .. BUT .. " 12 19 12 19") LAB = gtk ("gtk_label_new \"LUA uses GTK now!!\"") gtk ("gtk_table_attach_defaults " .. TBL .. " " .. LAB .. " 1 15 1 10") gtk ("gtk_widget_show_all " .. WIN) -- Mainloop repeat EVENT = gtk("gtk_server_callback wait") until EVENT == BUT or EVENT == WIN -- Exit GTK-server gtk ("gtk_server_exit")