jueves, julio 21, 2005

Clase en el IRC

Bueno al fin logre entender como funciona el API de ATOM, jeje todo gracias a Gmikex. Che gracias gran paciencia la tuya :P

Bueno para los interesados, el log de esa charla esta en el svn de monoblog

domingo, julio 17, 2005

Seguimos Avanzando

Bueno ahora los items del treeview ya son seleccionables, cargandose ademas la pagina correspondiente con el item seleccionado. Y un cambio menor pero importante, los paneles son redimensionables.

lunes, julio 11, 2005

Listo .. ahora si

Ya termine la modificacion q faltaba para poder seleccionar el post adecuado en el treeview, ahora cuando se selecciona una noticia, se carga esta en el View del lado derecho

Light Visor de Atom

Estuve tratando de liarme con el unico control que consideraba imposible del GTK, el treeview y bueno al parecer lo logre. Ahi les va un primer avance de mi codigo para visualizar Atom, me falta mejorarlo para que al momento de seleccionar un item en mi TreeView se carge la noticia respectiva pero ya lo hare despues




//VisorAtom
using System;
using System.Net;
using Atom.Core;
using Gtk;
using Glade;
using Gecko;

class AtomViewer
{

[Widget] Frame frame1;
[Widget] Entry txtURI;
[Widget] Gtk.Window wAtomViewer;
[Widget] ScrolledWindow treeframe;
WebControl web;
TreeView tv;
TreeStore store;

public static void Main()
{
new AtomViewer();
}

public AtomViewer()
{
Application.Init();

store = new TreeStore (typeof (string));

Glade.XML gxml = new Glade.XML(null,"AtomViewer.glade","wAtomViewer",null);
gxml.Autoconnect(this);

wAtomViewer.Resize(500,300);

txtURI.Activated += new EventHandler(LoadAtom);
wAtomViewer.DeleteEvent += new DeleteEventHandler(onExit);

tv = new TreeView (store);
tv.HeadersVisible = true;

tv.AppendColumn ("Post", new CellRendererText (), "text", 0);

treeframe.Add (tv);

web = new WebControl();
web.Show();

frame1.Add(web);


wAtomViewer.ShowAll();

Application.Run();

}

void LoadAtom(object o, EventArgs args)
{
web.LoadUrl(txtURI.Text);
LoadItems(txtURI.Text);
}

void onExit(object o, DeleteEventArgs args)
{
Application.Quit();
args.RetVal = true;
}

void LoadItems(string URI)
{
Console.WriteLine("LoadItems");
Uri blog = new Uri(URI);
AtomFeed feed = AtomFeed.Load(blog);
foreach (AtomEntry entry in feed.Entries)
{
Console.WriteLine(entry.Title.Content);
TreeIter iter = store.AppendValues(entry.Title.Content);
}
}

}