All pastes #561010 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-12 09:14 UTC
rendered paste body
using System.Collections;
 
public class Song
{
	public Song (string artist, string title)
	{
		this.Artist = artist;
		this.Title = title;
	}
 
	public string Artist;
	public string Title;
}
 
public class TreeViewExample
{
	public static void Main ()
	{
		Gtk.Application.Init ();
		new TreeViewExample ();
		Gtk.Application.Run ();
	}
 
	ArrayList songs;
	
	public TreeViewExample ()
	{
		songs = new ArrayList ();
 
		songs.Add (new Song ("Dancing DJs vs. Roxette", "Fading Like a Flower"));
		songs.Add (new Song ("Xaiver", "Give me the night"));
		songs.Add (new Song ("Daft Punk", "Technologic"));
 
		Gtk.Window window = new Gtk.Window ("TreeView Example");
		window.SetSizeRequest (500,200);
 
		Gtk.TreeView tree = new Gtk.TreeView ();
		window.Add (tree);
 
		Gtk.TreeViewColumn artistColumn = new Gtk.TreeViewColumn ();
		artistColumn.Title = "Artist";
		Gtk.CellRendererText artistNameCell = new Gtk.CellRendererText ();
		artistColumn.PackStart (artistNameCell, true);
 
		Gtk.TreeViewColumn songColumn = new Gtk.TreeViewColumn ();
		songColumn.Title = "Song Title";
		Gtk.CellRendererText songTitleCell = new Gtk.CellRendererText ();
		songColumn.PackStart (songTitleCell, true);
 
		Gtk.ListStore musicListStore = new Gtk.ListStore (typeof (Song));
		foreach (Song song in songs) {
			musicListStore.AppendValues (song);
		}
 
		artistColumn.SetCellDataFunc (artistNameCell, new Gtk.TreeCellDataFunc (RenderArtistName));
		songColumn.SetCellDataFunc (songTitleCell, new Gtk.TreeCellDataFunc (RenderSongTitle));
 
		tree.Model = musicListStore;
 
		tree.AppendColumn (artistColumn);
		tree.AppendColumn (songColumn);
 
		window.ShowAll ();
 
	}
 
	private void RenderArtistName (Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
	{
		Song song = (Song) model.GetValue (iter, 0);
 
		if (song.Artist.StartsWith ("X") == true) {
			(cell as Gtk.CellRendererText).Foreground = "red";
		} else {
			(cell as Gtk.CellRendererText).Foreground = "darkgreen";
		}
 
		(cell as Gtk.CellRendererText).Text = song.Artist;
	}
 
	private void RenderSongTitle (Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
	{
		Song song = (Song) model.GetValue (iter, 0);
		(cell as Gtk.CellRendererText).Text = song.Title;
	}
 
}