El mar, 13-06-2006 a las 22:36 -0400 > Hola muchachos , > > Junto con saludarlos, pregunto si a alguien le intersaria usar y/o > mejorar una grilla como esta que adjunto, para uso general. > > No es excelentemente buena, ni nada del otro mundo. > La idea es solo facilitar la vida del programador de gtk#. > > Adjunto un screenshot y el fuente que le corresponde, junto a la grilla, > esta vez, zipeada. :-p > Fuente: http://www.esnips.com/web/mios saludos.
using System;
using System.Collections.Generic;
using System.Text;
using GridWidget;
namespace GridTestCase
{
public enum UserOptions
{
One,
Two,
Tree,
Four,
Five
}
[Table(RulesHint=true)]
public class Picture
{
private string author;
private int percent;
private bool printed;
private string title;
private Gdk.Pixbuf foto;
private UserOptions option;
public Picture()
{
author = "";
percent = 0;
printed = false;
title = "";
foto = null;
option = UserOptions.Tree;
}
[Column(Editable = true)]
public string Title
{
get { return title; }
set { title = value; }
}
[Column(Editable = true)]
public bool Printed
{
get { return printed; }
set { printed = value; }
}
[Column("Hola", Resizable=false)]
public Gdk.Pixbuf Foto
{
get { return foto; }
set { foto = value; }
}
[Column(Editable = true)]
public string Author
{
get { return author; }
set { author = value; }
}
[Column("Percentage", Type = typeof(ProgressInt))]
public int Percent
{
get { return percent; }
set { percent = value; }
}
public override string ToString()
{
return String.Format("Author: {0} %: {1}", author, percent);
}
public UserOptions Option
{
get { return option; }
set { option = value; }
}
}
}
using System;
using System.Collections;
using System.Text;
using GridWidget;
using Gtk;
namespace GridTestCase
{
public class Proggy : Window
{
Grid grid;
public Proggy() : base("Test Proggy")
{
HeightRequest = 400;
WidthRequest = 400;
IList pics = LoadPictures();
grid = new Grid();
grid.ObjectChanged += new ObjectChangedHandler(ShowMe);
grid.ObjectCreated += new ObjectChangedHandler(ShowNew);
grid.ObjectDeleted += new ObjectChangedHandler(ShowDeleted);
Add(grid);
ShowAll();
//grid.Setup(typeof(Picture));
grid.Objects = pics;
grid.CanDeleteAndAddObjects = true;
}
void ShowMe(object o, string s)
{
Console.WriteLine("Changed object : {0} ({1} was changed..)", o, s);
}
void ShowDeleted(object o, string s)
{
Console.WriteLine("Deleted object: {0}", o);
}
void ShowNew(object o, string s)
{
Console.WriteLine("New object: {0}", o);
}
IList LoadPictures()
{
ArrayList list = new ArrayList();
Random r = new Random();
for (int i = 1; i <= 2640; i++)
{
Picture p = new Picture();
p.Author = "Who? ";
p.Printed = i % 4 == 0;
p.Title = "Picture Nr. " + i.ToString();
p.Percent = r.Next(0, 100);
p.Foto = new Gdk.Pixbuf(@"C:\hello.jpg");
p.Option = UserOptions.Four;
list.Add(p);
}
return list;
}
}
class Program
{
static void Main(string[] args)
{
Application.Init();
new Proggy();
Application.Run();
}
}
}
Attachment:
untitled.jpg
Description: JPEG image