gtkentry.h 2.7 KB
Newer Older
Elliot Lee's avatar
Elliot Lee committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
/* GTK - The GIMP Toolkit
 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
 *
 * 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.
 */
#ifndef __GTK_ENTRY_H__
#define __GTK_ENTRY_H__


#include <gdk/gdk.h>
#include <gtk/gtkwidget.h>


#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


#define GTK_ENTRY(obj)          GTK_CHECK_CAST (obj, gtk_entry_get_type (), GtkEntry)
#define GTK_ENTRY_CLASS(klass)  GTK_CHECK_CLASS_CAST (klass, gtk_entry_get_type (), GtkEntryClass)
#define GTK_IS_ENTRY(obj)       GTK_CHECK_TYPE (obj, gtk_entry_get_type ())


typedef struct _GtkEntry       GtkEntry;
typedef struct _GtkEntryClass  GtkEntryClass;

struct _GtkEntry
{
  GtkWidget widget;

  GdkWindow *text_area;
  gchar *text;

  guint16 text_size;
  guint16 text_length;
  gint16  current_pos;
  gint16  selection_start_pos;
  gint16  selection_end_pos;
  gint16  scroll_offset;
  guint   have_selection : 1;
  guint   visible : 1;
  guint32 timer;
55 56 57
#ifdef USE_XIM
  GdkIC   ic;
#endif
Elliot Lee's avatar
Elliot Lee committed
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
};

struct _GtkEntryClass
{
  GtkWidgetClass parent_class;

  void (* insert_text)  (GtkEntry    *entry,
			 const gchar *text,
			 gint         length,
			 gint        *position);
  void (* delete_text)  (GtkEntry    *entry,
			 gint         start_pos,
			 gint         end_pos);
  void (* changed)      (GtkEntry    *entry);
  void (* set_text)     (GtkEntry    *entry);
  void (* activate)     (GtkEntry    *entry);
};


guint      gtk_entry_get_type     (void);
GtkWidget* gtk_entry_new          (void);
void       gtk_entry_set_text     (GtkEntry      *entry,
				   const gchar   *text);
void       gtk_entry_append_text  (GtkEntry      *entry,
				   const gchar   *text);
void       gtk_entry_prepend_text (GtkEntry      *entry,
				   const gchar   *text);
void       gtk_entry_set_position (GtkEntry      *entry,
				   gint           position);
gchar*     gtk_entry_get_text     (GtkEntry      *entry);
void       gtk_entry_set_visibility (GtkEntry    *entry,
               gint           visible);


#ifdef __cplusplus
}
#endif /* __cplusplus */


#endif /* __GTK_ENTRY_H__ */