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

73 lines
2.0 KiB
Elixir

-------------------------------------------------------------------------------------
--# GtkLevelBar -- see also test50.ex
-------------------------------------------------------------------------------------
include GtkEngine.e
requires("3.07","GtkLevelBar")
constant docs = `<u><b>LevelBar</b></u>
The GtkLevelBar is a bar widget that can be used
as a level indicator. Typical use cases are
displaying the strength of a password, or
showing the charge level of a battery.
<small>
Use gtk_level_bar_set_value() to set the
current value, and gtk_level_bar_add_offset_value()
to set the value offsets at which the bar will
be considered in a different state. GTK will add
a few offsets by default on the level bar:
GTK_LEVEL_BAR_OFFSET_LOW, GTK_LEVEL_BAR_OFFSET_HIGH
and GTK_LEVEL_BAR_OFFSET_FULL, with values 0.25,
0.75 and 1.0 respectively.</small>
`
constant win = create(GtkWindow,"border=10,size=300x200,position=1,$destroy=Quit")
constant panel = create(GtkBox,VERTICAL)
add(win,panel)
constant lbl1 = add(panel,create(GtkLabel,{
{"font","12"},
{"markup",docs}}))
constant bar = add(panel,create(GtkLevelBar,{
{"add offset value","low",0.21},
{"add offset value","high",0.74},
{"margin-bottom",10},
{"value",0.5}}))
constant fmt2 = "Above, level is %.02f in a range of 0=>1"
constant lbl2 = add(panel,create(GtkLabel,{
{"font","12"},
{"markup",sprintf(fmt2,0.5)}}))
constant spin = create(GtkSpinButton,0,1,.01)
set(spin,{
{"numeric",TRUE},
{"digits",2},
{"value",0.5},
{"signal","value-changed","Update"}})
constant
btn1 = create(GtkButton,"gtk-quit","Quit"),
box = create(GtkButtonBox,"spacing=5,margin-top=5")
pack(panel,-box)
add(box,{btn1,spin})
show_all(win)
main()
--------------------------------
global function Update(atom ctl)
--------------------------------
atom x = get(ctl,"value")
set(bar,"value",x)
set(lbl2,"markup",sprintf(fmt2,x))
return 1
end function