eumandy/eugtk/examples/test108.ex
2016-11-25 00:33:18 -07:00

60 lines
1.5 KiB
Elixir

----------------------------------------------------------------
--# Connecting multiple signals
----------------------------------------------------------------
include GtkEngine.e
constant docs = `<b><u>Multiple functions</u></b>
You can have one control call
multiple user-written functions.
`
constant win = create(GtkWindow,"size=100x100,position=1,border_width=10,$destroy=Quit")
constant panel = create(GtkBox,"orientation=VERTICAL")
add(win,panel)
constant lbl = create(GtkLabel)
set(lbl,"markup",docs)
add(panel,lbl)
constant btnbox = create(GtkButtonBox)
pack(panel,-btnbox)
constant btn1 = create(GtkButton,"gtk-ok")
connect(btn1,"clicked",_("Foo")) -- show foo
connect(btn1,"clicked",_("Bar")) -- then bar
connect(btn1,"clicked",_("Baz")) -- finally baz
connect(btn1,"clicked","Quit") -- then go away
constant btn2 = create(GtkButton,"gtk-quit","Quit")
add(btnbox,{btn2,btn1})
show_all(win)
main()
-- functions below will be executed in the order they are declared
-- in the 'connect' lines above.
-----------------------------
function Baz(atom ctl)
-----------------------------
Info(win,,"Baz","This is third")
return 1
end function
-----------------------------
function Foo(atom ctl)
-----------------------------
Question(win,,"Foo","This is first")
return 1
end function
-----------------------------
function Bar(atom ctl)
-----------------------------
Warn(win,,"Bar","This is second")
return 1
end function