Pastey longhand version
- Posted by petelomax Feb 04, 2021
include pGUIC.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) --?{"dict_dize",dict_size(hdict)} Element button = get_element_by_handle(ctl) string title = button.tooltip_text, question = button.get_data("Question"), -- get data items by name; answer = button.get_data("Answer") answer = substitute_all(decode_base64(answer),{"<i>","</i>"},{"",""}) -- now we build our own custom dialog; Label ans = new() ans.title = answer ans.font = "Courier Bold Italic 18" Hbox bx = new() bx.add(Filler()) bx.add(ans) bx.add(Filler()) bx.margin = "10x20" Expander expd = new() expd.title = "Click here to see the answer..." expd.add(bx) expd.state = "CLOSE" Label icon = new() icon.image = "IUP_IconMessageHelp" icon.padding = "10x10" Label qlbl = new() qlbl.title = question Hbox qbox = new() qbox.add(Filler()) qbox.add(icon) qbox.add(qlbl) qbox.add(Filler()) qbox.margin = "0x20" qbox.normalizesize = "vertical" Vbox vbox = new() vbox.add(qbox) vbox.add(expd) Window dlg = new() dlg.add(vbox) dlg.title = title dlg.size = "600x250" dlg.parent = ctl dlg.popup(IUP_LEFTPARENT,IUP_TOPPARENT) -- delete(dlg) -- NB crashes on <= 0.8.3 return 1 end function IupOpen() IupImageLibOpen() Label lbl = new({docs}) Hbox lbox = new({{Filler(),lbl,Filler()}}) Button btn1 = new() btn1.title = "Question _1" btn1.action = ShowMe btn1.tooltip_text = "World History" btn1.image = "IUP_MessageHelp" btn1.padding = "5x5" btn1.set_data("Question",q1) btn1.set_data("Answer",a1) Button btn2 = new() btn2.title = "Question _2" btn2.action = ShowMe btn2.tooltip_text = "Science" btn2.image = "IUP_MessageHelp" btn2.padding = "5x5" btn2.set_data("Question",q2) btn2.set_data("Answer",a2) Button btn3 = new() btn3.title = "Question _3" btn3.action = ShowMe btn3.tooltip_text = "Business" btn3.image = "IUP_MessageHelp" btn3.padding = "5x5" btn3.set_data("Question",q3) btn3.set_data("Answer",a3) Hbox box = new() box.add(btn1) box.add(Filler()) box.add(btn2) box.add(Filler()) box.add(btn3) box.gap = 5 --procedure set(struct s, string field, object v) -- s[field] = v --end procedure Vbox pan = new() pan.add(lbox) pan.add(Filler()) pan.add(box) pan.gap = 10 -- set(pan,"gap",10) pan.margin = "10x10" -- set(pan,"margin","10x10") Window win = new() win.add(pan) win.title = `IupExpander and Data Passing` win.show() IupMainLoop() --delete(win) -- (may crash on <= 0.8.3)


