/*
 * e-cell-toggle.c: Multi-state image toggle cell object.
 *
 * Author:
 *   Miguel de Icaza (miguel@kernel.org)
 *
 * (C) 1999, 2000 Ximian, Inc
 */
#include <config.h>
#include <gtk/gtkenums.h>
#include <gtk/gtkentry.h>
#include <gtk/gtkwindow.h>
#include <gtk/gtksignal.h>
#include <gdk/gdkkeysyms.h>
#include <libgnomeui/gnome-canvas.h>
#include "e-cell-toggle.h"
#include "gal/util/e-util.h"
#include "e-table-item.h"

#define PARENT_TYPE e_cell_get_type ()

typedef struct {
	ECellView    cell_view;
	GdkGC       *gc;
	GnomeCanvas *canvas;
} ECellToggleView;

static ECellClass *parent_class;

static void
etog_queue_redraw (ECellToggleView *text_view, int view_col, int view_row)
{
	e_table_item_redraw_range (
		text_view->cell_view.e_table_item_view,
		view_col, view_row, view_col, view_row);
}

/*
 * ECell::realize method
 */
static ECellView *
etog_new_view (ECell *ecell, ETableModel *table_model, void *e_table_item_view)
{
	ECellToggleView *toggle_view = g_new0 (ECellToggleView, 1);
	ETableItem *eti = E_TABLE_ITEM (e_table_item_view);
	GnomeCanvas *canvas = GNOME_CANVAS_ITEM (eti)->canvas;
	
	toggle_view->cell_view.ecell = ecell;
	toggle_view->cell_view.e_table_model = table_model;
	toggle_view->cell_view.e_table_item_view = e_table_item_view;
	toggle_view->canvas = canvas;
	
	return (ECellView *) toggle_view;
}

static void
etog_kill_view (ECellView *ecell_view)
{
	g_free (ecell_view);
}	

static void
etog_realize (ECellView *ecell_view)
{
	ECellToggleView *toggle_view = (ECellToggleView *) ecell_view;

	toggle_view->gc = gdk_gc_new (GTK_WIDGET (toggle_view->canvas)->window);
}

/*
 * ECell::unrealize method
 */
static void
etog_unrealize (ECellView *ecv)
{
	ECellToggleView *toggle_view = (ECellToggleView *) ecv;

	gdk_gc_unref (toggle_view->gc);
	toggle_view->gc = NULL;
}

/*
 * ECell::draw method
 */
static void
etog_draw (ECellView *ecell_view, GdkDrawable *drawable,
	  int model_col, int view_col, int row, ECellFlags flags,
	  int x1, int y1, int x2, int y2)
{
	ECellToggle *toggle = E_CELL_TOGGLE (ecell_view->ecell);
	gboolean selected;
#if 0
	ECellToggleView *toggle_view = (ECellToggleView *) ecell_view;
#endif
	GdkPixbuf *image;
	int x, y, width, height;
	
	const int value = GPOINTER_TO_INT (
		 e_table_model_value_at (ecell_view->e_table_model, model_col, row));
	
	selected = flags & E_CELL_SELECTED;

	if (value >= toggle->n_states){
		g_warning ("Value from the table model is %d, the states we support are [0..%d)\n",
			   value, toggle->n_states);
		return;
	}

	image = toggle->images [value];

	if ((x2 - x1) < gdk_pixbuf_get_width (image)){
		x = x1;
		width = x2 - x1;
	} else {
		x = x1 + ((x2 - x1) - gdk_pixbuf_get_width (image)) / 2;
		width = gdk_pixbuf_get_width (image);
	}

	if ((y2 - y1) < gdk_pixbuf_get_height (image)){
		y = y1;
		height = y2 - y1;
	} else {
		y = y1 + ((y2 - y1) - gdk_pixbuf_get_height (image)) / 2;
		height = gdk_pixbuf_get_height (image);
	}

#if 0 /* do alpha */
	if (gdk_pixbuf_get_has_alpha (image)) {
		flat = gdk_pixbuf_composite_color_simple (
			image,
			gdk_pixbuf_get_width (image),
			gdk_pixbuf_get_height (image),
			GDK_INTERP_NEAREST,
			255,
			32,
			0xffffff, 0xffffff);	
		
		gdk_pixbuf_render_to_drawable (flat, drawable,
					       toggle_view->gc,
					       0, 0,
					       x, y,
					       width, height,
					       GDK_RGB_DITHER_NORMAL,
					       0, 0);
		gdk_pixbuf_unref (flat);
	} else {
		gdk_pixbuf_render_to_drawable (image, drawable,
					       toggle_view->gc,
					       0, 0,
					       x, y,
					       width, height,
					       GDK_RGB_DITHER_NORMAL,
					       0, 0);
	}
#else 
	gdk_pixbuf_render_to_drawable_alpha (image, drawable,
					     0, 0,
					     x, y,
					     width, height,
					     GDK_PIXBUF_ALPHA_BILEVEL,
					     128,
					     GDK_RGB_DITHER_NORMAL,
					     x, y);
#endif
}

