eumandy/eugtk/examples/test171.ex

55 lines
1.4 KiB
Elixir
Raw Normal View History

2016-11-25 00:33:18 -07:00
------------------------------------------------------------------------
--# GtkSpinner demo
-- Spinner won't actually spin while a euphoria call is processed,
-- such as a call to read a large file.
-- If that is the case, you must use tasks. See examples/task.ex
------------------------------------------------------------------------
include GtkEngine.e
constant docs = `<u><b>GtkSpinner</b></u>
The spinner won't spin while a lengthy
Euphoria call is processed, such as reading
a large file.
For that, you must use tasks to keep
the spinner going. See ~/demos/examples/task.ex
`
constant win = create(GtkWindow,"size=100x100,border=10,$destroy=Quit")
constant panel = create(GtkBox,VERTICAL,10)
add(win,panel)
constant spin = create(GtkSpinner,{
{"size request",30,30}, -- make this any size you wish;
{"vexpand",TRUE},
{"hexpand",TRUE}})
add(panel,spin)
constant lbl = create(GtkLabel)
add(panel,lbl)
set(lbl,"markup",docs)
constant box = create(GtkButtonBox),
btn1 = create(GtkButton,"gtk-quit","Quit"),
btn2 = create(GtkSwitch,_("Toggle"))
add(box,{btn1,btn2})
pack(panel,-box)
show_all(win)
main()
--------------------------------------------
function Toggle(atom ctl)
--------------------------------------------
if get(ctl,"active") then
set(spin,"start")
else
set(spin,"stop")
end if
return 1
end function