<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>il libero &#187; Proyectos</title>
	<atom:link href="http://www.miltonpividori.com.ar/category/proyectos/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.miltonpividori.com.ar</link>
	<description>Blog de Milton Pividori</description>
	<lastBuildDate>Mon, 02 Jan 2012 04:12:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Gtk+: trabajando con TreeViews</title>
		<link>http://www.miltonpividori.com.ar/2009/06/22/gtk-trabajando-con-treeviews/</link>
		<comments>http://www.miltonpividori.com.ar/2009/06/22/gtk-trabajando-con-treeviews/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 13:32:47 +0000</pubDate>
		<dc:creator>miltondp</dc:creator>
				<category><![CDATA[Facultad]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Mono/.NET]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://www.miltonpividori.com.ar/?p=668</guid>
		<description><![CDATA[Este post puede ser útil para los que utilicen el widget TreeView de Gtk+ (no importa el lenguaje mientras haya bindings), y necesiten activar por código celdas en modo edición. Hay algunas cuestiones a tener en cuenta. Para el Proyecto Final de Carrera estamos desarrollando un sistema de nivel operativo, con funciones de facturación y [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.miltonpividori.com.ar/wp-content/uploads/2009/06/edicion-treeview1.png" alt="edicion-treeview1" title="edicion-treeview1" width="186" height="69" class="alignright size-full wp-image-685" /></p>
<p>Este post puede ser útil para los que utilicen el widget <a href="http://library.gnome.org/devel/gtk/unstable/GtkTreeView.html">TreeView</a> de <a href="http://www.gtk.org/">Gtk+</a> (no importa el lenguaje mientras haya bindings), y necesiten activar por código celdas en modo edición. Hay algunas cuestiones a tener en cuenta.</p>
<p>Para el Proyecto Final de Carrera estamos desarrollando un sistema de nivel operativo, con funciones de facturación y demás. Necesitamos manejar un TreeView con campos editables, y al finalizar la edición de uno de ellos es necesario dar el foco a otro campo en modo edición, listo para que el usuario comience a cargar datos sin tocar el mouse.</p>
<p><span id="more-668"></span><br />
Lo primero que hicimos fue conectar un método al evento <a href="http://library.gnome.org/devel/gtk/unstable/GtkCellRendererText.html#GtkCellRendererText-edited">Edited</a> del <a href="http://library.gnome.org/devel/gtk/unstable/GtkCellRendererText.html">CellRendererText</a> de la columna correspondiente. De esta forma, cuando terminamos la edición en el primer campo, podemos colocar allí el código correspondiente para actualizar el modelo del TreeView y otras operaciones más, entre ellas (la que nos interesa) dar el foco al segundo campo en modo edición. La parte final de este método (el evento se activa al finalizar la edición) había quedado así:</p>
<pre class="brush: csharp; title: ; notranslate">
/* ... */

this.tvItems.SetCursor(path,
					   this.tvcCodigoProducto,
					   true);
</pre>
<p>Hay que tener cuidado al utilizar la función <a href="http://library.gnome.org/devel/gtk/unstable/GtkTreeView.html#gtk-tree-view-set-cursor">SetCursor</a>. En algunos casos, si no la usamos cuidadosamente, el TreeView no se comportará en forma correcta. Esos casos son por ejemplo cuando el usuario, al estar editando el campo, hace click en otra fila. Esto hace que se dispare el evento <em>Edited</em>, y por lo tanto se activa el modo edición en el segundo campo (SetCursor), pero el foco lo tiene otra fila, y esto hace que el funcionamiento sea incorrecto.</p>
<p>La solución es, antes de ejecutar SetCursor, verificar qué tipo de evento ha ocurrido. En nuestro caso, ejecutamos dicha función sólo si se ha oprimido la tecla <em>Return</em>. El código queda así:</p>
<pre class="brush: csharp; title: ; notranslate">
/* Una vez editada la cantidad, automáticamente
 * pasamos el foco al campo de 'código' en modo
 * edición, pero en una nueva fila. A esto lo hacemos
 * únicamente si el usuario presionó la tecla Enter */

Gdk.Event ev = Gtk.Application.CurrentEvent;

if (ev.Type == Gdk.EventType.KeyPress) {
	Gdk.EventKey evKey = (Gdk.EventKey)ev;

	if (evKey.Key == Gdk.Key.Return)
		this.tvItems.SetCursor(path,
							   this.tvcCodigoProducto,
							   true);
}
</pre>
<p>Lo cual es más lógico también: si se hace click en otra fila, seguramente es porque se quiere editar otro ítem y por lo tanto no es correcto forzar el foco en otro lugar. Además, como se dijo, esto hacía que el TreeView quede en un estado inconsistente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miltonpividori.com.ar/2009/06/22/gtk-trabajando-con-treeviews/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Zaspe# 0.0.3</title>
		<link>http://www.miltonpividori.com.ar/2008/03/27/zaspe-003/</link>
		<comments>http://www.miltonpividori.com.ar/2008/03/27/zaspe-003/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 14:10:51 +0000</pubDate>
		<dc:creator>miltondp</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[ZaspeSharp]]></category>

		<guid isPermaLink="false">http://www.miltonpividori.com.ar/2008/03/27/zaspe-003/</guid>
		<description><![CDATA[Ayer vino Sebastián a casa. Mientras tomábamos unos mates me comentó que en un evento en el que participó utilizó Zaspe#. Si si, ¡Zaspe# tiene un usuario! En realidad, quizá unos cuantos, ya que en la página de download del proyecto figuran 80 descargas al día de hoy. No no, no fui yo quien realizó [...]]]></description>
			<content:encoded><![CDATA[<p>Ayer vino <a href="http://www.sebastiangaliano.com.ar/">Sebastián</a> a casa. Mientras tomábamos unos mates me comentó que en un evento en el que participó utilizó Zaspe#. Si si, ¡Zaspe# tiene un usuario! <img src='http://www.miltonpividori.com.ar/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  En realidad, quizá unos cuantos, ya que en la <a href="http://code.google.com/p/zaspe-sharp/downloads/list">página de download del proyecto</a> figuran 80 descargas al día de hoy. No no, no fui yo quien realizó las descargas para hacerles creer que algunas personas tienen algún tipo de interés, al parecer, de verdad lo tienen <img src='http://www.miltonpividori.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Quizá al probarlo se dieron cuenta de que todavía le falta bastante, si bien es posible registrar personas, eventos y llevar las asistencias. Lo más importante, que me comentaba el Seba, son los reportes, algo de lo que carece.</p>
<p>Esta aplicación me sirvió más a mí para aprender Gtk con Mono que al usuario que en un principio me había pedido este desarrollo.</p>
<p>En fin, Sebastián me mencionó algunos bugs que tenía la versión 0.0.2, de lo que era consciente, y ya estaban corregidos en trunk. Por lo tanto, decidí realizar <a href="http://zaspe-sharp.googlecode.com/files/ZaspeSharp-0.0.3.zip">este release</a>. El proyecto está bastante parado, el problema, como dije, son los reportes. Hubo avances con MonoReporter, pero todavía nada suficiente como para poder generar listados de personas, de eventos, asistencias, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miltonpividori.com.ar/2008/03/27/zaspe-003/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gtk# 2.10 en Windows</title>
		<link>http://www.miltonpividori.com.ar/2007/06/23/gtk-210-en-windows/</link>
		<comments>http://www.miltonpividori.com.ar/2007/06/23/gtk-210-en-windows/#comments</comments>
		<pubDate>Sat, 23 Jun 2007 19:44:55 +0000</pubDate>
		<dc:creator>miltondp</dc:creator>
				<category><![CDATA[Mono/.NET]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.miltonpividori.com.ar/?p=126</guid>
		<description><![CDATA[Medsphere liberó hace muy poco un instalador de los binding de Gtk+ para el Framework .NET. Esta versión de los bindings funcionaban muy bien en GNU/Linux, pero tenían un bug cuando se las utilizaba en Windows, que ahora fue corregido. El problema de este instalador es que necesita, exclusivamente, la versión 1.1 de .NET. Yo [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.medsphere.com/">Medsphere</a> liberó hace muy poco un <a href="http://sourceforge.net/project/showfiles.php?group_id=74626&#038;package_id=223067">instalador de los binding de Gtk+ para el Framework .NET</a>. Esta versión de los bindings funcionaban muy bien en GNU/Linux, pero tenían un bug cuando se las utilizaba en Windows, que ahora fue corregido. El problema de este instalador es que necesita, exclusivamente, la versión 1.1 de .NET. Yo estoy haciendo un desarrollo en Mono con Gtk#, pero utilizo características de la versión 2.0 del framework, el cual es el que uso necesariamente en Windows.</p>
<p>Gracias a que han liberado los fuentes de dicho instalador bajo la GPL, me los bajé y los modifiqué para que sí soporte el Framework 2.0. Los cambios que hice son mínimos y simples. El instalador está hecho con <a href="http://www.jrsoftware.org/isinfo.php">Inno Setup</a>.</p>
<p>Si necesitan, entonces, utilizar Gtk# 2.10 en Windows, se lo pueden bajar desde <a href="http://code.google.com/p/zaspe-sharp/downloads/list">aquí</a>. Dentro de poco, si es que me quitan las restricciones de los 20 MB por archivo, subo el SDK, y si me dan mas quota en el repositorio subversion, subo todo el código fuente del instalador, que es pesadito (~250 MB).</p>
<p>Algunos ejemplos corriendo en GNU/Linux y en Windows:</p>
<p><center><br />
<a href='http://www.miltonpividori.com.ar/wp-content/uploads/2007/06/action.png' title='action.png'><img src='http://www.miltonpividori.com.ar/wp-content/uploads/2007/06/action.png' alt='action.png' /></a></p>
<p><a href='http://www.miltonpividori.com.ar/wp-content/uploads/2007/06/calendar.png' title='calendar.png'><img src='http://www.miltonpividori.com.ar/wp-content/uploads/2007/06/calendar.png' alt='calendar.png' /></a></p>
<p><a href='http://www.miltonpividori.com.ar/wp-content/uploads/2007/06/scribble.png' title='scribble.png'><img src='http://www.miltonpividori.com.ar/wp-content/uploads/2007/06/scribble.png' alt='scribble.png' /></a><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.miltonpividori.com.ar/2007/06/23/gtk-210-en-windows/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Catedrax&#8230;</title>
		<link>http://www.miltonpividori.com.ar/2006/04/24/catedrax/</link>
		<comments>http://www.miltonpividori.com.ar/2006/04/24/catedrax/#comments</comments>
		<pubDate>Mon, 24 Apr 2006 13:30:06 +0000</pubDate>
		<dc:creator>miltondp</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.miltonpividori.com.ar/?p=15</guid>
		<description><![CDATA[&#8230; es el nombre que le pusimos a un software que estamos desarrollando con unos amigos. Esta hecho en .NET con C#. Nació a partir del trabajo práctico de Diseño de Sistemas que presentamos este año. Se trata de un gestor de cátedras. Le serviría a un profesor para tener su lista de alumnos para [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; es el nombre que le pusimos a un software que estamos desarrollando con unos amigos. Esta hecho en .NET con C#. Nació a partir del trabajo práctico de Diseño de Sistemas que presentamos este año.</p>
<p>Se trata de un gestor de cátedras. Le serviría a un profesor para tener su lista de alumnos para una determinada materia, los parciales y notas, grupos, trabajos prácticos y sus resultados. La aplicación, con estos datos, calcula la regularidad de los alumnos, y genera listados. Después de presentarlo, la profesora nos dijo que a ella le hace falta algo así, por lo que decidimos seguirlo. Es Software Libre, y la verdad es que teníamos muchas ganas de estar en un proyecto así, y aprender a programar en esta nueva y prometedora plataforma. También apuntamos ansiosamente a desarrollarlo, en un futuro, principalmente en y para GNU/Linux con <a href="http://www.mono-project.com">Mono</a> (una implementación libre de .NET).</p>
<p><span id="more-15"></span>A la página la pueden encontrar <a href="http://catedrax.sourceforge.net/">aca</a> (hay algunos screenshots!). Todavía la estamos desarrollando, y pronto funcionará con <a href="http://www.drupal.org">Drupal</a>. Con respecto a Catedrax en sí, no hay aún un release hecho, aunque puede bajarse el código desde el repositorio subversión, con el siguiente comando:</p>
<p align="left"><font face="Courier New">$ svn co https://svn.sourceforge.net/svnroot/catedrax/trunk catedrax</font></p>
<p>Los usuarios de Windows disponen de <a target="_blank" href="http://tortoisesvn.tigris.org/">TortoiseSVN</a>, una extensión al shell, excelente. Los usuarios de Nautilus, pronto dispondrán de <a target="_blank" href="http://naughtysvn.tigris.org/">algo similiar</a>.</p>
<p>Vale aclarar que necesitarán descargar el <a target="_blank" href="http://msdn.microsoft.com/netframework/downloads/updates/default.aspx">.NET Framework Version 2.0 Redistributable Package</a> (no hace falta el SDK). Para compilarlo necesitan <a target="_blank" href="http://www.icsharpcode.net/OpenSource/SD/">SharpDevelop</a>. También será posible, en un futuro, hacerlo con NAnt (Ant para .NET), aunque esto no funciona correctamente aún.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miltonpividori.com.ar/2006/04/24/catedrax/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

