]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkeditable.c
Use the correct screen for getting the height. (Fix from Stephen Browne,
[~andy/gtk] / gtk / gtkeditable.c
index d12e1d5183b765a556734b04296d68de50d7daec..771a6354925972f1869b05232d247f7e4b5f3ad7 100644 (file)
 #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,
@@ -61,7 +104,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 +114,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 *    
@@ -147,7 +190,7 @@ gtk_editable_cut_clipboard (GtkEditable *editable)
 {
   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
@@ -155,7 +198,7 @@ gtk_editable_copy_clipboard (GtkEditable *editable)
 {
   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
@@ -163,7 +206,7 @@ gtk_editable_paste_clipboard (GtkEditable *editable)
 {
   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
@@ -172,9 +215,9 @@ gtk_editable_set_editable (GtkEditable    *editable,
 {
   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);
 }
 
 /**
@@ -193,7 +236,7 @@ gtk_editable_get_editable (GtkEditable *editable)
 
   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;
 }