summaryrefslogtreecommitdiff
path: root/gtk/gtkeditable.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkeditable.c')
-rw-r--r--gtk/gtkeditable.c48
1 files changed, 45 insertions, 3 deletions
diff --git a/gtk/gtkeditable.c b/gtk/gtkeditable.c
index d12e1d5183..8b41572e1c 100644
--- a/gtk/gtkeditable.c
+++ b/gtk/gtkeditable.c
@@ -29,6 +29,10 @@
#include "gtkeditable.h"
#include "gtksignal.h"
+
+static void gtk_editable_base_init (gpointer g_class);
+
+
GtkType
gtk_editable_get_type (void)
{
@@ -39,7 +43,7 @@ gtk_editable_get_type (void)
static const GTypeInfo editable_info =
{
sizeof (GtkEditableClass), /* class_size */
- NULL, /* base_init */
+ gtk_editable_base_init, /* base_init */
NULL, /* base_finalize */
};
@@ -49,6 +53,44 @@ gtk_editable_get_type (void)
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,
+ GTK_TYPE_STRING,
+ GTK_TYPE_INT,
+ GTK_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,
+ GTK_TYPE_NONE, 2,
+ GTK_TYPE_INT,
+ GTK_TYPE_INT);
+ g_signal_new ("changed",
+ GTK_TYPE_EDITABLE,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GtkEditableClass, changed),
+ NULL, NULL,
+ gtk_marshal_VOID__VOID,
+ GTK_TYPE_NONE, 0);
+
+ initialized = TRUE;
+ }
+}
+
void
gtk_editable_insert_text (GtkEditable *editable,
const gchar *new_text,
@@ -61,7 +103,7 @@ gtk_editable_insert_text (GtkEditable *editable,
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
@@ -71,7 +113,7 @@ gtk_editable_delete_text (GtkEditable *editable,
{
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 *