-------------------------------------------------------------------------- --# GtkStack with visible stack switcher -------------------------------------------------------------------------- include GtkEngine.e requires("3.10","GtkStack") integer which = 1 constant txt = `GtkStack The GtkStack widget is a container which only shows one of its children at a time. In contrast to GtkNotebook, GtkStack does not provide a means for users to change the visible child. Instead, the GtkStackSwitcher widget (two buttons above) can be used with GtkStack to provide this functionality. Transitions between pages can be animated as slides or fades. This can be controlled with gtk_stack_set_transition_type(). These animations respect the "gtk-enable-animations" setting. ` constant win = create(GtkWindow,"border=10,position=1,$destroy=Quit") constant panel = create(GtkGrid) add(win,panel) constant img1 = create(GtkImage,"thumbnails/mongoose.png"), img2 = create(GtkImage,"thumbnails/clown.svg"), lgpl = create(GtkLabel,LGPL), stk = create(GtkStack,{ {"transition duration",1000}, {"transition type",GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN}, {"add titled",img1,"Eu","Euphoria"}, {"add titled",img2,"C","C"}}) set(panel,"attach",stk,1,6,4,1) constant switcher = create(GtkStackSwitcher) set(switcher,"stack",stk) set(panel,"attach",switcher,2,10,4,4) constant lbl = create(GtkLabel,{ {"markup",txt}, {"font","8"}, {"line wrap",TRUE}}) set(panel,"attach",lbl,1,15,4,4) constant box = create(GtkButtonBox) add(box,{ create(GtkButton,"gtk-quit","Quit"), create(GtkButton,"Change Mascots","Change")}) set(panel,"attach",box,1,20,4,4) show_all(win) main() ------------------------- global function Change() ------------------------- object current = get(stk,"visible child name") if equal("Eu",current) then set(stk,"visible child name","C") else set(stk,"visible child name","Eu") end if return 1 end function