Pastey GTK2IUP
- Posted by petelomax
Feb 02, 2021
include pGUI.e
constant docs = `
Elements have a Data space
which you can use to declare and pass
multiple key/value pairs`
constant -- answers are encrypted to avoid overturning the legumes;
q1 = "What is purple and conquered the world?",
a1 = "PGk+QWxleGFuZGVyIHRoZSBHcmFwZSE8L2k+",
q2 = "What lies at the bottom of the ocean and twitches?",
a2 = "PGk+QSBuZXJ2b3VzIHdyZWNrLjwvaT4=",
q3 = "Why is Christmas just like another day at the office?",
a3 = "WW91IGRvIGFsbCBvZiB0aGUgd29yayBhbmQgdGhlIGZhdCBndXkKaW4gdGhlIHN1aXQgZ2V0cyBhbGwgdGhlIGNyZWRpdC4="
function ShowMe(Ihandle ctl)
string title = IupGetAttribute(ctl,"TIP"),
question = IupGetAttribute(ctl,"QUESTION"),
answer = IupGetAttribute(ctl,"ANSWER")
answer = substitute_all(decode_base64(answer),{"<i>","</i>"},{"",""})
-- now we build our own custom dialog;
Ihandle ans = IupLabel(answer,`FONT="Courier Bold Italic 18"`)
Ihandle bx = IupHbox({IupFill(),ans,IupFill()},"MARGIN=10x20")
Ihandle expd = IupExpander(bx,`TITLE="Click here to see the answer...",STATE=CLOSE`)
Ihandle icon = IupLabel("","IMAGE=IUP_IconMessageHelp, PADDING=10,10")
Ihandle qu = IupHbox({IupFill(),icon,IupLabel(question),IupFill()},"MARGIN=0x20")
IupSetAttribute(qu,"NORMALIZESIZE","VERTICAL")
Ihandln dlg = IupDialog(IupVbox({qu,expd}),"RASTERSIZE=600x250")
IupSetAttribute(dlg,"TITLE",title)
IupSetAttributeHandle(dlg,"PARENTDIALOG",IupGetDialog(ctl))
IupPopup(dlg,IUP_CURRENT,IUP_MOUSEPOS)
dlg = IupDestroy(dlg)
return IUP_DEFAULT
end function
IupOpen()
IupImageLibOpen()
Ihandle lbl = IupHbox({IupFill(),IupLabel(docs),IupFill()})
Ihandle btn1 = IupButton("Question _1",Icallback(ShowMe),`TIP="World History", IMAGE=IUP_MessageHelp, PADDING=5x5`)
IupSetAttribute(btn1,"QUESTION",q1)
IupSetAttribute(btn1,"ANSWER",a1)
Ihandle btn2 = IupButton("Question _2",Icallback(ShowMe),`TIP="Science", IMAGE=IUP_MessageHelp, PADDING=5x5`)
IupSetAttribute(btn2,"QUESTION",q2)
IupSetAttribute(btn2,"ANSWER",a2)
Ihandle btn3 = IupButton("Question _3",Icallback(ShowMe),`TIP="Business", IMAGE=IUP_MessageHelp, PADDING=5x5`)
IupSetAttribute(btn3,"QUESTION",q3)
IupSetAttribute(btn3,"ANSWER",a3)
Ihandle box = IupHbox({btn1,IupFill(),btn2,IupFill(),btn3},"GAP=5")
Ihandle pan = IupVbox({lbl,IupFill(),box},"GAP=10,MARGIN=10x10")
Ihandle win = IupDialog(pan,`TITLE="IupExpander and Data Passing"`)
IupShow(win)
IupMainLoop()