#include <string.h>
#include "gtkeditable.h"
-#include "gtksignal.h"
+#include "gtkmarshalers.h"
-GtkType
+
+static void gtk_editable_base_init (gpointer g_class);
+
+
+GType
gtk_editable_get_type (void)
{
- static GtkType editable_type = 0;
+ static GType editable_type = 0;
if (!editable_type)
{
static const GTypeInfo editable_info =
{
sizeof (GtkEditableClass), /* class_size */
- NULL, /* base_init */
+ gtk_editable_base_init, /* base_init */
NULL, /* base_finalize */
};
- editable_type = g_type_register_static (G_TYPE_INTERFACE, "GtkEditable", &editable_info, 0);
+ editable_type = g_type_register_static (G_TYPE_INTERFACE, "GtkEditable",
+ &editable_info, 0);
}
return editable_type;
}
+static void
+gtk_editable_base_init (gpointer g_class)
+{
+ static gboolean initialized = FALSE;
+
+ if (! initialized)
+ {
+ g_signal_new ("insert_text",
+ GTK_TYPE_EDITABLE,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GtkEditableClass, insert_text),
+ NULL, NULL,
+ _gtk_marshal_VOID__STRING_INT_POINTER,
+ G_TYPE_NONE, 3,
+ G_TYPE_STRING,
+ G_TYPE_INT,
+ G_TYPE_POINTER);
+ g_signal_new ("delete_text",
+ GTK_TYPE_EDITABLE,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GtkEditableClass, delete_text),
+ NULL, NULL,
+ _gtk_marshal_VOID__INT_INT,
+ G_TYPE_NONE, 2,
+ G_TYPE_INT,
+ G_TYPE_INT);
+ g_signal_new ("changed",
+ GTK_TYPE_EDITABLE,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GtkEditableClass, changed),
+ NULL, NULL,
+ _gtk_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ initialized = TRUE;
+ }
+}
+
void
gtk_editable_insert_text (GtkEditable *editable,
const gchar *new_text,
if (new_text_length < 0)
new_text_length = strlen (new_text);
- GTK_EDITABLE_GET_CLASS (editable)->insert_text (editable, new_text, new_text_length, position);
+ GTK_EDITABLE_GET_CLASS (editable)->do_insert_text (editable, new_text, new_text_length, position);
}
void
{
g_return_if_fail (GTK_IS_EDITABLE (editable));
- GTK_EDITABLE_GET_CLASS (editable)->delete_text (editable, start_pos, end_pos);
+ GTK_EDITABLE_GET_CLASS (editable)->do_delete_text (editable, start_pos, end_pos);
}
gchar *
{
g_return_if_fail (GTK_IS_EDITABLE (editable));
- gtk_signal_emit_by_name (GTK_OBJECT (editable), "cut_clipboard");
+ g_signal_emit_by_name (editable, "cut_clipboard");
}
void
{
g_return_if_fail (GTK_IS_EDITABLE (editable));
- gtk_signal_emit_by_name (GTK_OBJECT (editable), "copy_clipboard");
+ g_signal_emit_by_name (editable, "copy_clipboard");
}
void
{
g_return_if_fail (GTK_IS_EDITABLE (editable));
- gtk_signal_emit_by_name (GTK_OBJECT (editable), "paste_clipboard");
+ g_signal_emit_by_name (editable, "paste_clipboard");
}
void
{
g_return_if_fail (GTK_IS_EDITABLE (editable));
- gtk_object_set (GTK_OBJECT (editable),
- "editable", is_editable != FALSE,
- NULL);
+ g_object_set (G_OBJECT (editable),
+ "editable", is_editable != FALSE,
+ NULL);
}
/**
g_return_val_if_fail (GTK_IS_EDITABLE (editable), FALSE);
- gtk_object_get (GTK_OBJECT (editable), "editable", &value, NULL);
+ g_object_get (G_OBJECT (editable), "editable", &value, NULL);
return value;
}