#!/bin/sh # # Bourne shell IPC demo with the GTK-server # # November 12, 2006 - (c) Peter van Eerten # # As unique communication channel the current PID # number '$$' is used. #------------------------------------------------ # Communicate with GTK-server gtk() { RESULT=`gtk-server msg=$$,"$@"` } #------------------------ Main starts here # Start gtk-server in IPC mode gtk-server -ipc=$$ -detach # Setup GUI gtk "gtk_init NULL NULL" gtk "gtk_window_new 0" WIN=$RESULT gtk "gtk_window_set_title $WIN 'Bourne GTK-SERVER demo'" gtk "gtk_window_set_default_size $WIN 400 200" gtk "gtk_window_set_position $WIN 1" gtk "gtk_table_new 10 10 1" TBL=$RESULT gtk "gtk_container_add $WIN $TBL" gtk "gtk_button_new_with_label 'Click to Quit'" BUT=$RESULT gtk "gtk_table_attach_defaults $TBL $BUT 5 9 5 9" gtk "gtk_widget_show_all $WIN" EVENT=0 # Mainloop while [ $EVENT -ne $BUT ] do gtk "gtk_server_callback WAIT" EVENT=$RESULT done # Exit GTK-server gtk "gtk_server_exit"