// -*- c++ -*-
//  Generated by gtkmmproc from ./../entry.gen_h -- DO NOT MODIFY!
#ifndef _GTKMM_ENTRY_H
#define _GTKMM_ENTRY_H

/* $Id: entry.gen_h,v 1.41 2000/02/13 02:22:09 kenelson Exp $ */

/* entry.h
 *
 * Copyright (C) 1998-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 <gtk--/editable.h>
#include <gtk/gtkentry.h>

namespace Gtk {
class Entry;
class Entry_Class;
}
namespace Gtk { Gtk::Entry *wrap (GtkEntry *o); }
namespace Gtk
{
// this should be derived from Gtk_Editable
class Entry : public Editable {

public:
  typedef Entry          CppObjectType;
  typedef Entry_Class    CppClassType;
  typedef GtkEntry           BaseObjectType;
  typedef GtkEntryClass      BaseClassType;

private:
  friend class Entry_Class;
  static CppClassType entry_class;

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

protected:
  void   initialize_class();
  explicit Entry(GtkEntry *castitem);

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

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

  virtual ~Entry();

private:

public:

  explicit Entry(guint max);
  Entry();




  void set_text(const string& text);


  string get_text() const;


  unsigned int get_text_length() const;


  void append_text(const string& text);


  void prepend_text(const string& text);


  void select_region(gint start,gint end);


  void set_position(gint position);


  void set_visibility(bool visible);


  void set_max_length(guint16 max);

public:

protected:
  // impl functions

};

}


//+ PROPERTIES(Gtk_Entry)
//. name: text_area
//. type: GdkWindow*
//. get:
//. set:
//. desc:

//. name: backing_pixmap
//. type: GdkPixmap*
//. get:
//. set:
//. desc:

//. name: cursor
//. type: GdkCursor*
//. get:
//. set:
//. desc:

//. name: text
//. type: GdkWChar*
//. get:
//. set:
//. desc:

//. name: text_size
//. type: guint16
//. get:
//. set:
//. desc: allocated size

//. name: text_length
//. type: guint16
//. get:
//. set:
//. desc: length in use

//. name: text_max_length
//. type: guint16
//. get:
//. set:
//. desc:

//. name: scroll_offset
//. type: gint
//. get:
//. set:
//. desc:

//. name: visible
//. type: guint:1
//. get:
//. set:
//. desc:

//. name: timer
//. type: guint32
//. get:
//. set:
//. desc:

//. name: button
//. type: guint
//. get:
//. set:
//. desc:

//. name: char_offset
//. type: gint*
//. get:
//. set:
//. desc: The x-offset of each character (including the last insertion position)
//.    * only valid when the widget is realized

//. name: text_mb
//. type: string
//. get:
//. set:
//. desc: Same as 'text', but in multibyte

//. name: text_mb_dirty
//. type: guint:1
//. get:
//. set:
//. desc: If true, 'text' and 'text_mb' are not coherent

//. name: use_wchar
//. type: guint:1
//. get:
//. set:
//. desc: If true, we use the encoding of wchar_t as the encoding of 'text'.
//.    * Otherwise we use the encoding of multi-byte characters instead.

#endif
