// -*- c++ -*-
/* $Id: rgbcmap.ccg,v 1.1 2003/01/21 13:38:38 murrayc Exp $ */

/* Copyright (C) 2002 The gtkmm Development Team
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <glibmm/utility.h>
#include <gdk/gdkrgb.h>

namespace Gdk
{

RgbCmap::RgbCmap(const Glib::ArrayHandle<guint32>& colors)
: gobject_ (gdk_rgb_cmap_new(const_cast<guint32*>(colors.data()), colors.size()))
{}

RgbCmap::~RgbCmap()
{
  if(gobject_)
    gdk_rgb_cmap_free(gobject_);
}

guint32& RgbCmap::operator[](unsigned long index)
{
	return gobject_->colors[index];
}

const guint32& RgbCmap::operator[](unsigned long index) const
{
	return gobject_->colors[index];
}


unsigned long RgbCmap::size() const
{
	return gobject_->n_colors;
}

} // namespace Gdk