static void
etog_set_value (ECellToggleView *toggle_view, int model_col, int view_col, int row, int value)
{
	ECell *ecell = toggle_view->cell_view.ecell;
	ECellToggle *toggle = E_CELL_TOGGLE (ecell);

	if (value >= toggle->n_states)
		value = 0;

	e_table_model_set_value_at (toggle_view->cell_view.e_table_model,
				    model_col, row, GINT_TO_POINTER (value));
	etog_queue_redraw (toggle_view, view_col, row);
}

/*
 * ECell::event method
 */
static gint
etog_event (ECellView *ecell_view, GdkEvent *event, int model_col, int view_col, int row, ECellFlags flags, ECellActions *actions)
{
	ECellToggleView *toggle_view = (ECellToggleView *) ecell_view;
	void *_value = e_table_model_value_at (ecell_view->e_table_model, model_col, row);
	const int value = GPOINTER_TO_INT (_value);

	if (flags & !E_CELL_EDITING)
		return 0;
	
	switch (event->type){
	case GDK_BUTTON_RELEASE:
		if (!e_table_model_is_cell_editable(ecell_view->e_table_model, model_col, row))
			return FALSE;
		
		etog_set_value (toggle_view, model_col, view_col, row, value + 1);
		return TRUE;

	case GDK_KEY_PRESS:
		if (!e_table_model_is_cell_editable(ecell_view->e_table_model, model_col, row))
			return FALSE;
		
		if (event->key.keyval == GDK_space){
			etog_set_value (toggle_view, model_col, view_col, row, value + 1);
			return TRUE;
		}
		return FALSE;
		
	default:
		return FALSE;
	}
	return TRUE;
}

/*
 * ECell::height method
 */
static int
etog_height (ECellView *ecell_view, int model_col, int view_col, int row)
{
	ECellToggle *toggle = E_CELL_TOGGLE (ecell_view->ecell);

	return toggle->height;
}

/*
 * ECell::max_width method
 */
static int
etog_max_width (ECellView *ecell_view, int model_col, int view_col)
{
	ECellToggle *toggle = E_CELL_TOGGLE (ecell_view->ecell);
	void *_value = e_table_model_value_at (ecell_view->e_table_model, model_col, 0);
	int max_width = gdk_pixbuf_get_width (toggle->images[GPOINTER_TO_INT (_value)]);
	int number_of_rows;
	int row;

	number_of_rows = e_table_model_row_count (ecell_view->e_table_model);
	for (row = 1; row < number_of_rows; row++) {
		void *_value = e_table_model_value_at (ecell_view->e_table_model,
						       model_col, row);
		max_width = MAX (max_width, gdk_pixbuf_get_width (toggle->images[GPOINTER_TO_INT (_value)]));
	}

	return max_width;
}

static void
etog_destroy (GtkObject *object)
{
	ECellToggle *etog = E_CELL_TOGGLE (object);
	int i;
	
	for (i = 0; i < etog->n_states; i++)
		gdk_pixbuf_unref (etog->images [i]);

	g_free (etog->images);

	GTK_OBJECT_CLASS (parent_class)->destroy (object);
}

static void
e_cell_toggle_class_init (GtkObjectClass *object_class)
{
	ECellClass *ecc = (ECellClass *) object_class;

	object_class->destroy = etog_destroy;

	ecc->new_view   = etog_new_view;
	ecc->kill_view  = etog_kill_view;
	ecc->realize    = etog_realize;
	ecc->unrealize  = etog_unrealize;
	ecc->draw       = etog_draw;
	ecc->event      = etog_event;
	ecc->height     = etog_height;
	ecc->max_width  = etog_max_width;

	parent_class = gtk_type_class (PARENT_TYPE);
}

