-------------------------------------------------------------------------------- --# GTK Radio Buttons -------------------------------------------------------------------------------- include GtkEngine.e constant docs = `RadioButtons Choose a beverage (only 1 to a customer)`, fmt = "%s", bob = create(GdkPixbuf,"thumbnails/user_icon.gif") constant win = create(GtkWindow, "title=`Bob's Diner`,size=250x-1,border=10,position=1,icon=face-raspberry,$destroy=Quit") constant panel = add(win,create(GtkBox,VERTICAL)) constant lbl = add(panel,create(GtkLabel,{ {"markup",docs}, {"margin bottom",5}})) sequence rb = repeat(0,4) -- each radio button in a group is parented to the previous button, rb[1] = create(GtkRadioButton,0,"#_Coke") -- except for the first, where parent = null; rb[2] = create(GtkRadioButton,rb[1],"#_Pepsi") rb[3] = create(GtkRadioButton,rb[2],"#_Mountain Dew") rb[4] = create(GtkRadioButton,rb[3],"#Iced _Tea") add(panel,rb) constant box = add(panel,create(GtkButtonBox)), btn1 = create(GtkButton,"gtk-quit","Quit"), btn2 = create(GtkButton,"gtk-ok",_("ShowBeverageChoice")) set(btn2,"can default",TRUE) -- set up btn2 to be activated on set(win,"default",btn2) add(box,{btn1,btn2}) show_all(win) main() -------------------------------------------------------------- function ShowBeverageChoice() -------------------------------------------------------------- object drink for i = 1 to length(rb) do if get(rb[i],"active") then --(1) drink = remove_all('_',get(rb[i],"label")) --(2) exit --(3) end if end for Info(win,"Bob's Diner","Your Beverage Choice", sprintf(fmt,{drink}),,bob,"face-raspberry") return 1 end function --[1] check for selected button, --[2] remove leading underscore for neat display, --[3] since there can only be one active, we're done!