-------------------------------------------------------------------------- --# GtkToggleToolButtons -------------------------------------------------------------------------- include GtkEngine.e constant docs = `ToggleToolButtons Choose none, several, or all options. Click buttons above. ` constant names = {"Clown","Dragon","Fish"} constant win = create(GtkWindow,"border=10,size=300x300,position=1,$destroy=Quit") constant panel = create(GtkBox,VERTICAL) add(win,panel) constant bar = create(GtkToolbar) pack(panel,bar) object tb = repeat(0,3) constant img1 = create(GdkPixbuf,"thumbnails/clown.png",25,25) tb[1]= create(GtkToggleToolButton,"1","Show",1) set(tb[1],"icon widget",create(GtkImage,img1)) constant img2 = create(GdkPixbuf,"thumbnails/dragon.png",25,25) tb[2] = create(GtkToggleToolButton,"2","Show",2) set(tb[2],"icon widget",create(GtkImage,img2)) constant img3 = create(GdkPixbuf,"thumbnails/fish.png",25,25) tb[3] = create(GtkToggleToolButton,"3","Show",3) set(tb[3],"icon widget",create(GtkImage,img3)) add(bar,tb) constant lbl1 = create(GtkLabel) set(lbl1,"markup",docs) add(panel,lbl1) constant lbl2 = create(GtkLabel,"font=18,color=red") add(panel,lbl2) show_all(win) main() -------------------------------------------- global function Show(atom ctl, atom data) -------------------------------------------- object txt = "", char = " " for i = 1 to 3 do if get(tb[i],"active") then char = "✔" else char = " " end if txt &= sprintf("%s %s\n",{names[i],char}) end for set(lbl2,"markup",txt) return 1 end function