71 lines
1.9 KiB
Elixir
71 lines
1.9 KiB
Elixir
|
|
------------------------------------------------------------------------
|
|
--# GtkScale with options
|
|
------------------------------------------------------------------------
|
|
|
|
include GtkEngine.e
|
|
|
|
constant win = create(GtkWindow,"size=200x100,border_width=10,position=1,$destroy=Quit")
|
|
|
|
constant panel = create(GtkBox,VERTICAL)
|
|
add(win,panel)
|
|
|
|
constant lbl = create(GtkLabel,"markup=<b><u>GtkScale</u></b> using an adjustment")
|
|
add(panel,lbl)
|
|
|
|
constant scale = create(GtkScale,{
|
|
{"orientation",HORIZONTAL},
|
|
{"range",0,100},
|
|
{"increments",0.01,1},
|
|
{"fill level",75},
|
|
{"show fill level",TRUE}, -- note: some themes do not colorize the fill level bar!
|
|
{"restrict to fill level",FALSE}})
|
|
add(panel,scale)
|
|
|
|
constant btn1 = create(GtkButton,"gtk-quit","Quit")
|
|
pack(panel,-btn1)
|
|
|
|
constant vwin = create(GtkWindow,{ -- secondary window to show current value;
|
|
{"title","Value"},
|
|
{"keep above",TRUE},
|
|
{"default size",150,150},
|
|
{"transient for",win},
|
|
{"deletable",FALSE},
|
|
{"type hint",GDK_WINDOW_TYPE_HINT_DIALOG},
|
|
{"position",GTK_WIN_POS_MOUSE}})
|
|
|
|
constant vlbl = create(GtkLabel,"font='Courier bold 18',text='0'") -- for value;
|
|
add(vwin,vlbl)
|
|
show_all(vwin)
|
|
|
|
show_all(win)
|
|
|
|
constant sigid = connect(scale,"value-changed","DisplayValue")
|
|
|
|
main()
|
|
|
|
------------------------------------------------------------
|
|
global function DisplayValue(atom ctl)
|
|
------------------------------------------------------------
|
|
atom val = get(ctl,"value")
|
|
set(vlbl,"markup",sprintf("%2.1f",val))
|
|
if val > 75 then
|
|
set(vwin,"title=OVER!,background=black")
|
|
set(vlbl,"background=red,foreground=white")
|
|
elsif val > 0 then
|
|
set(vwin,"title=Value,background=lightgreen")
|
|
set(vlbl,"background=green,foreground=black")
|
|
else set(vlbl,"background=gray80,foreground=black")
|
|
end if
|
|
return 1
|
|
end function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|