E_MAKE_TYPE(e_cell_toggle, "ECellToggle", ECellToggle, e_cell_toggle_class_init, NULL, PARENT_TYPE);

/**
 * e_cell_toggle_construct:
 * @etog: a fresh ECellToggle object
 * @border: number of pixels used as a border
 * @n_states: number of states the toggle will have
 * @images: a collection of @n_states images, one for each state.
 *
 * Constructs the @etog object with the @border, @n_staes, and @images
 * arguments.
 */
void
e_cell_toggle_construct (ECellToggle *etog, int border, int n_states, GdkPixbuf **images)
{
	int max_height =  0;
	int i;
	
	etog->border = border;
	etog->n_states = n_states;

	etog->images = g_new (GdkPixbuf *, n_states);

	for (i = 0; i < n_states; i++){
		etog->images [i] = images [i];
		gdk_pixbuf_ref (images [i]);

		if (gdk_pixbuf_get_height (images [i]) > max_height)
		  max_height = gdk_pixbuf_get_height (images [i]);
	}

	etog->height = max_height;
}

/**
 * e_cell_checkbox_new:
 * @border: number of pixels used as a border
 * @n_states: number of states the toggle will have
 * @images: a collection of @n_states images, one for each state.
 *
 * Creates a new ECell renderer that can be used to render toggle
 * buttons with the images specified in @images.  The value returned 
 * by ETableModel::get_value is typecase into an integer and clamped
 * to the [0..n_states) range.  That will select the image rendered.
 * 
 * Returns: an ECell object that can be used to render multi-state
 * toggle cells.
 */
ECell *
e_cell_toggle_new (int border, int n_states, GdkPixbuf **images)
{
	ECellToggle *etog = gtk_type_new (e_cell_toggle_get_type ());

	e_cell_toggle_construct (etog, border, n_states, images);

	return (ECell *) etog;
}


