// -*- c++ -*-
//  Generated by gtkmmproc from ./../color-picker.gen_h -- DO NOT MODIFY!
#ifndef _GNOMEMM_COLOR_PICKER_H
#define _GNOMEMM_COLOR_PICKER_H

// -*- C++ -*- // this is for the .gen_h, I realize gensig puts one in
/* $Id: color-picker.gen_h,v 1.13 2001/04/24 14:39:35 murrayc Exp $ */

/* color-picker.h
 *
 * Copyright (C) 1998 EMC Capital Management Inc.
 * Developed by Havoc Pennington <hp@pobox.com>
 *
 * Copyright (C) 1999 The Gtk-- 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 <libgnomeui/gnome-color-picker.h>

#include <gtk--/button.h>

namespace Gnome {
class ColorPicker;
class ColorPicker_Class;
}
namespace Gtk { Gnome::ColorPicker *wrap (GnomeColorPicker *o); }
namespace Gnome
{
//: Button used to Select Colors
//- This widget provides color selection facilities to your
//- application. The widget appears as a button which contains a
//- "color swatch" of the currently selected color. When the button
//- is pressed, the widget presents the user with a color selection
//- dialog where the color can be selected.
//-
//- You can select the color to be displayed in a number of ways:
//- floating point values for the red, green and blue channels,
//- integers in the range 0 to 65,535, or integers in the range 0 to
//- 255, depending on your needs.
class ColorPicker : public Gtk::Button
{

public:
  typedef ColorPicker          CppObjectType;
  typedef ColorPicker_Class    CppClassType;
  typedef GnomeColorPicker           BaseObjectType;
  typedef GnomeColorPickerClass      BaseClassType;

private:
  friend class ColorPicker_Class;
  static CppClassType color_picker_class;

  ColorPicker(const ColorPicker&);
  ColorPicker& operator=(const ColorPicker&); // not implemented

protected:
  void   initialize_class();
  explicit ColorPicker(GnomeColorPicker *castitem);

public:
  static GtkType get_type();
  GnomeColorPicker* gtkobj()             { return (GnomeColorPicker*)(gtkobject); }
  const GnomeColorPicker* gtkobj() const { return (GnomeColorPicker*)(gtkobject); }
  static bool isA(Gtk::Object *checkcast);

  // Hook for proxies
  static const char* const signal_names[];

  virtual ~ColorPicker();

private:

public:
  ColorPicker();



  //: Set the color in the picker.  Values are in [0.0, 1.0]


  void set(gdouble r,gdouble g,gdouble b,gdouble a);

  //: Set the color in the picker.  Values are in [0, 255]


  void set(guint8 r,guint8 g,guint8 b,guint8 a);

  //: Set the color in the picker.  Values are in [0, 65535]


  void set(gushort r,gushort g,gushort b,gushort a);

  void get (gdouble &r, gdouble &g, gdouble &b, gdouble &a) const;
  void get (guint8 &r, guint8 &g, guint8 &b, guint8 &a) const;
  void get (gushort &r, gushort &g, gushort &b, gushort &a) const;

  //: Sets whether the picker should dither the color sample or just
  //  paint a solid rectangle

  void set_dither(gboolean dither=true);

  //: Sets whether the picker should use the alpha channel or not

  void set_use_alpha(gboolean use_alpha=true);

  //: Sets the title for the color selection dialog

  void set_title(const Gtk::string& title);

  // Signals

  // Args are r,g,b,a


protected:

public:

  union
    {
      CppObjectType * color_picker_self;
      Gtk::ProxySignal4<void,guint,guint,guint,guint,CppObjectType,BaseObjectType,0> color_set;
    };

protected:
  // impl functions
    virtual void color_set_impl(guint p0,guint p1,guint p2,guint p3);

};

}

#endif
