58 lines
1.7 KiB
Elixir
58 lines
1.7 KiB
Elixir
|
|
||
|
--------------------------------------------------------------------------------
|
||
|
--# Linking button clicks to a user-written function
|
||
|
--------------------------------------------------------------------------------
|
||
|
|
||
|
include GtkEngine.e
|
||
|
|
||
|
constant docs = `<u><b>Linking</b></u>
|
||
|
The 'OK' button is linked to a
|
||
|
user-written Euphoria function
|
||
|
`
|
||
|
constant win = create(GtkWindow,"border=10,position=1,$destroy=Quit")
|
||
|
|
||
|
constant panel = create(GtkBox,"orientation=VERTICAL")
|
||
|
add(win,panel)
|
||
|
|
||
|
-- Different platforms have different icon sets,
|
||
|
-- let's try to find one that will work here.
|
||
|
-- We can include our own images in the list,
|
||
|
-- as a fallback:
|
||
|
|
||
|
sequence icon = valid_icon_name({"face-cool","face-monkey","thumbnails/mongoose.png","error"})
|
||
|
|
||
|
constant face = create(GtkImage,icon,128) -- image from the icon theme at 128px wide
|
||
|
add(panel,face)
|
||
|
|
||
|
constant lbl = create(GtkLabel)
|
||
|
set(lbl,"markup",docs)
|
||
|
add(panel,lbl)
|
||
|
|
||
|
constant
|
||
|
btn1 = create(GtkButton,"gtk-quit","Quit"),
|
||
|
btn2 = create(GtkButton,"gtk-ok",_("Moo")), -- _() = get local callback;
|
||
|
box = pack_end(panel,create(GtkButtonBox))
|
||
|
add(box,{btn1,btn2})
|
||
|
|
||
|
show_all(win)
|
||
|
main()
|
||
|
|
||
|
---------------
|
||
|
function Moo()
|
||
|
---------------
|
||
|
Info(win, -- parent window;
|
||
|
"Moo!", -- dialog title;
|
||
|
"You are here", -- dialog primary text (auto bold);
|
||
|
"Wasn't that <i><u>easy?</u></i>?" -- dialog secondary text;
|
||
|
,GTK_BUTTONS_CLOSE, -- buttons;
|
||
|
"thumbnails/cowbell2.png", -- dialog icon;
|
||
|
"thumbnails/cowbell.png") -- titlebar icon;
|
||
|
|
||
|
-- See dialogs.html in the documentation folder for details on the
|
||
|
-- prebuilt pop-up dialogs.
|
||
|
|
||
|
return 1
|
||
|
end function
|
||
|
|
||
|
|