eumandy/eugtk/examples/test107.ex

46 lines
1.1 KiB
Elixir
Raw Permalink Normal View History

2016-11-25 00:33:18 -07:00
--# Passing formatting data attached to buttons
include GtkEngine.e
constant docs = `<b><u>Sending Formatting data</u></b>
We can attach formatting data to controls and
it will be sent to our user-written routine.`
constant win = create(GtkWindow,"size=300x100,position=1,border_width=10,$destroy=Quit")
constant panel = create(GtkBox,"orientation=VERTICAL")
add(win,panel)
constant lbl1 = create(GtkLabel)
set(lbl1,"markup",docs)
add(panel,lbl1)
constant sep = add(panel,create(GtkSeparator,"margin_top=5,margin_bottom=5"))
constant n = 12.345
constant lbl2 = create(GtkLabel,"12.345")
add(panel,lbl2)
integer x = _("X")
constant box = create(GtkButtonBox)
pack(panel,-box)
add(box,
{create(GtkButton,"Dollar",x,"$%2.2f"),
create(GtkButton,"Integer",x,"%d"),
create(GtkButton,"Hex",x,"#%06x"),
create(GtkButton,"gtk-revert-to-saved",x,"%g")})
show_all(win)
main()
------------------------------------------------------------------------
function X(atom ctl, object fmt)
------------------------------------------------------------------------
fmt = unpack(fmt)
set(lbl2,"markup",sprintf(fmt,{n}))
return 1
end function