REM ************************************************************* REM REM Demoprogram for Yabasic with the GTK-server using named PIPES REM REM Tested on Win2000/WinXP using Yabasic 2.751 REM REM Will not work on Win9x/ME because these platforms do not REM support Named Pipes. REM REM By Peter van Eerten, July 4 2004 REM REM To avoid Yabasic popping up a console, please use the REM free RUN-tools at http://www.turtle.dds.nl/run/. REM Revised for GTK-server 1.2 at October 10, 2004 REM Revised for GTK-server 1.3 at December 5, 2004 REM ************************************************************* SUB GTK$(st$) LOCAL tp$ PRINT #1 st$; LINE INPUT #2 tp$ RETURN tp$ END SUB REM ************* MAIN program starts here REM Start the GTK-server and wait for initialization SYSTEM("start gtk-server.exe fifo") SLEEP 1 REM Open PIPES OPEN "\\\\.\\pipe\\out" FOR WRITING AS 1 SLEEP 0.5 OPEN "\\\\.\\pipe\\in" FOR READING AS 2 SLEEP 0.5 REM Setup GUI GTK$("gtk_init NULL NULL") win$ = GTK$("gtk_window_new 0") GTK$("gtk_window_set_title " + win$ + " " + chr$(34) + "Yabasic Demo program" + chr$(34)) GTK$("gtk_widget_set_usize " + win$ + " 450 400") table$ = GTK$("gtk_table_new 50 50 1") GTK$("gtk_container_add " + win$ + " " + table$) button$ = GTK$("gtk_button_new_with_label Exit") GTK$("gtk_table_attach_defaults " + table$ + " " + button$ + " 41 49 45 49") entry$ = GTK$("gtk_entry_new") GTK$("gtk_table_attach_defaults " + table$ + " " + entry$ + " 1 40 45 49") txt$ = GTK$("gtk_text_new NULL NULL") GTK$("gtk_table_attach_defaults " + table$ + " " + txt$ + " 1 49 8 44") radio1$ = GTK$("gtk_radio_button_new_with_label_from_widget NULL Yes") GTK$("gtk_table_attach_defaults " + table$ + " " + radio1$ + " 1 10 1 4") radio2$ = GTK$("gtk_radio_button_new_with_label_from_widget " + radio1$ + " No") GTK$("gtk_table_attach_defaults " + table$ + " " + radio2$ + " 1 10 4 7") GTK$("gtk_widget_show_all " + win$) GTK$("gtk_widget_grab_focus " + entry$) REM Mainloop REPEAT event$ = GTK$("gtk_server_callback wait") IF (event$ = entry$) THEN tmp$ = GTK$("gtk_entry_get_text " + entry$) GTK$("gtk_text_insert " + txt$ + " NULL NULL NULL " + chr$(34) + tmp$ + chr$(34) + " -1") REM Empty entry field tmp$ = GTK$("gtk_editable_delete_text " + entry$ + " 0 -1") ENDIF UNTIL (event$ = button$) tmp$ = GTK$("gtk_server_exit") CLOSE 1 CLOSE 2 END