='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=0787cfb7b832fd5bb36b2a07416cae315ca5f41a'>- Update devel/sdl12 to 1.2.15</a></td><td>mva</td><td><span title='2012-02-18 18:18:33 +0800'>2012-02-18</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=ceede3db99aaa60e2ac21b89f43d6ee5ba0d5b0c'>Chase libcdio shlib bump</a></td><td>arved</td><td><span title='2012-01-19 01:36:27 +0800'>2012-01-19</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=e4afd85f7dd12f7c7b8e8c36dc10efbae883e774'>- Fix build</a></td><td>miwi</td><td><span title='2011-10-24 00:06:54 +0800'>2011-10-24</span></td><td>2</td><td><span class='deletions'>-4</span>/<span class='insertions'>+18</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=c5df546f91d4ce945b2de2e01f71d31243158164'>- update fftw3* to 3.3 [1], and adjust dependent ports</a></td><td>bf</td><td><span title='2011-10-17 18:08:33 +0800'>2011-10-17</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=020e9b11e64dc0911fd0ed4867524d1c444a0571'>Mark as broken on pointyhat: runaway process (build never terminates).</a></td><td>linimon</td><td><span title='2011-08-30 06:14:36 +0800'>2011-08-30</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+4</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=66e51da4a034d5311076d6b174c750a6ca4dd16c'>Fix WWW</a></td><td>arved</td><td><span title='2011-08-09 02:54:33 +0800'>2011-08-09</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=d6f1cd0642c72b4a97c86285f8288ec1da1a1dba'>Bump due to ffmpeg update to 0.7.1</a></td><td>mm</td><td><span title='2011-06-25 06:39:03 +0800'>2011-06-25</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=70833b7cddb24f2196dc5b0c551524688e1378e4'>Don't override PORTREVISION from slave ports so their version</a></td><td>erwin</td><td><span title='2011-04-20 14:48:33 +0800'>2011-04-20</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=c5841568d5e9ee16b5cf948f7490fb4d067192bf'>- Bump PORTREVISION to chase the update of audio/libdiscid</a></td><td>wen</td><td><span title='2011-03-28 11:01:32 +0800'>2011-03-28</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=16afdd776f22fcd99982a6b160884c0eef039e5a'>- Update to 0.7.DrNo.</a></td><td>miwi</td><td><span title='2011-02-25 07:38:28 +0800'>2011-02-25</span></td><td>5</td><td><span class='deletions'>-24</span>/<span class='insertions'>+46</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=22550960a92faf05993d8d2e21206a114896f58a'>Chase audio/mpg123 shlib version change.</a></td><td>novel</td><td><span title='2011-02-24 00:46:13 +0800'>2011-02-24</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=1d4861b2bd3309039392c7ddf01551ca3c90decb'>Switch to audio/musepack from deprecated audio/libmpcdec</a></td><td>makc</td><td><span title='2010-09-22 00:51:17 +0800'>2010-09-22</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+12</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=729d247024d71c0b2a480942576a36ce25b41779'>- Update ffmpeg to 0.6</a></td><td>mm</td><td><span title='2010-07-25 00:38:20 +0800'>2010-07-25</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=a7e23ef2423b94523671d838b70763ecfea3ca60'>Bump PORTREVISION after libao update and handle API incompatibility.</a></td><td>naddy</td><td><span title='2010-06-07 04:39:21 +0800'>2010-06-07</span></td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+12</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=511fdac80d71e3236e7d55bb2871e832ab242857'>Chase audio/libmodplug update</a></td><td>ehaupt</td><td><span title='2010-05-28 14:56:46 +0800'>2010-05-28</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=6663b7538fb8d5353b47357a599f943d0ebf5613'>- Chase mpg123 update</a></td><td>pav</td><td><span title='2010-05-04 19:28:22 +0800'>2010-05-04</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=38a7a5ed25d23b69d711c3dd60fe52a093ff33b3'>- Chase wavpack's lib dump</a></td><td>sylvio</td><td><span title='2010-04-10 22:38:28 +0800'>2010-04-10</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=190df53765225dba0d1baed51432c6f9f3ce7267'>Chase the ftp/curl shlib version bump.</a></td><td>roam</td><td><span title='2010-04-03 18:44:36 +0800'>2010-04-03</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=b3ef9ac3f78b1519f2c774fa1d84f8792a95029a'>Chase libcdio shared library version bump</a></td><td>arved</td><td><span title='2009-11-28 18:34:26 +0800'>2009-11-28</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=75c4b51d95824e561d372f322b59b0f3b2e0bcdd'>- Switch SourceForge ports to the new File Release System: categories startin...</a></td><td>amdmi3</td><td><span title='2009-08-22 08:13:26 +0800'>2009-08-22</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=422ffe0d0e523408b9039baf79f90cc177dbe623'>- Fix typo</a></td><td>miwi</td><td><span title='2009-08-22 02:48:35 +0800'>2009-08-22</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=06323efd2dba3945de96d6e7bde06993b60f8797'>- Chase audio/mpg123 shlib bump</a></td><td>miwi</td><td><span title='2009-08-22 00:24:44 +0800'>2009-08-22</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+3</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=20af277a4eb5ae3ad243990e7cfd620bfa9e6766'>- Update to 0.6.0</a></td><td>miwi</td><td><span title='2009-08-19 19:55:54 +0800'>2009-08-19</span></td><td>7</td><td><span class='deletions'>-326</span>/<span class='insertions'>+400</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=05cf0e6fc7cfde260869dbf0e34e3a6be0276002'>Reset alexbl@FreeBSD.org due to maintainer-timeouts and no repsonse</a></td><td>linimon</td><td><span title='2009-08-02 16:02:03 +0800'>2009-08-02</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=f6e979784bf8780b8574799132f3ff80a7ecc4a9'>Bump PORTREVISION after libogg and libvorbisfile major version increment.</a></td><td>naddy</td><td><span title='2009-07-07 05:25:59 +0800'>2009-07-07</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=041a24ea1dbae179a8345dc62f8abfbd5572d852'>- Chase fftw3 update</a></td><td>pav</td><td><span title='2009-05-18 23:08:58 +0800'>2009-05-18</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=2381ab7ca05a91b463a732fa7480d7f3bb9fb884'>- Chase audio/faad shlib bump</a></td><td>miwi</td><td><span title='2009-02-21 23:51:15 +0800'>2009-02-21</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=ab3b71e13124eadfe21c7590ee12e8268471b999'>Bump the version of the curl shared library after the ftp/curl update</a></td><td>roam</td><td><span title='2009-01-23 23:43:14 +0800'>2009-01-23</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=6003269980f85becb159301fc0bb8fc5c651a32a'> - remove the no longer needed patch files that cause binding builds to fail</a></td><td>alexbl</td><td><span title='2008-07-11 00:41:44 +0800'>2008-07-11</span></td><td>4</td><td><span class='deletions'>-133</span>/<span class='insertions'>+0</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=8047b0f2a9c592f61dc77178a93207a521bc451c'> - update to 0.5DrLector</a></td><td>alexbl</td><td><span title='2008-06-30 12:45:45 +0800'>2008-06-30</span></td><td>4</td><td><span class='deletions'>-28</span>/<span class='insertions'>+84</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=4d26292f7479b4bbf9650dcb1661b4945decce13'>Bump portrevision due to upgrade of devel/gettext.</a></td><td>edwin</td><td><span title='2008-06-06 21:08:29 +0800'>2008-06-06</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=49b8bcf62bb982b4d06b39c51fd8a6b3dd312260'>- Remove empty files</a></td><td>pav</td><td><span title='2008-04-10 19:56:28 +0800'>2008-04-10</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+0</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=5d7648cf54a89e826350ff1b2f40131f20c43261'>Update to FLAC 1.2.1.  This version includes two and a half years</a></td><td>naddy</td><td><span title='2008-04-08 04:37:23 +0800'>2008-04-08</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=1e1a441fe8f733493bc422b76845af7a0236d62c'>- Fix plist so it can package</a></td><td>pav</td><td><span title='2008-04-07 04:29:00 +0800'>2008-04-07</span></td><td>1</td><td><span class='deletions'>-3</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=5cce612db5d335c6628efe45dd2cd2a2bdfd357f'> - fix pkg-plist issues</a></td><td>alexbl</td><td><span title='2008-03-20 05:31:34 +0800'>2008-03-20</span></td><td>1</td><td><span class='deletions'>-4</span>/<span class='insertions'>+4</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=8c640a0e2ba3248c91c044e33b97892459dbf821'> - update xmms2 to 0.4DrKosmos</a></td><td>alexbl</td><td><span title='2008-03-16 03:29:44 +0800'>2008-03-16</span></td><td>6</td><td><span class='deletions'>-129</span>/<span class='insertions'>+148</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=2895a9029075337c88e9fc87cba9c8a107f0fbfb'>- Chase devel/sdl12 shlib version bump</a></td><td>miwi</td><td><span title='2008-03-13 22:28:35 +0800'>2008-03-13</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=64d1694dfa56e8b2ea11d41b82cb3046ccb66178'> - remove unecessary signedness to fix build with current pyrex [1]</a></td><td>alexbl</td><td><span title='2007-11-15 07:38:21 +0800'>2007-11-15</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+102</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=3b7f6c63f3d7cbab240d30b4a765c518bef208d4'>- Chase increase of audio/libvorbis shlib version.</a></td><td>miwi</td><td><span title='2007-07-28 20:27:31 +0800'>2007-07-28</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=bf9b1aa7891e432b1cb30222b7e0ccf55da2b64c'> - Correct some issues in the plist</a></td><td>alexbl</td><td><span title='2007-06-05 03:06:55 +0800'>2007-06-05</span></td><td>2</td><td><span class='deletions'>-4</span>/<span class='insertions'>+5</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=0cc86f7bb2f7453426357e678fe80a77d847dc97'> - fix libxml2 dependency</a></td><td>alexbl</td><td><span title='2007-05-30 09:35:12 +0800'>2007-05-30</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=f147812afffaa68dfdb35c68f4805b244f421a99'> - Properly disable MDNSResponder</a></td><td>alexbl</td><td><span title='2007-05-29 06:04:51 +0800'>2007-05-29</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=4c02a6138faec50c29380ed976da2bb3d56da986'> - Update XMMS2 to DrJekyll</a></td><td>alexbl</td><td><span title='2007-05-28 06:58:34 +0800'>2007-05-28</span></td><td>11</td><td><span class='deletions'>-117</span>/<span class='insertions'>+123</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=64c85012f8f977e33f2b65de62e4f4ab9ccc0017'>Use multimedia/ffmpeg now instead of multimedia/ffmpeg-devel</a></td><td>ahze</td><td><span title='2007-05-26 01:08:35 +0800'>2007-05-26</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=78c51410dc07d684cc985b382ef89c09bc589feb'> - bump mpcdec lib version</a></td><td>alexbl</td><td><span title='2007-02-28 09:29:28 +0800'>2007-02-28</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=18a239b5342894eea31f726a8ba4f4aa6c04a72d'> - Remove some 4.x stuff</a></td><td>alexbl</td><td><span title='2007-02-02 17:37:15 +0800'>2007-02-02</span></td><td>1</td><td><span class='deletions'>-12</span>/<span class='insertions'>+3</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=208843024e4b7fbb5fd41f1cd027b3ea1ea95e29'> - Really fix the mDNS / avahi conflict</a></td><td>alexbl</td><td><span title='2007-01-09 05:43:01 +0800'>2007-01-09</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=69f230a6c7f078a3b203968bb3f20dbe9b375fac'> - resolve breakage where both MDNSResponder and Avahi support is built</a></td><td>alexbl</td><td><span title='2007-01-04 18:57:10 +0800'>2007-01-04</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=de4cf73f5446a2a8a2c782e21edd36968046a9e7'>Update the ftp/curl port to 7.16.0.</a></td><td>roam</td><td><span title='2006-12-13 20:41:35 +0800'>2006-12-13</span></td><td>2</td><td><span class='deletions'>-3</span>/<span class='insertions'>+11</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=3519928278ba3c49cc9fc2e30797d626457a3105'> - Add forgotten libsamplerate dependency for new phase vocoder plugin</a></td><td>alexbl</td><td><span title='2006-12-10 08:08:44 +0800'>2006-12-10</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=ebf03a51a395a28d2dca49e077d6e5e5f5655ad9'> - update to 0.2DrHouse</a></td><td>alexbl</td><td><span title='2006-12-03 12:10:25 +0800'>2006-12-03</span></td><td>6</td><td><span class='deletions'>-35</span>/<span class='insertions'>+45</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=5c49cfd5b1f4307e8839dd04404e891e87c7db64'> - add an OPTION for the ices plugin so that xmms2 can stream audio via</a></td><td>alexbl</td><td><span title='2006-11-16 16:43:52 +0800'>2006-11-16</span></td><td>2</td><td><span class='deletions'>-0</span>/<span class='insertions'>+10</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=4192f37abc30e1986686a02a4c79024b5fb59d81'> - Mark DAAP support IGNORE on 4.x [1]</a></td><td>alexbl</td><td><span title='2006-10-08 18:14:44 +0800'>2006-10-08</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+5</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=67031111f57d67567be910d6d542de02d151c6e6'>- Unbreak java bindings</a></td><td>alexbl</td><td><span title='2006-10-08 05:55:23 +0800'>2006-10-08</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+10</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=7a56faf754fe57534baf89db0b51e7b230ea99c0'>- Unbreak INDEX on FreeBSD 4.9</a></td><td>alexbl</td><td><span title='2006-10-02 06:23:14 +0800'>2006-10-02</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=dbd91444b0c5a3d492fa2613404772b385185002'>- update to 0.2DrGonzo</a></td><td>alexbl</td><td><span title='2006-09-27 23:07:34 +0800'>2006-09-27</span></td><td>6</td><td><span class='deletions'>-27</span>/<span class='insertions'>+59</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=690719e4d56669840ac4b9264f949634ed10d1c1'> - Update devel/sdl12 to version 1.2.11. Now we employ stock SDL directory</a></td><td>stas</td><td><span title='2006-09-20 19:21:59 +0800'>2006-09-20</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=87404c87f32a349ec5cf9b4759b6af8e2e4690a4'>Change all my MAINTAINER lines to my new FreeBSD.org address.</a></td><td>alexbl</td><td><span title='2006-09-13 11:21:38 +0800'>2006-09-13</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=d797e2a1c6360c35839023801cdafe8e55bff44d'>- Support mDNSResponder</a></td><td>miwi</td><td><span title='2006-08-15 23:30:44 +0800'>2006-08-15</span></td><td>2</td><td><span class='deletions'>-7</span>/<span class='insertions'>+18</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=2c321744dc15df73aacbd41f13777360a0e53cbd'>- Update to 0.2DrFeelgood</a></td><td>itetcu</td><td><span title='2006-07-16 12:15:32 +0800'>2006-07-16</span></td><td>3</td><td><span class='deletions'>-5</span>/<span class='insertions'>+22</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=cd2db00d76cb365edf76f4feb48d65f1d73ca015'>- Update to 0.2.d.5</a></td><td>itetcu</td><td><span title='2006-07-07 16:20:24 +0800'>2006-07-07</span></td><td>14</td><td><span class='deletions'>-300</span>/<span class='insertions'>+117</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=beb280bee106f2b32fa1b35d1024536e2458994c'>Add ecore mainloop bindings for ruby for xmms2</a></td><td>itetcu</td><td><span title='2006-06-25 11:06:20 +0800'>2006-06-25</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+4</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=e8e0a8e1e53b44518e6feaaed72347b1f9bb81c7'>- Backport a word around from xmms2-devel.git to make the python bindings</a></td><td>itetcu</td><td><span title='2006-05-25 06:07:58 +0800'>2006-05-25</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+13</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=7037edea8a16bcca69040476fd54f4ea2ff88452'>Chase audio/libmodplug update.</a></td><td>ehaupt</td><td><span title='2006-04-26 15:09:16 +0800'>2006-04-26</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=582ac0a1d0e0bcd0558e2de2d1393939c392b984'>- Chase libmpcdec update</a></td><td>pav</td><td><span title='2006-04-16 00:00:19 +0800'>2006-04-16</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=b26429dc3a9fdd38cfa8f11ed9ad2b3782f6097a'>[PATCH] audio/xmms2: mark slave ports BROKEN; general cleanup</a></td><td>edwin</td><td><span title='2006-04-09 19:02:32 +0800'>2006-04-09</span></td><td>5</td><td><span class='deletions'>-3</span>/<span class='insertions'>+165</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=3eecdd2c75a63bf09a9ecdd4298731613f220cef'>[PATCH] audio/xmms2: Unbreak on 4.x</a></td><td>edwin</td><td><span title='2006-04-05 10:50:22 +0800'>2006-04-05</span></td><td>3</td><td><span class='deletions'>-5</span>/<span class='insertions'>+14</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=90b8891acfe1d506046d02514b87b268cda5c263'>[PATCH] audio/xmms2: Lots of cleanup</a></td><td>edwin</td><td><span title='2006-04-02 14:55:41 +0800'>2006-04-02</span></td><td>4</td><td><span class='deletions'>-4</span>/<span class='insertions'>+34</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=f8f5b64017dd42450d5467faaa976dbcad49119c'>[PATCH] audio/xmms2: update to 0.2.d.4</a></td><td>edwin</td><td><span title='2006-04-01 11:48:17 +0800'>2006-04-01</span></td><td>3</td><td><span class='deletions'>-22</span>/<span class='insertions'>+40</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=6333c0a368c4ec3fffb7cf540223af1a599e9b40'>- Update to 0.2.d.3 (0.2DrCox) [1]</a></td><td>tmclaugh</td><td><span title='2006-03-07 09:14:46 +0800'>2006-03-07</span></td><td>3</td><td><span class='deletions'>-38</span>/<span class='insertions'>+72</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=af1ef33eb1951332dc778c2a60e4e3190c05e9a0'>- Use LIB_DEPENDS instead some BUILD_DEPENDS</a></td><td>garga</td><td><span title='2006-01-18 00:53:10 +0800'>2006-01-18</span></td><td>1</td><td><span class='deletions'>-6</span>/<span class='insertions'>+6</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/audio/xmms2?h=gnome-3.24&amp;id=ed1f8476d21fda00770ae7121adf553544c1b084'>- Update to 0.2DrBombay</a></td><td>pav</td><td><span title='2006-01-15 10:03:00 +0800'>2006-01-15</span></td><td>3</td><td><span class='deletions'>-6</span>/<span class='insertions'>+6</span></td></tr>