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

59 lines
1.7 KiB
Elixir

--------------------------------------------------------------------------------
--# GtkSpinButton for getting numeric input
--------------------------------------------------------------------------------
include GtkEngine.e
constant docs = `<b><u>SpinButton</u></b>
For getting integer or floating-point values
from the user.`
constant win = create(GtkWindow,
"size=100x100,position=1,border_width=10,$destroy=Quit")
constant panel = create(GtkBox,"orientation=VERTICAL,spacing=10")
add(win,panel)
constant lbl = create(GtkLabel,{{"markup",docs}})
add(panel,lbl)
constant spinbtn = create(GtkSpinButton,0,100,0.010)
set(spinbtn,"margin_left=100,margin_right=100")
add(panel,spinbtn)
constant box = create(GtkButtonBox,{
{"spacing",10},
{"layout",GTK_BUTTONBOX_END}})
pack(panel,-box)
add(box,{
create(GtkButton,"gtk-quit","Quit"),
create(GtkButton,"_Value",_("ShowValue"),0),
create(GtkButton,"_Adjustment",_("ShowAdj"),0)})
show_all(win)
main()
----------------------------------------
function ShowValue()
----------------------------------------
return Info(win,"Spin","Value of spin button",
sprintf("%2.2f",get(spinbtn,"value")))
end function
-- You can get more details by accessing the spin button's adjustment;
-----------------------------------
function ShowAdj()
-----------------------------------
atom adj = get(spinbtn,"adjustment")
Info(win,"Adjustment",
format("Value [.2]",get(spinbtn,"value")),
format("Lower limit: [], Upper limit: []\nAs integer: []\nStep increment: [.2]",
{get(adj,"lower"),
get(adj,"upper"),
get(spinbtn,"value as int"),
get(adj,"step increment")}))
--etc. see GtkAdjustment
return 1
end function