REM REM Demoprogram for Scriptbasic with the GTK-server using named PIPES REM REM Tested with WinXP using Scriptbasic 2.0 REM REM By Peter van Eerten, july 4 2004 REM Revised for GTK-server 1.3 at December 5, 2004 by PvE. GLOBAL CONST NL = "\n" REM ************* MAIN starts here pid = SYSTEM("gtk-server.exe fifo") REM Wait so the server can initialize SLEEP 1 OPEN "\\\\.\\pipe\\out" FOR OUTPUT AS 1 SLEEP 1 OPEN "\\\\.\\pipe\\in" FOR INPUT AS 2 tmp = GTK("gtk_init NULL, NULL") win = GTK("gtk_window_new 0") tmp = GTK("gtk_window_set_title " & win & " \"Scriptbasic Demo program\"") tmp = GTK("gtk_widget_set_usize " & win & " 450 400") table = GTK("gtk_table_new 50 50 1") tmp = GTK("gtk_container_add " & win & " " & table) button = GTK("gtk_button_new_with_label Exit") tmp = GTK("gtk_table_attach_defaults " & table & " " & button & " 41 49 45 49") entry = GTK("gtk_entry_new") tmp = GTK("gtk_table_attach_defaults " & table & " " & entry & " 1 40 45 49") text = GTK("gtk_text_new NULL NULL") tmp = GTK("gtk_table_attach_defaults " & table & " " & text & " 1 49 8 44") radio1 = GTK("gtk_radio_button_new_with_label_from_widget NULL Yes") tmp = GTK("gtk_table_attach_defaults " & table & " " & radio1 & " 1 10 1 4") radio2 = GTK("gtk_radio_button_new_with_label_from_widget " & radio1 & " No") tmp = GTK("gtk_table_attach_defaults " & table & " " & radio2 & " 1 10 4 7") tmp = GTK("gtk_widget_show_all " & win) tmp = GTK("gtk_widget_grab_focus " & entry) REPEAT event = GTK("gtk_server_callback wait") IF event = entry THEN tmp = GTK("gtk_entry_get_text " & entry) GTK("gtk_text_insert " & text & " NULL NULL NULL \"" & TRIM(tmp) & "\" -1") REM Empty entry field tmp = GTK("gtk_editable_delete_text " & entry & " 0 -1") ENDIF UNTIL event = button tmp = GTK("gtk_server_exit") result = KILL (pid) CLOSE 1 CLOSE 2 END REM ************* FUNCTION GTK(st) LOCAL tmp PRINT #1, st & nl LINE INPUT #2, tmp GTK = tmp END FUNCTION