// -*- c++ -*-
//  Generated by gtkmmproc from /usr/obj/ports/gnomemm-1.2.3/gnomemm-1.2.3/src/build_sources/../stock.gen_h -- DO NOT MODIFY!
#ifndef _GNOMEMM_STOCK_H
#define _GNOMEMM_STOCK_H

/* $Id: stock.gen_h,v 1.15 2001/03/28 12:28:41 murrayc Exp $ */

/***************************************************************
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
****************************************************************
This file is currently fresh, parts or functions have not
been tested completely.
***************************************************************/


/* stock.gen_h
 *
 * 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 <gnome--/imlib.h>
#include <gtk--/window.h>
#include <gtk--/button.h>
#include <gnome--/pixmap.h>
#include <libgnomeui/gnome-stock.h>

// the concept of Stock is that you have special icon name which
// which confers a set of pixmaps for (focused, unfocused, disabled)
// with symbolic names passed by strings.


namespace Gtk { class MenuItem; }

namespace Gnome {
class StockPixmap;
class StockPixmap_Class;
}
namespace Gtk { Gnome::StockPixmap *wrap (GnomeStock *o); }
namespace Gnome
{

namespace Stock {
typedef const char* Type;
typedef const char* State;
typedef const char* RGB;
extern State STATE_REGULAR;
extern State STATE_DISABLED;
extern State STATE_FOCUSED;

// Registering new stock types
void register_imlib           (Type             type,
                               State            state,
                               const Gdk_Imlib::Image & im);

void register_imlib           (Type             type,
                               State            state,
                               const Gdk_Imlib::Image & im,
                               int              width,
                               int              height);

void register_file            (Type              type,
                               State             state,
                               const Gtk::string&     label,
                               const Gtk::string&     path);

void register_pathname        (Type              type,
                               State             state,
                               const Gtk::string&     label,
                               const Gtk::string&     path);

void register_xpm             (Type              type,
                               State             state,
                               const Gtk::string&     label,
                               const char**      xpm);

} /* namespace Stock  */
///////////////////////////////////////////////////////////////////////////


class StockPixmap: public Gnome::Pixmap
{

public:
  typedef StockPixmap          CppObjectType;
  typedef StockPixmap_Class    CppClassType;
  typedef GnomeStock           BaseObjectType;
  typedef GnomeStockClass      BaseClassType;

private:
  friend class StockPixmap_Class;
  static CppClassType stock_class;

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

protected:
  void   initialize_class();
  explicit StockPixmap(GnomeStock *castitem);

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

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

  virtual ~StockPixmap();

private:

public:
  StockPixmap();



  StockPixmap(Stock::Type type);

  bool set_icon(Stock::Type type);

public:

protected:
  // impl functions

};

class StockButton : public Gtk::Button
{
public:
  StockButton(Stock::Type type);
  ~StockButton();
};

namespace Stock {
typedef StockPixmap Pixmap;
typedef StockButton Button;


} /* namespace Stock */


}

#endif
