eumandy/eugtk/examples/test172.ex
2016-11-25 00:33:18 -07:00

98 lines
3.0 KiB
Elixir

--------------------------------------------------------------------------
--# Locale Monetary symbols
--------------------------------------------------------------------------
include GtkEngine.e
include std/locale.e
ifdef WINDOWS then
Warn(,,"Windows has trouble with locale currency chars.")
end ifdef
constant docs = `<b><u>Locale</u></b>
This demonstrates how to add local currency symbols to
your display. I don't know if all these are correct.
Hey, it's just a demo!
`
constant text = allocate_string("text")
constant win = gtk:create(GtkWindow,"size=450x500,border=10,position=1,$destroy=Quit")
constant panel = create(GtkBox,VERTICAL)
gtk:add(win,panel)
constant lbl = create(GtkLabel)
gtk:set(lbl,"markup",docs)
gtk:add(panel,lbl)
constant scroller = create(GtkScrolledWindow)
gtk:pack(panel,scroller,TRUE,TRUE)
object data = {
{"Emperor Norton I","San Francisco, CA",44.95},
{"Alphie Packer","Donner, CA",-30.00,"en_US.utf8"},
{"John Deighton","Vancouver, BC",15.88,"en_CA.utf8"},
{"Dikka Khan","Madras, India",49.30,"en_IN.utf8"},
{"Choy Lee","Hong Kong",45.67,"en_HK.utf8"},
{"Bridget Murphy","Shannon, Ireland",48.54,"en_IE.utf8"},
{"Randy de Rand","Cape Town, South Africa",49.22,"en_ZA.utf8"},
{"Reginald Parsley","London, England",22.75,"en_GB.utf8"},
{"Jean le Bloop","Paris, France",123.45,"en_IE.utf8"}}
constant
rend1 = gtk:create(GtkCellRendererText),
col1 = gtk:create(GtkTreeViewColumn)
gtk:set(col1,"pack start",rend1)
gtk:set(col1,"add attribute",rend1,"text",1)
constant
rend2 = gtk:create(GtkCellRendererText),
col2 = gtk:create(GtkTreeViewColumn)
gtk:set(col2,"pack start",rend2)
gtk:set(col2,"add attribute",rend2,"text",2)
constant
rend3 = gtk:create(GtkCellRendererText),
col3 = gtk:create(GtkTreeViewColumn)
gtk:set(col3,"pack start",rend3)
gtk:set(col3,"add attribute",rend3,"text",3)
gtk:set(rend3,"xalign",0.9) -- money looks better when right aligned;
gtk:set(col3,"cell data func",rend3,_("Money"))
constant
rend4 = gtk:create(GtkCellRendererText),
col4 = gtk:create(GtkTreeViewColumn)
gtk:set(col4,"pack start",rend4)
gtk:set(col4,"add attribute",rend4,"text",4)
constant store = gtk:create(GtkListStore,{gSTR,gSTR,gFLT,gSTR})
constant view = gtk:create(GtkTreeView)
gtk:set(view,"model",store)
gtk:add(scroller,view)
gtk:add(view,{col1,col2,col3})
gtk:set(store,"data",data)
gtk:show_all(win)
gtk:main()
---------------------------------------------------------------
function Money(atom layout, atom rend, atom mdl, atom iter)
---------------------------------------------------------------
atom val = gtk:get(mdl,"col data from iter",iter,3) -- amount;
object loc = gtk:get(mdl,"col data from iter",iter,4) -- specified locale;
if atom(loc) then -- no locale was specified, fallback to local;
locale:set(getenv("LANG"))
else
locale:set(loc)
end if
gtk:set(rend,"property","text",locale:money(val)) -- note: must use 'property';
return 1
end function