68 lines
2.0 KiB
Elixir
68 lines
2.0 KiB
Elixir
|
|
--------------------------------------------------------------------------------
|
|
--# GTK Entry for getting small amounts of text
|
|
--------------------------------------------------------------------------------
|
|
|
|
include GtkEngine.e
|
|
|
|
constant docs = `Type the name of the animal
|
|
in the entry box below,
|
|
then click OK
|
|
`
|
|
constant win = create(GtkWindow,"border=10,position=1,$destroy=Quit")
|
|
|
|
constant panel = add(win,create(GtkBox,"orientation=VERTICAL"))
|
|
|
|
constant lbl = add(panel,create(GtkLabel,{{"markup",docs}}))
|
|
|
|
constant fox = create(GdkPixbuf,"thumbnails/fox.png",20,20)
|
|
|
|
constant edt = create(GtkEntry,{
|
|
{"margin top",10},
|
|
{"margin_bottom",10},
|
|
{"icon from pixbuf",1,fox},
|
|
{"icon activatable",1,TRUE},
|
|
{"icon tooltip markup",1,"Click <i>me</i> to show the entered text"},
|
|
{"placeholder text","Name this animal"}})
|
|
connect(edt,"activate",_("ShowEntry")) -- on <enter>
|
|
connect(edt,"icon-press",_("ShowEntry")) -- on icon clicked
|
|
add(panel,edt)
|
|
|
|
constant btn1 = create(GtkButton,"gtk-quit","Quit")
|
|
set(btn1,"tooltip markup","Press to <b>quit</b>")
|
|
|
|
constant btn2 = create(GtkButton,"gtk-ok",_("ShowEntry"))
|
|
set(btn2,"tooltip markup","Press to display the entered text")
|
|
|
|
constant btnbox = create(GtkButtonBox,"spacing=5")
|
|
add(btnbox,{btn1,btn2})
|
|
pack(panel,-btnbox)
|
|
set(btn2,"grab focus") -- workaround for a bug in 'placeholder text' - see GtnEntry GTK docs
|
|
|
|
show_all(win)
|
|
main()
|
|
|
|
-----------------------------------------------------------
|
|
function ShowEntry()
|
|
-----------------------------------------------------------
|
|
object guess = get(edt,"text")
|
|
|
|
if length(guess) = 0 then guess = "nothing" end if
|
|
|
|
if equal(lower(guess),"fox") then
|
|
Info(win,"Answer","<u>Correct!</u>",
|
|
sprintf("It <i>is</i> a <b>%s</b>",{guess}))
|
|
else
|
|
if Question(win,"Sorry!",
|
|
sprintf("<span underline='error' color='red'>%s</span> is not correct",{guess}),
|
|
"Want to try again?") = MB_NO then Quit()
|
|
end if
|
|
set(edt,"text","")
|
|
end if
|
|
|
|
return 1
|
|
end function
|
|
|
|
|
|
|