64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			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()
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |