' GTK+ Demo Program ' ' Demo created by John Spikowski - Jan 4, 2006. ' DECLARE FUNCTION gtk LIB "gtk-server.dll" ALIAS "gtk" (cmd AS ASCIIZ) AS DWORD FUNCTION PBMAIN() DIM win AS STRING DIM table AS STRING DIM exitbutton AS STRING DIM entry AS STRING DIM txtbox AS STRING DIM radio1 AS STRING DIM radio2 AS STRING DIM event AS STRING DIM tmp AS STRING DIM response AS ASCIIZ PTR gtk("gtk_server_cfg log") ' Logging Enabled - set log file path in gtk-server.cfg gtk("gtk_init NULL NULL") response = gtk("gtk_window_new 0") win = @response gtk("gtk_window_set_title " & win & " " & CHR$(34) & "GTK+ Demo program" & CHR$(34)) gtk("gtk_widget_set_usize " & win & " 450 400") response = gtk("gtk_table_new 50 50 1") table = @response gtk("gtk_container_add " & win & " " & table) response = gtk("gtk_button_new_with_label Exit") exitbutton = @response gtk("gtk_table_attach_defaults " & table & " " & exitbutton & " 41 49 45 49") response = gtk("gtk_entry_new") entry = @response gtk("gtk_table_attach_defaults " & table & " " & entry & " 1 40 45 49") response = gtk("gtk_text_new NULL NULL") txtbox = @response gtk("gtk_table_attach_defaults " & table & " " & txtbox & " 1 49 8 44") response = gtk("gtk_radio_button_new_with_label_from_widget NULL Yes") radio1 = @response gtk("gtk_table_attach_defaults " & table & " " & radio1 & " 1 10 1 4") response = gtk("gtk_radio_button_new_with_label_from_widget " & radio1 & " No") radio2 = @response gtk("gtk_table_attach_defaults " & table & " " & radio2 & " 1 10 4 7") gtk("gtk_widget_show_all " & win) gtk("gtk_widget_grab_focus " & entry) DO response = gtk("gtk_server_callback WAIT") event = @response IF event = entry THEN response = gtk("gtk_entry_get_text " & entry) tmp = @response gtk("gtk_text_insert " & txtbox & " NULL NULL NULL " & CHR$(34) & tmp & CHR$(10) & CHR$(34) & " -1") gtk("gtk_editable_delete_text " & entry & " 0 -1") ' Empty entry field END IF LOOP UNTIL event = exitbutton OR event = win gtk("gtk_server_exit") END FUNCTION