#!/usr/bin/env exu -------------------------------------- -- ToolBar.exu -- Demonstrates: -- GTK ToolBar -- GTK ToolTips -- Generating tooltips from lists -------------------------------------- include GtkEngine.e include GtkEnums.e include GtkRoutines.e include dll.e sequence tips = { {"gtk-quit","Exit the program"}, {"gtk-new","Create a new document"}, {"gtk-open","Open a file"}, {"gtk-select-color","Color"}, {"gtk-help","Help me!"}} constant msg_help = "<span color='red' size='x-large'>Help?</span>\nWe don't need no steenkin' help!" constant msg = "<b>The Goggles!</b>\nThey do nothing!\n" & "<span size='x-small'>(Neither does that button)</span>" constant win = create(GtkWindow) connect(win,"destroy",quit) set(win,"position",GTK_WIN_POS_CENTER) set(win,"default size",320,300) ----------------------------------------------------- function create_toolitem(sequence txt, sequence tip) ----------------------------------------------------- atom x = create(GtkToolButton,txt) set(x,"tooltip text",tip) return x end function ----------------------------------------------------- function Help(atom ctl, atom id) ----------------------------------------------------- object name = tips[id][2] switch id do case 1 : if Question(win,"Quit?","Are you sure?",GTK_BUTTONS_YES_NO) = -8 then call(quit) end if break case 2 : case 3 : case 4 : return Info(win,name,msg) case 5 : return Info(win,name,msg_help) end switch return 0 end function constant help = call_back(routine_id("Help")) constant panel = create(GtkVBox) add(win,panel) constant toolbar = create(GtkToolBar) object tip set(toolbar,"tooltips",TRUE) for i = length(tips) to 1 by -1 do tip = create_toolitem(tips[i][1],tips[i][2]) set(tip,"name",tips[i][2]) connect(tip,"clicked",help,i) set(toolbar,"insert",tip) end for pack(panel,toolbar) show_all(win) main() --------------------------------------------------------------- -- Copyright 2008 by Irv Mullins - code released under the LGPL ---------------------------------------------------------------