]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkeditable.h
filechooserbutton: Duh, remove all the timeouts after tests
[~andy/gtk] / gtk / gtkeditable.h
index 58b34f46f0b51d5151806c6232a0177b8e9b1adb..0e2441c4df6c4ed9261d2c307435aa8151d12e69 100644 (file)
  * 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
+ * modify it under the terms of the GNU Lesser 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.
+ * Lesser 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.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
-#ifndef __GTK_EDITABLE_H__
-#define __GTK_EDITABLE_H__
-
-
-#include <gdk/gdk.h>
-#include <gtk/gtkwidget.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
 
+/*
+ * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
+ * file for a list of people on the GTK+ Team.  See the ChangeLog
+ * files for a list of changes.  These files are distributed with
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+ */
 
-#define GTK_EDITABLE(obj)          GTK_CHECK_CAST (obj, gtk_editable_get_type (), GtkEditable)
-#define GTK_EDITABLE_CLASS(klass)  GTK_CHECK_CLASS_CAST (klass, gtk_editable_get_type (), GtkEditableClass)
-#define GTK_IS_EDITABLE(obj)       GTK_CHECK_TYPE (obj, gtk_editable_get_type ())
+#ifndef __GTK_EDITABLE_H__
+#define __GTK_EDITABLE_H__
 
 
-typedef struct _GtkEditable       GtkEditable;
-typedef struct _GtkEditableClass  GtkEditableClass;
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
 
-typedef void (*GtkTextFunction) (GtkEditable  *editable, GdkEventKey *event);
+#include <gtk/gtkwidget.h>
 
-struct _GtkEditable
-{
-  GtkWidget widget;
 
-  guint   current_pos;
+G_BEGIN_DECLS
 
-  guint   selection_start_pos;
-  guint   selection_end_pos;
-  guint   has_selection : 1;
-  guint   editable : 1;
-  GdkIC   ic;
+#define GTK_TYPE_EDITABLE             (gtk_editable_get_type ())
+#define GTK_EDITABLE(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_EDITABLE, GtkEditable))
+#define GTK_IS_EDITABLE(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_EDITABLE))
+#define GTK_EDITABLE_GET_IFACE(inst)  (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GTK_TYPE_EDITABLE, GtkEditableInterface))
 
-  gchar *clipboard_text;
-};
+typedef struct _GtkEditable          GtkEditable;         /* Dummy typedef */
+typedef struct _GtkEditableInterface GtkEditableInterface;
 
-struct _GtkEditableClass
+struct _GtkEditableInterface
 {
-  GtkWidgetClass parent_class;
-
-  void (* insert_text)  (GtkEditable    *editable,
-                        const gchar    *text,
-                        gint            length,
-                        gint           *position);
-  void (* delete_text)  (GtkEditable    *editable,
-                        gint            start_pos,
-                        gint            end_pos);
-  void (* update_text)  (GtkEditable    *editable,
-                        gint            start_pos,
-                        gint            end_pos);
-  gchar* (* get_chars)  (GtkEditable    *editable,
-                        gint            start_pos,
-                        gint            end_pos);
-  void (* set_selection)(GtkEditable    *editable,
-                        gint            start_pos,
-                        gint            end_pos);
-  void (* changed)      (GtkEditable    *editable);
+  GTypeInterface                  base_iface;
+
+  /* signals */
+  void (* insert_text)              (GtkEditable    *editable,
+                                    const gchar    *new_text,
+                                    gint            new_text_length,
+                                    gint           *position);
+  void (* delete_text)              (GtkEditable    *editable,
+                                    gint            start_pos,
+                                    gint            end_pos);
+  void (* changed)                  (GtkEditable    *editable);
+
+  /* vtable */
+  void (* do_insert_text)           (GtkEditable    *editable,
+                                    const gchar    *new_text,
+                                    gint            new_text_length,
+                                    gint           *position);
+  void (* do_delete_text)           (GtkEditable    *editable,
+                                    gint            start_pos,
+                                    gint            end_pos);
+
+  gchar* (* get_chars)              (GtkEditable    *editable,
+                                    gint            start_pos,
+                                    gint            end_pos);
+  void (* set_selection_bounds)     (GtkEditable    *editable,
+                                    gint            start_pos,
+                                    gint            end_pos);
+  gboolean (* get_selection_bounds) (GtkEditable    *editable,
+                                    gint           *start_pos,
+                                    gint           *end_pos);
+  void (* set_position)             (GtkEditable    *editable,
+                                    gint            position);
+  gint (* get_position)             (GtkEditable    *editable);
 };
 
-guint      gtk_editable_get_type       (void);
-void       gtk_editable_select_region  (GtkEditable      *editable,
-                                       gint              start,
-                                       gint              end);
-void       gtk_editable_insert_text   (GtkEditable       *editable,
-                                       const gchar      *new_text,
-                                       gint              new_text_length,
-                                       gint             *position);
-void       gtk_editable_delete_text    (GtkEditable      *editable,
-                                       gint              start_pos,
-                                       gint              end_pos);
-gchar *    gtk_editable_get_chars      (GtkEditable      *editable,
-                                       gint              start_pos,
-                                       gint              end_pos);
-void       gtk_editable_cut_clipboard  (GtkEditable      *editable, 
-                                       GdkEventKey      *event);
-void       gtk_editable_copy_clipboard (GtkEditable      *editable, 
-                                       GdkEventKey      *event);
-void       gtk_editable_paste_clipboard (GtkEditable     *editable, 
-                                        GdkEventKey     *event);
-void       gtk_editable_claim_selection (GtkEditable     *editable, 
-                                        gboolean         claim, 
-                                        guint32          time);
-void       gtk_editable_delete_selection (GtkEditable    *editable);
-
-void       gtk_editable_changed         (GtkEditable    *editable);
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
+GType    gtk_editable_get_type             (void) G_GNUC_CONST;
+void     gtk_editable_select_region        (GtkEditable *editable,
+                                           gint         start_pos,
+                                           gint         end_pos);
+gboolean gtk_editable_get_selection_bounds (GtkEditable *editable,
+                                           gint        *start_pos,
+                                           gint        *end_pos);
+void     gtk_editable_insert_text          (GtkEditable *editable,
+                                           const gchar *new_text,
+                                           gint         new_text_length,
+                                           gint        *position);
+void     gtk_editable_delete_text          (GtkEditable *editable,
+                                           gint         start_pos,
+                                           gint         end_pos);
+gchar*   gtk_editable_get_chars            (GtkEditable *editable,
+                                           gint         start_pos,
+                                           gint         end_pos);
+void     gtk_editable_cut_clipboard        (GtkEditable *editable);
+void     gtk_editable_copy_clipboard       (GtkEditable *editable);
+void     gtk_editable_paste_clipboard      (GtkEditable *editable);
+void     gtk_editable_delete_selection     (GtkEditable *editable);
+void     gtk_editable_set_position         (GtkEditable *editable,
+                                           gint         position);
+gint     gtk_editable_get_position         (GtkEditable *editable);
+void     gtk_editable_set_editable         (GtkEditable *editable,
+                                           gboolean     is_editable);
+gboolean gtk_editable_get_editable         (GtkEditable *editable);
+
+G_END_DECLS
 
 #endif /* __GTK_EDITABLE_H__ */