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

64 lines
1.9 KiB
Elixir

--# Sorting lists;
include GtkEngine.e
include std/sort.e
constant win = create(GtkWindow,
"size=300x500,border_width=5,position=1,$destroy=Quit")
constant panel = create(GtkBox,VERTICAL)
add(win,panel)
constant scroller = create(GtkScrolledWindow)
pack(panel,scroller,TRUE,TRUE)
object list = {
"Sam Spade","Jennifer Anniston","arnold Swartzenoggin",
"Glenda T. Goodwitch","Mary Contrary","Claire De_Loon",
"Thomas A. Train","Barbarosa","Xavier Cluegot","Joe Schmoe","Sue Mi",
"Zuzu Pitts","Tad B. Zippo, III","Bill Clinton","wilbur v. filbert",
"King George","Jane Mansfield","sarah McFee","Albert King",
"George King","lucile ball","Desi A. Arnaz"}
object tmp, first, mi, last, extra
for i = 1 to length(list) do
first = ' ' mi = ' ' last = ' ' extra = ' '
tmp = split(list[i]," ")
switch length(tmp) do
case 1 then first = proper(tmp[1])
case 2 then first = proper(tmp[1]) last = proper(tmp[2])
case 3 then first = proper(tmp[1]) mi = proper(tmp[2]) last = proper(tmp[3])
case 4 then first = proper(tmp[1]) mi = proper(tmp[2]) last = proper(tmp[3]) extra = tmp[4]
end switch
list[i] = {first &' '& mi,last &' '& extra}
end for
constant tstore = create(GtkListStore,{gSTR,gSTR})
set(tstore,"data",list)
constant
tcol1 = create(GtkColumn,"title=`First, MI`,type=text,text=1,sort_column_id=1"),
tcol2 = create(GtkColumn,"title=Last,type=text,text=2,sort_column_id=2")
constant tview = create(GtkTreeView,"rules hint=TRUE,font=Serif,headers visible=TRUE")
set(tview,{
{"model",tstore},
{"append columns",{tcol1,tcol2}}})
add(scroller,tview)
constant btn1 = create(GtkButton,"gtk-quit","Quit")
set(btn1,"tooltip text","Click to close")
constant btnbox = create(GtkButtonBox,"margin_top=5,margin_bottom=5")
pack(panel,-btnbox)
add(btnbox,btn1)
show_all(win)
main()