]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktextchild.c
Add GtkBubbleWindow
[~andy/gtk] / gtk / gtktextchild.c
index 5fd0d721083662d6bb9b4e81c3c6180645fd81f4..dd7d3a49061766733c874e156479ab1716926da0 100644 (file)
  */
 
 #define GTK_TEXT_USE_INTERNAL_UNSUPPORTED_API
-#include <config.h>
+#include "config.h"
 #include "gtktextchild.h"
 #include "gtktextbtree.h"
 #include "gtktextlayout.h"
 #include "gtkintl.h"
-#include "gtkalias.h"
-
-#define CHECK_IN_BUFFER(anchor)                                                            \
-  G_STMT_START {                                                                           \
-    if ((anchor)->segment == NULL)                                                         \
-      {                                                                                    \
-        g_warning ("%s: GtkTextChildAnchor hasn't been in a buffer yet", G_GNUC_FUNCTION); \
-      }                                                                                    \
+
+#define CHECK_IN_BUFFER(anchor)                                         \
+  G_STMT_START {                                                        \
+    if ((anchor)->segment == NULL)                                      \
+      {                                                                 \
+        g_warning ("%s: GtkTextChildAnchor hasn't been in a buffer yet",\
+                   G_STRFUNC);                                          \
+      }                                                                 \
   } G_STMT_END
 
-#define CHECK_IN_BUFFER_RETURN(anchor, val)                                                \
-  G_STMT_START {                                                                           \
-    if ((anchor)->segment == NULL)                                                         \
-      {                                                                                    \
-        g_warning ("%s: GtkTextChildAnchor hasn't been in a buffer yet", G_GNUC_FUNCTION); \
-        return (val);                                                                      \
-      }                                                                                    \
+#define CHECK_IN_BUFFER_RETURN(anchor, val)                             \
+  G_STMT_START {                                                        \
+    if ((anchor)->segment == NULL)                                      \
+      {                                                                 \
+        g_warning ("%s: GtkTextChildAnchor hasn't been in a buffer yet",\
+                   G_STRFUNC);                                          \
+        return (val);                                                   \
+      }                                                                 \
   } G_STMT_END
 
 static GtkTextLineSegment *
@@ -133,9 +134,10 @@ _gtk_pixbuf_segment_new (GdkPixbuf *pixbuf)
 
   seg->next = NULL;
 
-  seg->byte_count = 3; /* We convert to the 0xFFFC "unknown character",
-                        * a 3-byte sequence in UTF-8
-                        */
+  /* We convert to the 0xFFFC "unknown character",
+   * a 3-byte sequence in UTF-8.
+   */
+  seg->byte_count = GTK_TEXT_UNKNOWN_CHAR_UTF8_LEN;
   seg->char_count = 1;
 
   seg->body.pixbuf.pixbuf = pixbuf;
@@ -304,38 +306,9 @@ _gtk_anchored_child_set_layout (GtkWidget     *child,
                      layout);  
 }
      
-static void gtk_text_child_anchor_init       (GtkTextChildAnchor      *child_anchor);
-static void gtk_text_child_anchor_class_init (GtkTextChildAnchorClass *klass);
-static void gtk_text_child_anchor_finalize   (GObject                 *obj);
-
-static gpointer parent_class = NULL;
-
-GType
-gtk_text_child_anchor_get_type (void)
-{
-  static GType object_type = 0;
-
-  if (!object_type)
-    {
-      static const GTypeInfo object_info =
-      {
-        sizeof (GtkTextChildAnchorClass),
-        (GBaseInitFunc) NULL,
-        (GBaseFinalizeFunc) NULL,
-        (GClassInitFunc) gtk_text_child_anchor_class_init,
-        NULL,           /* class_finalize */
-        NULL,           /* class_data */
-        sizeof (GtkTextChildAnchor),
-        0,              /* n_preallocs */
-        (GInstanceInitFunc) gtk_text_child_anchor_init,
-      };
-
-      object_type = g_type_register_static (G_TYPE_OBJECT, I_("GtkTextChildAnchor"),
-                                            &object_info, 0);
-    }
+static void gtk_text_child_anchor_finalize (GObject *obj);
 
-  return object_type;
-}
+G_DEFINE_TYPE (GtkTextChildAnchor, gtk_text_child_anchor, G_TYPE_OBJECT)
 
 static void
 gtk_text_child_anchor_init (GtkTextChildAnchor *child_anchor)
@@ -348,8 +321,6 @@ gtk_text_child_anchor_class_init (GtkTextChildAnchorClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-  parent_class = g_type_class_peek_parent (klass);
-
   object_class->finalize = gtk_text_child_anchor_finalize;
 }
 
@@ -404,7 +375,7 @@ gtk_text_child_anchor_finalize (GObject *obj)
 
   anchor->segment = NULL;
 
-  G_OBJECT_CLASS (parent_class)->finalize (obj);
+  G_OBJECT_CLASS (gtk_text_child_anchor_parent_class)->finalize (obj);
 }
 
 /**
@@ -413,9 +384,9 @@ gtk_text_child_anchor_finalize (GObject *obj)
  * 
  * Gets a list of all widgets anchored at this child anchor.
  * The returned list should be freed with g_list_free().
- * 
- * 
- * Return value: list of widgets anchored at @anchor
+ *
+ *
+ * Return value: (element-type GtkWidget) (transfer container): list of widgets anchored at @anchor
  **/
 GList*
 gtk_text_child_anchor_get_widgets (GtkTextChildAnchor *anchor)
@@ -539,6 +510,3 @@ gtk_text_anchored_child_set_layout (GtkWidget     *child,
   
   _gtk_anchored_child_set_layout (child, layout);
 }
-
-#define __GTK_TEXT_CHILD_C__
-#include "gtkaliasdef.c"