
-------------------------------------------------------------------------
--# GtkLevelBar 
-------------------------------------------------------------------------

include GtkEngine.e

requires("3.6","GtkLevelBar")

constant docs = `
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.
Colors and steps are adjustable.
`
constant win = create(GtkWindow,
	"title=Window,size=300x300,border_width=10,icon=face-cool,keep above=1,$destroy=Quit")

constant panel = create(GtkBox,"orientation=VERTICAL,spacing=10")
	add(win,panel)
	
constant hdr = create(GtkLabel,"markup=<u><b>GtkLevelBar</b></u>")
	add(panel,hdr)
	
constant lb = create(GtkLevelBar)
	set(lb,{
		{"name","Levelbar"},
		{"size request",-1,20},
		{"min value",0},
		{"max value",10},
		{"add offset value","low",3.0},
		{"add offset value","my-offset",5.00},
		{"add offset value","high",7.00}})
	add(panel,lb)
	
constant scale = create(GtkScale,HORIZONTAL,0,10,0.001)
	set(scale,"digits",2)
	connect(scale,"value changed","Update")
	add(panel,scale)

constant lbl = create(GtkLabel,{
	{"markup",docs}})
	add(panel,lbl)
	
constant box = create(GtkButtonBox)
	pack_end(panel,box)

constant mode = create(GtkCheckButton,"Discrete",_("ChangeMode"))

constant btn = create(GtkButton,"gtk-quit","Quit")
	add(box,{btn,mode})

show_all(win)
main()

global function Update()
atom val = allocate(32) 
	set(lb,"value",get(scale,"value"))
	display("Value [.2]",get(lb,"value"),1)
return 1
end function

function ChangeMode(atom ctl)
        set(lb,"mode",get(ctl,"active"))
return 1
end function

