43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| 
 | |
| ----------------------------------------------------------------------------
 | |
| --# Using theme icons at large sizes;
 | |
| -- If the size doesn't exist, this should fall back to the closest
 | |
| -- size that is available.
 | |
| -- While you can specify an 'odd' size, such as 210px, it's better to 
 | |
| -- stick to the default sizes: 8, 16, 22, 24, 32, 48, 128, 256, 512 pixels
 | |
| -- Look for these icon folders in /usr/share/icons/* 
 | |
| ----------------------------------------------------------------------------
 | |
| 
 | |
| include GtkEngine.e
 | |
| 
 | |
| constant docs = `<u><b>Theme Icons</b></u>
 | |
| 	Using icons at specified sizes. Path to icon 
 | |
| 	file used will be shown at bottom.
 | |
| `
 | |
| constant win = create(GtkWindow,"border=10,$destroy=Quit")
 | |
| 
 | |
| constant panel = create(GtkBox,"orientation=VERTICAL")
 | |
| 	add(win,panel)
 | |
| 
 | |
| constant lbl1 = create(GtkLabel,{{"markup",docs}})
 | |
| 	add(panel,lbl1)
 | |
| 	
 | |
| constant -- we need to do the following in order to get the icon's file location;
 | |
| 	-- if we didn't need that, we could just: create(GtkImage,"face-glasses",256)
 | |
| 	
 | |
| 	theme = create(GtkIconTheme), -- get current theme;
 | |
| 	icon_info = get(theme,"lookup icon","face-glasses",256), -- get icon details;
 | |
| 	face = get(icon_info,"load icon"), -- load selected icon;
 | |
| 	img = create(GtkImage,face) -- convert into an image;
 | |
| 	
 | |
| constant lbl2 = create(GtkLabel) -- display the location of the icon image file;
 | |
| 	pack(panel,-lbl2)
 | |
| 	set(lbl2,"markup",
 | |
| 		format("<b>File location:</b>\n[]",
 | |
| 		{get(icon_info,"filename")}))
 | |
| 
 | |
| add(panel,img) 
 | |
| 
 | |
| show_all(win)
 | |
| main()
 |