// -*- c++ -*-
//  Generated by gtkmmproc from ./../icon-item.gen_h -- DO NOT MODIFY!
#ifndef _GNOMEMM_ICON_ITEM_H
#define _GNOMEMM_ICON_ITEM_H

/* $Id: icon-item.gen_h,v 1.7 2001/02/08 18:51:34 murrayc Exp $ */


/* icon-item.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--/canvas-item.h>
#include <libgnomeui/gnome-icon-item.h>

namespace Gnome {
class IconTextItem;
class IconTextItem_Class;
}
namespace Gtk { Gnome::IconTextItem *wrap (GnomeIconTextItem *o); }
namespace Gnome
{

//: IconTextItem is a CanvasItem.

class IconTextItem : public CanvasItem
{

public:
  typedef IconTextItem          CppObjectType;
  typedef IconTextItem_Class    CppClassType;
  typedef GnomeIconTextItem           BaseObjectType;
  typedef GnomeIconTextItemClass      BaseClassType;

private:
  friend class IconTextItem_Class;
  static CppClassType icon_text_item_class;

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

protected:
  void   initialize_class();
  explicit IconTextItem(GnomeIconTextItem *castitem);

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

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

  virtual ~IconTextItem();

private:

public:
  IconTextItem(const CanvasGroup &parent,
		     const gchar *first_arg_name, ...);

  IconTextItem(const CanvasGroup &parent);



  void configure(int x, int y, int width,
			      const Gtk::string &fontname,
			      const Gtk::string &text,
			      bool is_editable = true);


  void setxy(int x,int y);


  void select(int sel);


  Gtk::string get_text();


  void start_editing();


  void stop_editing(bool accept);

public:

  union
    {
      CppObjectType * icon_text_item_self;
      Gtk::ProxySignal0<int,CppObjectType,BaseObjectType,0> text_changed;
      Gtk::ProxySignal0<void,CppObjectType,BaseObjectType,1> height_changed;
      Gtk::ProxySignal0<void,CppObjectType,BaseObjectType,2> width_changed;
      Gtk::ProxySignal0<void,CppObjectType,BaseObjectType,3> editing_started;
      Gtk::ProxySignal0<void,CppObjectType,BaseObjectType,4> editing_stopped;
      Gtk::ProxySignal0<void,CppObjectType,BaseObjectType,5> selection_started;
      Gtk::ProxySignal0<void,CppObjectType,BaseObjectType,6> selection_stopped;
    };

protected:
  // impl functions
    virtual int text_changed_impl();
    virtual void height_changed_impl();
    virtual void width_changed_impl();
    virtual void editing_started_impl();
    virtual void editing_stopped_impl();
    virtual void selection_started_impl();
    virtual void selection_stopped_impl();

};



}


#endif
