
-------------------------------------------------------------------------------------
--# Custom Tooltips - routine to build fancier tooltips with images, etc...
-------------------------------------------------------------------------------------

include GtkEngine.e

sequence docs = `
This is just some various stuff stuck into a Window.
Mouse over the Help button to see a <b><u>Custom Tooltip</u></b>.

`

if inet_connected() then -- add optional link to website if connected to internets;
docs &= `In addition, here's a link to <a href="http://gtk.org" title="Click me to visit the GTK website!">gtk.org</a>`
end if

constant txt = {"Click to <b><i>exit</i></b>","Click button to see <b><u>help</u></b>"}
constant img = {
    create(GdkPixbuf,"thumbnails/clown.png",80,80,1),
    create(GdkPixbuf,"thumbnails/gtk-logo-rgb.gif",80,80,1)}

constant win = create(GtkWindow,
    "size=400x400,border_width=10,position=1,$destroy=Quit")

constant panel = create(GtkBox,VERTICAL)
    add(win,panel)

constant photo = create(GtkImage,"thumbnails/jeff.jpg")
    add(panel,photo)

constant lbl1 = create(GtkLabel)
    set(lbl1,"markup",docs)
    add(panel,lbl1)

sequence btn = repeat(0,2)

btn[1] = create(GtkButton,"gtk-quit","Quit")
    set(btn[1],"has tooltip",TRUE)
    connect(btn[1],"query-tooltip","MakeCustomTooltip") -- call custom tip builder func;
    
btn[2] = create(GtkButton,"gtk-help","Help")
    set(btn[2],"has tooltip",TRUE)
    connect(btn[2],"query-tooltip","MakeCustomTooltip") -- call custom tip builder func;

constant btnbox = create(GtkButtonBox)
    add(btnbox,btn)
    pack(panel,-btnbox)

show_all(win)
main()

-- must write a function to build a custom tooltip on 'query-tooltip' signal;
--------------------------------------------------------------------------------
global function MakeCustomTooltip(atom b, integer x, integer y, atom mode, Tooltip tip) 
--------------------------------------------------------------------------------
integer n = find(b,btn)
    set(tip,"icon",img[n])
    set(tip,"markup",txt[n])
return 1
end function

------------------------------------------------------------------------
global function Help()
------------------------------------------------------------------------
return Info(win,"Help","Some help",
	"could appear here,\nif I weren't too lazy to type some...",,,img[2])
end function
