[gtk] Use the new GtkBuildableParser type in GtkBuildable interfaces



commit 96b37f4eb8ec0e7598534a83816be7c013fd1c9b
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Aug 29 15:21:20 2019 +0200

    Use the new GtkBuildableParser type in GtkBuildable interfaces

 gtk/gtkassistant.c        |  84 +++++++++++++-------------
 gtk/gtkbuildable.c        |  12 ++--
 gtk/gtkbuildable.h        |  74 +++++++++++------------
 gtk/gtkbuilder-menus.c    |  54 ++++++++---------
 gtk/gtkbuilder.c          |  44 +++++++-------
 gtk/gtkbuilderparser.c    | 138 +++++++++++++++++++++---------------------
 gtk/gtkbuilderprivate.h   |  41 ++++++-------
 gtk/gtkcelllayout.c       |  76 +++++++++++------------
 gtk/gtkcelllayout.h       |  30 +++++-----
 gtk/gtkcellview.c         |  36 +++++------
 gtk/gtkcombobox.c         |  51 ++++++++--------
 gtk/gtkcomboboxtext.c     |  71 +++++++++++-----------
 gtk/gtkconstraintlayout.c |  34 +++++------
 gtk/gtkdialog.c           |  78 ++++++++++++------------
 gtk/gtkfilefilter.c       |  78 ++++++++++++------------
 gtk/gtkiconview.c         |  37 ++++++------
 gtk/gtkinfobar.c          |  78 ++++++++++++------------
 gtk/gtklabel.c            |  51 ++++++++--------
 gtk/gtklevelbar.c         |  26 ++++----
 gtk/gtkliststore.c        |  66 ++++++++++----------
 gtk/gtkscale.c            |  66 ++++++++++----------
 gtk/gtksizegroup.c        |  52 ++++++++--------
 gtk/gtktreestore.c        |  56 ++++++++---------
 gtk/gtkwidget.c           | 149 +++++++++++++++++++++++-----------------------
 gtk/gtkwindow.c           |  62 +++++++++----------
 25 files changed, 774 insertions(+), 770 deletions(-)
---
diff --git a/gtk/gtkassistant.c b/gtk/gtkassistant.c
index 73ea54cf58..4161e2d1b4 100644
--- a/gtk/gtkassistant.c
+++ b/gtk/gtkassistant.c
@@ -178,47 +178,47 @@ static void     gtk_assistant_page_get_property  (GObject           *object,
                                                   GValue            *value,
                                                   GParamSpec        *pspec);
 
-static void       gtk_assistant_buildable_interface_init     (GtkBuildableIface *iface);
-static void       gtk_assistant_buildable_add_child          (GtkBuildable  *buildable,
-                                                              GtkBuilder    *builder,          
-                                                              GObject       *child,
-                                                              const char    *type);
-static gboolean   gtk_assistant_buildable_custom_tag_start   (GtkBuildable  *buildable,
-                                                              GtkBuilder    *builder,
-                                                              GObject       *child,
-                                                              const gchar   *tagname,
-                                                              GMarkupParser *parser,
-                                                              gpointer      *data);
-static void       gtk_assistant_buildable_custom_finished    (GtkBuildable  *buildable,
-                                                              GtkBuilder    *builder,
-                                                              GObject       *child,
-                                                              const gchar   *tagname,
-                                                              gpointer       user_data);
-
-static GList*     find_page                                  (GtkAssistant  *assistant,
-                                                              GtkWidget     *page);
-
-static void       on_assistant_close                         (GtkWidget     *widget,
-                                                             GtkAssistant  *assistant);
-static void       on_assistant_apply                         (GtkWidget     *widget,
-                                                             GtkAssistant  *assistant);
-static void       on_assistant_forward                       (GtkWidget     *widget,
-                                                             GtkAssistant  *assistant);
-static void       on_assistant_back                          (GtkWidget     *widget,
-                                                             GtkAssistant  *assistant);
-static void       on_assistant_cancel                        (GtkWidget     *widget,
-                                                             GtkAssistant  *assistant);
-static void       on_assistant_last                          (GtkWidget     *widget,
-                                                             GtkAssistant  *assistant);
-static void       assistant_remove_page_cb                   (GtkContainer  *container,
-                                                             GtkWidget     *page,
-                                                             GtkAssistant  *assistant);
-
-static int        gtk_assistant_add_page                     (GtkAssistant     *assistant,
-                                                              GtkAssistantPage *page_info,
-                                                              gint              position);
-
-GType             _gtk_assistant_accessible_get_type         (void);
+static void     gtk_assistant_buildable_interface_init   (GtkBuildableIface  *iface);
+static void     gtk_assistant_buildable_add_child        (GtkBuildable       *buildable,
+                                                          GtkBuilder         *builder,
+                                                          GObject            *child,
+                                                          const char         *type);
+static gboolean gtk_assistant_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                          GtkBuilder         *builder,
+                                                          GObject            *child,
+                                                          const gchar        *tagname,
+                                                          GtkBuildableParser *parser,
+                                                          gpointer           *data);
+static void     gtk_assistant_buildable_custom_finished  (GtkBuildable       *buildable,
+                                                          GtkBuilder         *builder,
+                                                          GObject            *child,
+                                                          const gchar        *tagname,
+                                                          gpointer            user_data);
+
+static GList*   find_page                                (GtkAssistant       *assistant,
+                                                          GtkWidget          *page);
+static void     on_assistant_close                       (GtkWidget          *widget,
+                                                          GtkAssistant       *assistant);
+static void     on_assistant_apply                       (GtkWidget          *widget,
+                                                          GtkAssistant       *assistant);
+static void     on_assistant_forward                     (GtkWidget          *widget,
+                                                          GtkAssistant       *assistant);
+static void     on_assistant_back                        (GtkWidget          *widget,
+                                                          GtkAssistant       *assistant);
+static void     on_assistant_cancel                      (GtkWidget          *widget,
+                                                          GtkAssistant       *assistant);
+static void     on_assistant_last                        (GtkWidget          *widget,
+                                                          GtkAssistant       *assistant);
+static void     assistant_remove_page_cb                 (GtkContainer       *container,
+                                                          GtkWidget          *page,
+                                                          GtkAssistant       *assistant);
+
+
+static int        gtk_assistant_add_page                 (GtkAssistant     *assistant,
+                                                          GtkAssistantPage *page_info,
+                                                          gint              position);
+
+GType             _gtk_assistant_accessible_get_type     (void);
 
 enum
 {
@@ -2355,7 +2355,7 @@ gtk_assistant_buildable_custom_tag_start (GtkBuildable  *buildable,
                                           GtkBuilder    *builder,
                                           GObject       *child,
                                           const gchar   *tagname,
-                                          GMarkupParser *parser,
+                                          GtkBuildableParser *parser,
                                           gpointer      *data)
 {
   return parent_buildable_iface->custom_tag_start (buildable, builder, child,
diff --git a/gtk/gtkbuildable.c b/gtk/gtkbuildable.c
index c9972a5b71..7211c3b300 100644
--- a/gtk/gtkbuildable.c
+++ b/gtk/gtkbuildable.c
@@ -230,12 +230,12 @@ gtk_buildable_construct_child (GtkBuildable *buildable,
  *          if it doesn't.
  **/
 gboolean
-gtk_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                GtkBuilder    *builder,
-                                GObject       *child,
-                                const gchar   *tagname,
-                                GMarkupParser *parser,
-                                gpointer      *data)
+gtk_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                GtkBuilder         *builder,
+                                GObject            *child,
+                                const gchar        *tagname,
+                                GtkBuildableParser *parser,
+                                gpointer           *data)
 {
   GtkBuildableIface *iface;
 
diff --git a/gtk/gtkbuildable.h b/gtk/gtkbuildable.h
index aec9c7b41a..fcb1390bef 100644
--- a/gtk/gtkbuildable.h
+++ b/gtk/gtkbuildable.h
@@ -126,42 +126,42 @@ struct _GtkBuildableIface
   GTypeInterface g_iface;
 
   /* virtual table */
-  void          (* set_name)               (GtkBuildable  *buildable,
-                                            const gchar   *name);
-  const gchar * (* get_name)               (GtkBuildable  *buildable);
-  void          (* add_child)              (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder,
-                                           GObject       *child,
-                                           const gchar   *type);
-  void          (* set_buildable_property) (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder,
-                                           const gchar   *name,
-                                           const GValue  *value);
-  GObject *     (* construct_child)        (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder,
-                                           const gchar   *name);
-  gboolean      (* custom_tag_start)       (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder,
-                                           GObject       *child,
-                                           const gchar   *tagname,
-                                           GMarkupParser *parser,
-                                           gpointer      *data);
-  void          (* custom_tag_end)         (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder,
-                                           GObject       *child,
-                                           const gchar   *tagname,
-                                           gpointer       data);
-  void          (* custom_finished)        (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder,
-                                           GObject       *child,
-                                           const gchar   *tagname,
-                                           gpointer       data);
-  void          (* parser_finished)        (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder);
-
-  GObject *     (* get_internal_child)     (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder,
-                                           const gchar   *childname);
+  void          (* set_name)               (GtkBuildable       *buildable,
+                                            const gchar        *name);
+  const gchar * (* get_name)               (GtkBuildable       *buildable);
+  void          (* add_child)              (GtkBuildable       *buildable,
+                                            GtkBuilder         *builder,
+                                            GObject            *child,
+                                            const gchar        *type);
+  void          (* set_buildable_property) (GtkBuildable       *buildable,
+                                            GtkBuilder         *builder,
+                                            const gchar        *name,
+                                            const GValue       *value);
+  GObject *     (* construct_child)        (GtkBuildable       *buildable,
+                                            GtkBuilder         *builder,
+                                            const gchar        *name);
+  gboolean      (* custom_tag_start)       (GtkBuildable       *buildable,
+                                            GtkBuilder         *builder,
+                                            GObject            *child,
+                                            const gchar        *tagname,
+                                            GtkBuildableParser *parser,
+                                            gpointer           *data);
+  void          (* custom_tag_end)         (GtkBuildable       *buildable,
+                                            GtkBuilder         *builder,
+                                            GObject            *child,
+                                            const gchar        *tagname,
+                                            gpointer            data);
+  void          (* custom_finished)        (GtkBuildable       *buildable,
+                                            GtkBuilder         *builder,
+                                            GObject            *child,
+                                            const gchar        *tagname,
+                                            gpointer            data);
+  void          (* parser_finished)        (GtkBuildable       *buildable,
+                                            GtkBuilder         *builder);
+
+  GObject *     (* get_internal_child)     (GtkBuildable       *buildable,
+                                            GtkBuilder         *builder,
+                                            const gchar        *childname);
 };
 
 
@@ -192,7 +192,7 @@ gboolean  gtk_buildable_custom_tag_start       (GtkBuildable        *buildable,
                                                GtkBuilder          *builder,
                                                GObject             *child,
                                                const gchar         *tagname,
-                                               GMarkupParser       *parser,
+                                               GtkBuildableParser  *parser,
                                                gpointer            *data);
 GDK_AVAILABLE_IN_ALL
 void      gtk_buildable_custom_tag_end         (GtkBuildable        *buildable,
diff --git a/gtk/gtkbuilder-menus.c b/gtk/gtkbuilder-menus.c
index 2259cd076d..a1783629b5 100644
--- a/gtk/gtkbuilder-menus.c
+++ b/gtk/gtkbuilder-menus.c
@@ -80,12 +80,12 @@ gtk_builder_menu_pop_frame (GtkBuilderMenuState *state)
 }
 
 static void
-gtk_builder_menu_start_element (GMarkupParseContext  *context,
-                                const gchar          *element_name,
-                                const gchar         **attribute_names,
-                                const gchar         **attribute_values,
-                                gpointer              user_data,
-                                GError              **error)
+gtk_builder_menu_start_element (GtkBuildableParseContext  *context,
+                                const gchar               *element_name,
+                                const gchar              **attribute_names,
+                                const gchar              **attribute_values,
+                                gpointer                   user_data,
+                                GError                   **error)
 {
   GtkBuilderMenuState *state = user_data;
 
@@ -214,14 +214,15 @@ gtk_builder_menu_start_element (GMarkupParseContext  *context,
     }
 
   {
-    const GSList *element_stack;
+    GPtrArray *element_stack;
 
-    element_stack = g_markup_parse_context_get_element_stack (context);
+    element_stack = gtk_buildable_parse_context_get_element_stack (context);
 
-    if (element_stack->next)
+    if (element_stack->len > 1)
       g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
                    _("Element <%s> not allowed inside <%s>"),
-                   element_name, (const gchar *) element_stack->next->data);
+                   element_name,
+                   (const gchar *) g_ptr_array_index (element_stack, element_stack->len - 2));
 
     else
       g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
@@ -230,10 +231,10 @@ gtk_builder_menu_start_element (GMarkupParseContext  *context,
 }
 
 static void
-gtk_builder_menu_end_element (GMarkupParseContext  *context,
-                              const gchar          *element_name,
-                              gpointer              user_data,
-                              GError              **error)
+gtk_builder_menu_end_element (GtkBuildableParseContext  *context,
+                              const gchar               *element_name,
+                              gpointer                   user_data,
+                              GError                   **error)
 {
   GtkBuilderMenuState *state = user_data;
 
@@ -297,11 +298,11 @@ gtk_builder_menu_end_element (GMarkupParseContext  *context,
 }
 
 static void
-gtk_builder_menu_text (GMarkupParseContext  *context,
-                       const gchar          *text,
-                       gsize                 text_len,
-                       gpointer              user_data,
-                       GError              **error)
+gtk_builder_menu_text (GtkBuildableParseContext  *context,
+                       const gchar               *text,
+                       gsize                      text_len,
+                       gpointer                   user_data,
+                       GError                   **error)
 {
   GtkBuilderMenuState *state = user_data;
   gint i;
@@ -315,15 +316,15 @@ gtk_builder_menu_text (GMarkupParseContext  *context,
         else
           g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
                        _("Text may not appear inside <%s>"),
-                       g_markup_parse_context_get_element (context));
+                       gtk_buildable_parse_context_get_element (context));
         break;
       }
 }
 
 static void
-gtk_builder_menu_error (GMarkupParseContext *context,
-                        GError              *error,
-                        gpointer             user_data)
+gtk_builder_menu_error (GtkBuildableParseContext *context,
+                        GError                   *error,
+                        gpointer                  user_data)
 {
   GtkBuilderMenuState *state = user_data;
 
@@ -348,12 +349,11 @@ gtk_builder_menu_error (GMarkupParseContext *context,
   g_slice_free (GtkBuilderMenuState, state);
 }
 
-static GMarkupParser gtk_builder_menu_subparser =
+static GtkBuildableParser gtk_builder_menu_subparser =
 {
   gtk_builder_menu_start_element,
   gtk_builder_menu_end_element,
   gtk_builder_menu_text,
-  NULL,                            /* passthrough */
   gtk_builder_menu_error
 };
 
@@ -369,7 +369,7 @@ _gtk_builder_menu_start (ParserData   *parser_data,
 
   state = g_slice_new0 (GtkBuilderMenuState);
   state->parser_data = parser_data;
-  g_markup_parse_context_push (parser_data->ctx, &gtk_builder_menu_subparser, state);
+  gtk_buildable_parse_context_push (&parser_data->ctx, &gtk_builder_menu_subparser, state);
 
   if (COLLECT (STRING, "id", &id))
     {
@@ -387,7 +387,7 @@ _gtk_builder_menu_end (ParserData *parser_data)
 {
   GtkBuilderMenuState *state;
 
-  state = g_markup_parse_context_pop (parser_data->ctx);
+  state = gtk_buildable_parse_context_pop (&parser_data->ctx);
   gtk_builder_menu_pop_frame (state);
 
   g_assert (state->frame.prev == NULL);
diff --git a/gtk/gtkbuilder.c b/gtk/gtkbuilder.c
index d5c4f1954c..c58184af3f 100644
--- a/gtk/gtkbuilder.c
+++ b/gtk/gtkbuilder.c
@@ -2805,7 +2805,7 @@ gtk_builder_get_application (GtkBuilder *builder)
 /*< private >
  * _gtk_builder_prefix_error:
  * @builder: a #GtkBuilder
- * @context: the #GMarkupParseContext
+ * @context: the #GtkBuildableParseContext
  * @error: an error
  *
  * Calls g_prefix_error() to prepend a filename:line:column marker
@@ -2817,21 +2817,21 @@ gtk_builder_get_application (GtkBuilder *builder)
  * g_markup_collect_attributes() in a start_element vfunc.
  */
 void
-_gtk_builder_prefix_error (GtkBuilder           *builder,
-                           GMarkupParseContext  *context,
-                           GError              **error)
+_gtk_builder_prefix_error (GtkBuilder                *builder,
+                           GtkBuildableParseContext  *context,
+                           GError                   **error)
 {
   GtkBuilderPrivate *priv = gtk_builder_get_instance_private (builder);
   gint line, col;
 
-  g_markup_parse_context_get_position (context, &line, &col);
+  gtk_buildable_parse_context_get_position (context, &line, &col);
   g_prefix_error (error, "%s:%d:%d ", priv->filename, line, col);
 }
 
 /*< private >
  * _gtk_builder_error_unhandled_tag:
  * @builder: a #GtkBuilder
- * @context: the #GMarkupParseContext
+ * @context: the #GtkBuildableParseContext
  * @object: name of the object that is being handled
  * @element_name: name of the element whose start tag is being handled
  * @error: return location for the error
@@ -2842,16 +2842,16 @@ _gtk_builder_prefix_error (GtkBuilder           *builder,
  * This is intended to be called in a start_element vfunc.
  */
 void
-_gtk_builder_error_unhandled_tag (GtkBuilder           *builder,
-                                  GMarkupParseContext  *context,
-                                  const gchar          *object,
-                                  const gchar          *element_name,
-                                  GError              **error)
+_gtk_builder_error_unhandled_tag (GtkBuilder                *builder,
+                                  GtkBuildableParseContext  *context,
+                                  const gchar               *object,
+                                  const gchar               *element_name,
+                                  GError                   **error)
 {
   GtkBuilderPrivate *priv = gtk_builder_get_instance_private (builder);
   gint line, col;
 
-  g_markup_parse_context_get_position (context, &line, &col);
+  gtk_buildable_parse_context_get_position (context, &line, &col);
   g_set_error (error,
                GTK_BUILDER_ERROR,
                GTK_BUILDER_ERROR_UNHANDLED_TAG,
@@ -2862,7 +2862,7 @@ _gtk_builder_error_unhandled_tag (GtkBuilder           *builder,
 
 /*< private >
  * @builder: a #GtkBuilder
- * @context: the #GMarkupParseContext
+ * @context: the #GtkBuildableParseContext
  * @parent_name: the name of the expected parent element
  * @error: return location for an error
  *
@@ -2875,27 +2875,27 @@ _gtk_builder_error_unhandled_tag (GtkBuilder           *builder,
  * Returns: %TRUE if @parent_name is the parent element
  */
 gboolean
-_gtk_builder_check_parent (GtkBuilder           *builder,
-                           GMarkupParseContext  *context,
-                           const gchar          *parent_name,
-                           GError              **error)
+_gtk_builder_check_parent (GtkBuilder                *builder,
+                           GtkBuildableParseContext  *context,
+                           const gchar               *parent_name,
+                           GError                   **error)
 {
   GtkBuilderPrivate *priv = gtk_builder_get_instance_private (builder);
-  const GSList *stack;
+  GPtrArray *stack;
   gint line, col;
   const gchar *parent;
   const gchar *element;
 
-  stack = g_markup_parse_context_get_element_stack (context);
+  stack = gtk_buildable_parse_context_get_element_stack (context);
 
-  element = (const gchar *)stack->data;
-  parent = stack->next ? (const gchar *)stack->next->data : "";
+  element = g_ptr_array_index (stack, stack->len - 1);
+  parent = stack->len > 1 ? g_ptr_array_index (stack, stack->len - 2) : "";
 
   if (g_str_equal (parent_name, parent) ||
       (g_str_equal (parent_name, "object") && g_str_equal (parent, "template")))
     return TRUE;
 
-  g_markup_parse_context_get_position (context, &line, &col);
+  gtk_buildable_parse_context_get_position (context, &line, &col);
   g_set_error (error,
                GTK_BUILDER_ERROR,
                GTK_BUILDER_ERROR_INVALID_TAG,
diff --git a/gtk/gtkbuilderparser.c b/gtk/gtkbuilderparser.c
index d02e7192b3..ac5becec94 100644
--- a/gtk/gtkbuilderparser.c
+++ b/gtk/gtkbuilderparser.c
@@ -392,7 +392,7 @@ error_missing_attribute (ParserData   *data,
 {
   gint line, col;
 
-  g_markup_parse_context_get_position (data->ctx, &line, &col);
+  gtk_buildable_parse_context_get_position (&data->ctx, &line, &col);
 
   g_set_error (error,
                GTK_BUILDER_ERROR,
@@ -409,7 +409,7 @@ error_invalid_tag (ParserData   *data,
 {
   gint line, col;
 
-  g_markup_parse_context_get_position (data->ctx, &line, &col);
+  gtk_buildable_parse_context_get_position (&data->ctx, &line, &col);
 
   if (expected)
     g_set_error (error,
@@ -432,7 +432,7 @@ error_unhandled_tag (ParserData   *data,
 {
   gint line, col;
 
-  g_markup_parse_context_get_position (data->ctx, &line, &col);
+  gtk_buildable_parse_context_get_position (&data->ctx, &line, &col);
   g_set_error (error,
                GTK_BUILDER_ERROR,
                GTK_BUILDER_ERROR_UNHANDLED_TAG,
@@ -512,7 +512,7 @@ parse_requires (ParserData   *data,
                                     G_MARKUP_COLLECT_STRING, "version", &version,
                                     G_MARKUP_COLLECT_INVALID))
     {
-      _gtk_builder_prefix_error (data->builder, data->ctx, error);
+      _gtk_builder_prefix_error (data->builder, &data->ctx, error);
       return;
     }
 
@@ -522,7 +522,7 @@ parse_requires (ParserData   *data,
                    GTK_BUILDER_ERROR,
                    GTK_BUILDER_ERROR_INVALID_VALUE,
                    "'version' attribute has malformed value '%s'", version);
-      _gtk_builder_prefix_error (data->builder, data->ctx, error);
+      _gtk_builder_prefix_error (data->builder, &data->ctx, error);
       return;
     }
   version_major = g_ascii_strtoll (split[0], NULL, 10);
@@ -553,12 +553,12 @@ is_requested_object (const gchar *object,
 }
 
 static void
-parse_object (GMarkupParseContext  *context,
-              ParserData           *data,
-              const gchar          *element_name,
-              const gchar         **names,
-              const gchar         **values,
-              GError              **error)
+parse_object (GtkBuildableParseContext  *context,
+              ParserData                *data,
+              const gchar               *element_name,
+              const gchar              **names,
+              const gchar              **values,
+              GError                   **error)
 {
   ObjectInfo *object_info;
   ChildInfo* child_info;
@@ -590,7 +590,7 @@ parse_object (GMarkupParseContext  *context,
                                     G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "id", &object_id,
                                     G_MARKUP_COLLECT_INVALID))
     {
-      _gtk_builder_prefix_error (data->builder, data->ctx, error);
+      _gtk_builder_prefix_error (data->builder, &data->ctx, error);
       return;
     }
 
@@ -681,17 +681,17 @@ parse_object (GMarkupParseContext  *context,
       return;
     }
 
-  g_markup_parse_context_get_position (context, &line, NULL);
+  gtk_buildable_parse_context_get_position (context, &line, NULL);
   g_hash_table_insert (data->object_ids, g_strdup (object_id), GINT_TO_POINTER (line));
 }
 
 static void
-parse_template (GMarkupParseContext  *context,
-                ParserData           *data,
-                const gchar          *element_name,
-                const gchar         **names,
-                const gchar         **values,
-                GError              **error)
+parse_template (GtkBuildableParseContext  *context,
+                ParserData                *data,
+                const gchar               *element_name,
+                const gchar              **names,
+                const gchar              **values,
+                GError                   **error)
 {
   ObjectInfo *object_info;
   const gchar *object_class = NULL;
@@ -707,7 +707,7 @@ parse_template (GMarkupParseContext  *context,
                                     G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "parent", 
&parent_class,
                                     G_MARKUP_COLLECT_INVALID))
     {
-      _gtk_builder_prefix_error (data->builder, data->ctx, error);
+      _gtk_builder_prefix_error (data->builder, &data->ctx, error);
       return;
     }
 
@@ -785,7 +785,7 @@ parse_template (GMarkupParseContext  *context,
       return;
     }
 
-  g_markup_parse_context_get_position (context, &line, NULL);
+  gtk_buildable_parse_context_get_position (context, &line, NULL);
   g_hash_table_insert (data->object_ids, g_strdup (object_class), GINT_TO_POINTER (line));
 }
 
@@ -829,7 +829,7 @@ parse_child (ParserData   *data,
                                     G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "internal-child", 
&internal_child,
                                     G_MARKUP_COLLECT_INVALID))
     {
-      _gtk_builder_prefix_error (data->builder, data->ctx, error);
+      _gtk_builder_prefix_error (data->builder, &data->ctx, error);
       return;
     }
 
@@ -889,7 +889,7 @@ parse_property (ParserData   *data,
                                     G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "bind-flags", 
&bind_flags_str,
                                     G_MARKUP_COLLECT_INVALID))
     {
-      _gtk_builder_prefix_error (data->builder, data->ctx, error);
+      _gtk_builder_prefix_error (data->builder, &data->ctx, error);
       return;
     }
 
@@ -902,7 +902,7 @@ parse_property (ParserData   *data,
                    GTK_BUILDER_ERROR_INVALID_PROPERTY,
                    "Invalid property: %s.%s",
                    g_type_name (object_info->type), name);
-      _gtk_builder_prefix_error (data->builder, data->ctx, error);
+      _gtk_builder_prefix_error (data->builder, &data->ctx, error);
       return;
     }
 
@@ -910,12 +910,12 @@ parse_property (ParserData   *data,
     {
       if (!_gtk_builder_flags_from_string (G_TYPE_BINDING_FLAGS, NULL, bind_flags_str, &bind_flags, error))
         {
-          _gtk_builder_prefix_error (data->builder, data->ctx, error);
+          _gtk_builder_prefix_error (data->builder, &data->ctx, error);
           return;
         }
     }
 
-  g_markup_parse_context_get_position (data->ctx, &line, &col);
+  gtk_buildable_parse_context_get_position (&data->ctx, &line, &col);
 
   if (bind_source)
     {
@@ -996,7 +996,7 @@ parse_signal (ParserData   *data,
                                     G_MARKUP_COLLECT_TRISTATE|G_MARKUP_COLLECT_OPTIONAL, "swapped", &swapped,
                                     G_MARKUP_COLLECT_INVALID))
     {
-      _gtk_builder_prefix_error (data->builder, data->ctx, error);
+      _gtk_builder_prefix_error (data->builder, &data->ctx, error);
       return;
     }
 
@@ -1007,7 +1007,7 @@ parse_signal (ParserData   *data,
                    GTK_BUILDER_ERROR_INVALID_SIGNAL,
                    "Invalid signal '%s' for type '%s'",
                    name, g_type_name (object_info->type));
-      _gtk_builder_prefix_error (data->builder, data->ctx, error);
+      _gtk_builder_prefix_error (data->builder, &data->ctx, error);
       return;
     }
 
@@ -1066,7 +1066,7 @@ parse_interface (ParserData   *data,
                                     G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "domain", &domain,
                                     G_MARKUP_COLLECT_INVALID))
     {
-      _gtk_builder_prefix_error (data->builder, data->ctx, error);
+      _gtk_builder_prefix_error (data->builder, &data->ctx, error);
       return;
     }
 
@@ -1088,7 +1088,7 @@ static SubParser *
 create_subparser (GObject       *object,
                   GObject       *child,
                   const gchar   *element_name,
-                  GMarkupParser *parser,
+                  GtkBuildableParser *parser,
                   gpointer       user_data)
 {
   SubParser *subparser;
@@ -1098,7 +1098,7 @@ create_subparser (GObject       *object,
   subparser->child = child;
   subparser->tagname = g_strdup (element_name);
   subparser->start = element_name;
-  subparser->parser = g_memdup (parser, sizeof (GMarkupParser));
+  subparser->parser = g_memdup (parser, sizeof (GtkBuildableParser));
   subparser->data = user_data;
 
   return subparser;
@@ -1112,12 +1112,12 @@ free_subparser (SubParser *subparser)
 }
 
 static gboolean
-subparser_start (GMarkupParseContext  *context,
-                 const gchar          *element_name,
-                 const gchar         **names,
-                 const gchar         **values,
-                 ParserData           *data,
-                 GError              **error)
+subparser_start (GtkBuildableParseContext  *context,
+                 const gchar               *element_name,
+                 const gchar              **names,
+                 const gchar              **values,
+                 ParserData                *data,
+                 GError                   **error)
 {
   SubParser *subparser = data->subparser;
 
@@ -1137,10 +1137,10 @@ subparser_start (GMarkupParseContext  *context,
 }
 
 static void
-subparser_end (GMarkupParseContext  *context,
-               const gchar          *element_name,
-               ParserData           *data,
-               GError              **error)
+subparser_end (GtkBuildableParseContext  *context,
+               const gchar               *element_name,
+               ParserData                *data,
+               GError                   **error)
 {
   if (data->subparser->parser->end_element)
     data->subparser->parser->end_element (context, element_name,
@@ -1172,15 +1172,15 @@ subparser_end (GMarkupParseContext  *context,
 }
 
 static gboolean
-parse_custom (GMarkupParseContext  *context,
-              const gchar          *element_name,
-              const gchar         **names,
-              const gchar         **values,
-              ParserData           *data,
-              GError              **error)
+parse_custom (GtkBuildableParseContext  *context,
+              const gchar               *element_name,
+              const gchar              **names,
+              const gchar              **values,
+              ParserData                *data,
+              GError                   **error)
 {
   CommonInfo* parent_info;
-  GMarkupParser parser;
+  GtkBuildableParser parser;
   gpointer subparser_data;
   GObject *object;
   GObject *child;
@@ -1237,12 +1237,12 @@ parse_custom (GMarkupParseContext  *context,
 }
 
 static void
-start_element (GMarkupParseContext  *context,
-               const gchar          *element_name,
-               const gchar         **names,
-               const gchar         **values,
-               gpointer              user_data,
-               GError              **error)
+start_element (GtkBuildableParseContext  *context,
+               const gchar               *element_name,
+               const gchar              **names,
+               const gchar              **values,
+               gpointer                   user_data,
+               GError                   **error)
 {
   ParserData *data = (ParserData*)user_data;
 
@@ -1323,10 +1323,10 @@ _gtk_builder_parser_translate (const gchar *domain,
 }
 
 static void
-end_element (GMarkupParseContext  *context,
-             const gchar          *element_name,
-             gpointer              user_data,
-             GError              **error)
+end_element (GtkBuildableParseContext  *context,
+             const gchar               *element_name,
+             gpointer                   user_data,
+             GError                   **error)
 {
   ParserData *data = (ParserData*)user_data;
 
@@ -1477,11 +1477,11 @@ end_element (GMarkupParseContext  *context,
 /* Called for character data */
 /* text is not nul-terminated */
 static void
-text (GMarkupParseContext  *context,
-      const gchar          *text,
-      gsize                 text_len,
-      gpointer              user_data,
-      GError              **error)
+text (GtkBuildableParseContext  *context,
+      const gchar               *text,
+      gsize                      text_len,
+      gpointer                   user_data,
+      GError                   **error)
 {
   ParserData *data = (ParserData*)user_data;
   CommonInfo *info;
@@ -1504,7 +1504,7 @@ text (GMarkupParseContext  *context,
   info = state_peek_info (data, CommonInfo);
   g_assert (info != NULL);
 
-  if (strcmp (g_markup_parse_context_get_element (context), "property") == 0)
+  if (strcmp (gtk_buildable_parse_context_get_element (context), "property") == 0)
     {
       PropertyInfo *prop_info = (PropertyInfo*)info;
 
@@ -1538,7 +1538,7 @@ free_info (CommonInfo *info)
     }
 }
 
-static const GMarkupParser parser = {
+static const GtkBuildableParser parser = {
   start_element,
   end_element,
   text,
@@ -1582,11 +1582,9 @@ _gtk_builder_parser_parse_buffer (GtkBuilder   *builder,
       data.inside_requested_object = TRUE;
     }
 
-  data.ctx = g_markup_parse_context_new (&parser,
-                                          G_MARKUP_TREAT_CDATA_AS_TEXT,
-                                          &data, NULL);
+  gtk_buildable_parse_context_init (&data.ctx, &parser, &data);
 
-  if (!g_markup_parse_context_parse (data.ctx, buffer, length, error))
+  if (!gtk_buildable_parse_context_parse (&data.ctx, buffer, length, error))
     goto out;
 
   _gtk_builder_finish (builder);
@@ -1626,7 +1624,7 @@ _gtk_builder_parser_parse_buffer (GtkBuilder   *builder,
   g_slist_free (data.finalizers);
   g_free (data.domain);
   g_hash_table_destroy (data.object_ids);
-  g_markup_parse_context_free (data.ctx);
+  gtk_buildable_parse_context_free (&data.ctx);
 
   /* restore the original domain */
   gtk_builder_set_translation_domain (builder, domain);
diff --git a/gtk/gtkbuilderprivate.h b/gtk/gtkbuilderprivate.h
index d64616b639..a33c6c8659 100644
--- a/gtk/gtkbuilderprivate.h
+++ b/gtk/gtkbuilderprivate.h
@@ -115,7 +115,7 @@ struct _GtkBuildableParseContext {
 };
 
 typedef struct {
-  GMarkupParser *parser;
+  GtkBuildableParser *parser;
   gchar *tagname;
   const gchar *start;
   gpointer data;
@@ -129,7 +129,7 @@ typedef struct {
   gchar *domain;
   GSList *stack;
   SubParser *subparser;
-  GMarkupParseContext *ctx;
+  GtkBuildableParseContext ctx;
   const gchar *filename;
   GSList *finalizers;
   GSList *custom_finalizers;
@@ -200,24 +200,25 @@ void      _gtk_builder_menu_end   (ParserData  *parser_data);
 
 GType     _gtk_builder_get_template_type (GtkBuilder *builder);
 
-void _gtk_builder_prefix_error            (GtkBuilder           *builder,
-                                           GMarkupParseContext  *context,
-                                           GError              **error);
-void _gtk_builder_error_unhandled_tag     (GtkBuilder           *builder,
-                                           GMarkupParseContext  *context,
-                                           const gchar          *object,
-                                           const gchar          *element_name,
-                                           GError              **error);
-gboolean _gtk_builder_check_parent        (GtkBuilder           *builder,
-                                           GMarkupParseContext  *context,
-                                           const gchar          *parent_name,
-                                           GError              **error);
-GObject * _gtk_builder_lookup_object      (GtkBuilder           *builder,
-                                           const gchar          *name,
-                                           gint                  line,
-                                           gint                  col);
-gboolean _gtk_builder_lookup_failed       (GtkBuilder           *builder,
-                                           GError              **error);
+void     _gtk_builder_prefix_error        (GtkBuilder                *builder,
+                                           GtkBuildableParseContext  *context,
+                                           GError                   **error);
+void     _gtk_builder_error_unhandled_tag (GtkBuilder                *builder,
+                                           GtkBuildableParseContext  *context,
+                                           const gchar               *object,
+                                           const gchar               *element_name,
+                                           GError                   **error);
+gboolean _gtk_builder_check_parent        (GtkBuilder                *builder,
+                                           GtkBuildableParseContext  *context,
+                                           const gchar               *parent_name,
+                                           GError                   **error);
+GObject *_gtk_builder_lookup_object       (GtkBuilder                *builder,
+                                           const gchar               *name,
+                                           gint                       line,
+                                           gint                       col);
+gboolean _gtk_builder_lookup_failed       (GtkBuilder                *builder,
+                                           GError                   **error);
+
 
 
 #endif /* __GTK_BUILDER_PRIVATE_H__ */
diff --git a/gtk/gtkcelllayout.c b/gtk/gtkcelllayout.c
index a48f76a365..4f7329895c 100644
--- a/gtk/gtkcelllayout.c
+++ b/gtk/gtkcelllayout.c
@@ -609,12 +609,12 @@ typedef struct {
 } AttributesSubParserData;
 
 static void
-attributes_start_element (GMarkupParseContext *context,
-                         const gchar         *element_name,
-                         const gchar        **names,
-                         const gchar        **values,
-                         gpointer             user_data,
-                         GError             **error)
+attributes_start_element (GtkBuildableParseContext *context,
+                          const gchar              *element_name,
+                          const gchar             **names,
+                          const gchar             **values,
+                          gpointer                  user_data,
+                          GError                  **error)
 {
   AttributesSubParserData *data = (AttributesSubParserData*)user_data;
 
@@ -654,11 +654,11 @@ attributes_start_element (GMarkupParseContext *context,
 }
 
 static void
-attributes_text_element (GMarkupParseContext  *context,
-                        const gchar          *text,
-                        gsize                 text_len,
-                        gpointer              user_data,
-                        GError              **error)
+attributes_text_element (GtkBuildableParseContext  *context,
+                         const gchar               *text,
+                         gsize                      text_len,
+                         gpointer                   user_data,
+                         GError                   **error)
 {
   AttributesSubParserData *data = (AttributesSubParserData*)user_data;
 
@@ -667,10 +667,10 @@ attributes_text_element (GMarkupParseContext  *context,
 }
 
 static void
-attributes_end_element (GMarkupParseContext  *context,
-                       const gchar          *element_name,
-                       gpointer              user_data,
-                       GError              **error)
+attributes_end_element (GtkBuildableParseContext  *context,
+                        const gchar               *element_name,
+                        gpointer                   user_data,
+                        GError                   **error)
 {
   AttributesSubParserData *data = (AttributesSubParserData*)user_data;
   GValue val = G_VALUE_INIT;
@@ -695,7 +695,7 @@ attributes_end_element (GMarkupParseContext  *context,
   g_string_set_size (data->string, 0);
 }
 
-static const GMarkupParser attributes_parser =
+static const GtkBuildableParser attributes_parser =
   {
     attributes_start_element,
     attributes_end_element,
@@ -750,12 +750,12 @@ typedef struct {
 } CellPackingSubParserData;
 
 static void
-cell_packing_start_element (GMarkupParseContext *context,
-                           const gchar         *element_name,
-                           const gchar        **names,
-                           const gchar        **values,
-                           gpointer             user_data,
-                           GError             **error)
+cell_packing_start_element (GtkBuildableParseContext *context,
+                            const gchar              *element_name,
+                            const gchar             **names,
+                            const gchar             **values,
+                            gpointer                  user_data,
+                            GError                  **error)
 {
   CellPackingSubParserData *data = (CellPackingSubParserData*)user_data;
 
@@ -802,11 +802,11 @@ cell_packing_start_element (GMarkupParseContext *context,
 }
 
 static void
-cell_packing_text_element (GMarkupParseContext *context,
-                          const gchar         *text,
-                          gsize                text_len,
-                          gpointer             user_data,
-                          GError             **error)
+cell_packing_text_element (GtkBuildableParseContext *context,
+                           const gchar              *text,
+                           gsize                     text_len,
+                           gpointer                  user_data,
+                           GError                  **error)
 {
   CellPackingSubParserData *data = (CellPackingSubParserData*)user_data;
 
@@ -815,10 +815,10 @@ cell_packing_text_element (GMarkupParseContext *context,
 }
 
 static void
-cell_packing_end_element (GMarkupParseContext *context,
-                         const gchar         *element_name,
-                         gpointer             user_data,
-                         GError             **error)
+cell_packing_end_element (GtkBuildableParseContext *context,
+                          const gchar              *element_name,
+                          gpointer                  user_data,
+                          GError                  **error)
 {
   CellPackingSubParserData *data = (CellPackingSubParserData*)user_data;
   GtkCellArea *area;
@@ -861,7 +861,7 @@ cell_packing_end_element (GMarkupParseContext *context,
 }
 
 
-static const GMarkupParser cell_packing_parser =
+static const GtkBuildableParser cell_packing_parser =
   {
     cell_packing_start_element,
     cell_packing_end_element,
@@ -869,12 +869,12 @@ static const GMarkupParser cell_packing_parser =
   };
 
 gboolean
-_gtk_cell_layout_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                            GtkBuilder    *builder,
-                                            GObject       *child,
-                                            const gchar   *tagname,
-                                            GMarkupParser *parser,
-                                            gpointer      *data)
+_gtk_cell_layout_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                             GtkBuilder         *builder,
+                                             GObject            *child,
+                                             const gchar        *tagname,
+                                             GtkBuildableParser *parser,
+                                             gpointer           *data)
 {
   AttributesSubParserData  *attr_data;
   CellPackingSubParserData *packing_data;
diff --git a/gtk/gtkcelllayout.h b/gtk/gtkcelllayout.h
index 3e3e33fe69..ccad30c6a3 100644
--- a/gtk/gtkcelllayout.h
+++ b/gtk/gtkcelllayout.h
@@ -147,21 +147,21 @@ void  gtk_cell_layout_reorder            (GtkCellLayout         *cell_layout,
 GDK_AVAILABLE_IN_ALL
 GtkCellArea *gtk_cell_layout_get_area    (GtkCellLayout         *cell_layout);
 
-gboolean _gtk_cell_layout_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                                     GtkBuilder    *builder,
-                                                     GObject       *child,
-                                                     const gchar   *tagname,
-                                                     GMarkupParser *parser,
-                                                     gpointer      *data);
-gboolean _gtk_cell_layout_buildable_custom_tag_end   (GtkBuildable  *buildable,
-                                                     GtkBuilder    *builder,
-                                                     GObject       *child,
-                                                     const gchar   *tagname,
-                                                     gpointer      *data);
-void _gtk_cell_layout_buildable_add_child            (GtkBuildable  *buildable,
-                                                     GtkBuilder    *builder,
-                                                     GObject       *child,
-                                                     const gchar   *type);
+gboolean _gtk_cell_layout_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                      GtkBuilder         *builder,
+                                                      GObject            *child,
+                                                      const gchar        *tagname,
+                                                      GtkBuildableParser *parser,
+                                                      gpointer           *data);
+gboolean _gtk_cell_layout_buildable_custom_tag_end   (GtkBuildable       *buildable,
+                                                      GtkBuilder         *builder,
+                                                      GObject            *child,
+                                                      const gchar        *tagname,
+                                                      gpointer           *data);
+void     _gtk_cell_layout_buildable_add_child        (GtkBuildable       *buildable,
+                                                      GtkBuilder         *builder,
+                                                      GObject            *child,
+                                                      const gchar        *type);
 
 G_END_DECLS
 
diff --git a/gtk/gtkcellview.c b/gtk/gtkcellview.c
index 3d1059ebb9..12132c2944 100644
--- a/gtk/gtkcellview.c
+++ b/gtk/gtkcellview.c
@@ -83,18 +83,18 @@ static GtkCellArea *gtk_cell_view_cell_layout_get_area         (GtkCellLayout
 
 
 /* buildable */
-static void       gtk_cell_view_buildable_init                 (GtkBuildableIface     *iface);
-static gboolean   gtk_cell_view_buildable_custom_tag_start     (GtkBuildable         *buildable,
-                                                               GtkBuilder            *builder,
-                                                               GObject               *child,
-                                                               const gchar           *tagname,
-                                                               GMarkupParser         *parser,
-                                                               gpointer              *data);
-static void       gtk_cell_view_buildable_custom_tag_end       (GtkBuildable         *buildable,
-                                                               GtkBuilder            *builder,
-                                                               GObject               *child,
-                                                               const gchar           *tagname,
-                                                               gpointer               data);
+static void        gtk_cell_view_buildable_init             (GtkBuildableIface  *iface);
+static gboolean    gtk_cell_view_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                             GtkBuilder         *builder,
+                                                             GObject            *child,
+                                                             const gchar        *tagname,
+                                                             GtkBuildableParser *parser,
+                                                             gpointer           *data);
+static void        gtk_cell_view_buildable_custom_tag_end   (GtkBuildable       *buildable,
+                                                             GtkBuilder         *builder,
+                                                             GObject            *child,
+                                                             const gchar        *tagname,
+                                                             gpointer            data);
 
 static GtkSizeRequestMode gtk_cell_view_get_request_mode       (GtkWidget             *widget);
 static void gtk_cell_view_measure (GtkWidget      *widget,
@@ -744,12 +744,12 @@ gtk_cell_view_cell_layout_get_area (GtkCellLayout   *layout)
 
 /* GtkBuildable implementation */
 static gboolean
-gtk_cell_view_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                         GtkBuilder    *builder,
-                                         GObject       *child,
-                                         const gchar   *tagname,
-                                         GMarkupParser *parser,
-                                         gpointer      *data)
+gtk_cell_view_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                          GtkBuilder         *builder,
+                                          GObject            *child,
+                                          const gchar        *tagname,
+                                          GtkBuildableParser *parser,
+                                          gpointer           *data)
 {
   if (parent_buildable_iface->custom_tag_start &&
       parent_buildable_iface->custom_tag_start (buildable, builder, child,
diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c
index ea8c1f6968..7ccad72ed7 100644
--- a/gtk/gtkcombobox.c
+++ b/gtk/gtkcombobox.c
@@ -297,25 +297,26 @@ static gchar   *gtk_combo_box_format_entry_text              (GtkComboBox     *c
 /* GtkBuildable method implementation */
 static GtkBuildableIface *parent_buildable_iface;
 
-static void     gtk_combo_box_buildable_init                 (GtkBuildableIface *iface);
-static void     gtk_combo_box_buildable_add_child            (GtkBuildable  *buildable,
-                                                              GtkBuilder    *builder,
-                                                              GObject       *child,
-                                                              const gchar   *type);
-static gboolean gtk_combo_box_buildable_custom_tag_start     (GtkBuildable  *buildable,
-                                                              GtkBuilder    *builder,
-                                                              GObject       *child,
-                                                              const gchar   *tagname,
-                                                              GMarkupParser *parser,
-                                                              gpointer      *data);
-static void     gtk_combo_box_buildable_custom_tag_end       (GtkBuildable  *buildable,
-                                                              GtkBuilder    *builder,
-                                                              GObject       *child,
-                                                              const gchar   *tagname,
-                                                              gpointer       data);
-static GObject *gtk_combo_box_buildable_get_internal_child   (GtkBuildable *buildable,
-                                                              GtkBuilder   *builder,
-                                                              const gchar  *childname);
+static void     gtk_combo_box_buildable_init                 (GtkBuildableIface  *iface);
+static void     gtk_combo_box_buildable_add_child            (GtkBuildable       *buildable,
+                                                              GtkBuilder         *builder,
+                                                              GObject            *child,
+                                                              const gchar        *type);
+static gboolean gtk_combo_box_buildable_custom_tag_start     (GtkBuildable       *buildable,
+                                                              GtkBuilder         *builder,
+                                                              GObject            *child,
+                                                              const gchar        *tagname,
+                                                              GtkBuildableParser *parser,
+                                                              gpointer           *data);
+static void     gtk_combo_box_buildable_custom_tag_end       (GtkBuildable       *buildable,
+                                                              GtkBuilder         *builder,
+                                                              GObject            *child,
+                                                              const gchar        *tagname,
+                                                              gpointer            data);
+static GObject *gtk_combo_box_buildable_get_internal_child   (GtkBuildable       *buildable,
+                                                              GtkBuilder         *builder,
+                                                              const gchar        *childname);
+
 
 
 /* GtkCellEditable method implementations */
@@ -2824,12 +2825,12 @@ gtk_combo_box_buildable_add_child (GtkBuildable *buildable,
 }
 
 static gboolean
-gtk_combo_box_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                          GtkBuilder    *builder,
-                                          GObject       *child,
-                                          const gchar   *tagname,
-                                          GMarkupParser *parser,
-                                          gpointer      *data)
+gtk_combo_box_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                          GtkBuilder         *builder,
+                                          GObject            *child,
+                                          const gchar        *tagname,
+                                          GtkBuildableParser *parser,
+                                          gpointer           *data)
 {
   if (parent_buildable_iface->custom_tag_start (buildable, builder, child,
                                                 tagname, parser, data))
diff --git a/gtk/gtkcomboboxtext.c b/gtk/gtkcomboboxtext.c
index 0db2906d81..3794690414 100644
--- a/gtk/gtkcomboboxtext.c
+++ b/gtk/gtkcomboboxtext.c
@@ -99,19 +99,20 @@ struct _GtkComboBoxTextClass
 };
 
 
-static void     gtk_combo_box_text_buildable_interface_init     (GtkBuildableIface *iface);
-static gboolean gtk_combo_box_text_buildable_custom_tag_start   (GtkBuildable     *buildable,
-                                                                GtkBuilder       *builder,
-                                                                GObject          *child,
-                                                                const gchar      *tagname,
-                                                                GMarkupParser    *parser,
-                                                                gpointer         *data);
-
-static void     gtk_combo_box_text_buildable_custom_finished    (GtkBuildable     *buildable,
-                                                                GtkBuilder       *builder,
-                                                                GObject          *child,
-                                                                const gchar      *tagname,
-                                                                gpointer          user_data);
+static void     gtk_combo_box_text_buildable_interface_init   (GtkBuildableIface  *iface);
+static gboolean gtk_combo_box_text_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                               GtkBuilder         *builder,
+                                                               GObject            *child,
+                                                               const gchar        *tagname,
+                                                               GtkBuildableParser *parser,
+                                                               gpointer           *data);
+
+static void     gtk_combo_box_text_buildable_custom_finished  (GtkBuildable       *buildable,
+                                                               GtkBuilder         *builder,
+                                                               GObject            *child,
+                                                               const gchar        *tagname,
+                                                               gpointer            user_data);
+
 
 static GtkBuildableIface *buildable_parent_iface = NULL;
 
@@ -184,12 +185,12 @@ typedef struct {
 } ItemParserData;
 
 static void
-item_start_element (GMarkupParseContext  *context,
-                    const gchar          *element_name,
-                    const gchar         **names,
-                    const gchar         **values,
-                    gpointer              user_data,
-                    GError              **error)
+item_start_element (GtkBuildableParseContext  *context,
+                    const gchar               *element_name,
+                    const gchar              **names,
+                    const gchar              **values,
+                    gpointer                   user_data,
+                    GError                   **error)
 {
   ItemParserData *data = (ItemParserData*)user_data;
 
@@ -237,11 +238,11 @@ item_start_element (GMarkupParseContext  *context,
 }
 
 static void
-item_text (GMarkupParseContext  *context,
-           const gchar          *text,
-           gsize                 text_len,
-           gpointer              user_data,
-           GError              **error)
+item_text (GtkBuildableParseContext  *context,
+           const gchar               *text,
+           gsize                      text_len,
+           gpointer                   user_data,
+           GError                   **error)
 {
   ItemParserData *data = (ItemParserData*)user_data;
 
@@ -250,10 +251,10 @@ item_text (GMarkupParseContext  *context,
 }
 
 static void
-item_end_element (GMarkupParseContext  *context,
-                  const gchar          *element_name,
-                  gpointer              user_data,
-                  GError              **error)
+item_end_element (GtkBuildableParseContext  *context,
+                  const gchar               *element_name,
+                  gpointer                   user_data,
+                  GError                   **error)
 {
   ItemParserData *data = (ItemParserData*)user_data;
 
@@ -280,7 +281,7 @@ item_end_element (GMarkupParseContext  *context,
   data->is_text = FALSE;
 }
 
-static const GMarkupParser item_parser =
+static const GtkBuildableParser item_parser =
   {
     item_start_element,
     item_end_element,
@@ -288,12 +289,12 @@ static const GMarkupParser item_parser =
   };
 
 static gboolean
-gtk_combo_box_text_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                               GtkBuilder    *builder,
-                                               GObject       *child,
-                                               const gchar   *tagname,
-                                               GMarkupParser *parser,
-                                               gpointer      *parser_data)
+gtk_combo_box_text_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                               GtkBuilder         *builder,
+                                               GObject            *child,
+                                               const gchar        *tagname,
+                                               GtkBuildableParser *parser,
+                                               gpointer           *parser_data)
 {
   if (buildable_parent_iface->custom_tag_start (buildable, builder, child,
                                                tagname, parser, parser_data))
diff --git a/gtk/gtkconstraintlayout.c b/gtk/gtkconstraintlayout.c
index f23237e0d8..497d748d72 100644
--- a/gtk/gtkconstraintlayout.c
+++ b/gtk/gtkconstraintlayout.c
@@ -1458,12 +1458,12 @@ guide_data_to_guide (const GuideData *data,
 }
 
 static void
-constraints_start_element (GMarkupParseContext  *context,
-                           const char           *element_name,
-                           const char          **attr_names,
-                           const char          **attr_values,
-                           gpointer              user_data,
-                           GError              **error)
+constraints_start_element (GtkBuildableParseContext  *context,
+                           const char                *element_name,
+                           const char               **attr_names,
+                           const char               **attr_values,
+                           gpointer                   user_data,
+                           GError                   **error)
 {
   ConstraintsParserData *data = user_data;
 
@@ -1563,26 +1563,26 @@ constraints_start_element (GMarkupParseContext  *context,
 }
 
 static void
-constraints_end_element (GMarkupParseContext  *context,
-                         const char           *element_name,
-                         gpointer              user_data,
-                         GError              **error)
+constraints_end_element (GtkBuildableParseContext  *context,
+                         const char                *element_name,
+                         gpointer                   user_data,
+                         GError                   **error)
 {
 }
 
-static const GMarkupParser constraints_parser = {
+static const GtkBuildableParser constraints_parser = {
   constraints_start_element,
   constraints_end_element,
   NULL,
 };
 
 static gboolean
-gtk_constraint_layout_custom_tag_start (GtkBuildable  *buildable,
-                                        GtkBuilder    *builder,
-                                        GObject       *child,
-                                        const char    *element_name,
-                                        GMarkupParser *parser,
-                                        gpointer      *parser_data)
+gtk_constraint_layout_custom_tag_start (GtkBuildable       *buildable,
+                                        GtkBuilder         *builder,
+                                        GObject            *child,
+                                        const char         *element_name,
+                                        GtkBuildableParser *parser,
+                                        gpointer           *parser_data)
 {
   if (strcmp (element_name, "constraints") == 0)
     {
diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c
index 8b0e7faf44..f064cb5d40 100644
--- a/gtk/gtkdialog.c
+++ b/gtk/gtkdialog.c
@@ -198,22 +198,22 @@ static void      gtk_dialog_close                (GtkDialog    *dialog);
 static ResponseData * get_response_data          (GtkWidget    *widget,
                                                   gboolean      create);
 
-static void      gtk_dialog_buildable_interface_init     (GtkBuildableIface *iface);
-static gboolean  gtk_dialog_buildable_custom_tag_start   (GtkBuildable  *buildable,
-                                                          GtkBuilder    *builder,
-                                                          GObject       *child,
-                                                          const gchar   *tagname,
-                                                          GMarkupParser *parser,
-                                                          gpointer      *data);
-static void      gtk_dialog_buildable_custom_finished    (GtkBuildable  *buildable,
-                                                          GtkBuilder    *builder,
-                                                          GObject       *child,
-                                                          const gchar   *tagname,
-                                                          gpointer       user_data);
-static void      gtk_dialog_buildable_add_child          (GtkBuildable  *buildable,
-                                                          GtkBuilder    *builder,
-                                                          GObject       *child,
-                                                          const gchar   *type);
+static void     gtk_dialog_buildable_interface_init   (GtkBuildableIface  *iface);
+static gboolean gtk_dialog_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                       GtkBuilder         *builder,
+                                                       GObject            *child,
+                                                       const gchar        *tagname,
+                                                       GtkBuildableParser *parser,
+                                                       gpointer           *data);
+static void     gtk_dialog_buildable_custom_finished  (GtkBuildable       *buildable,
+                                                       GtkBuilder         *builder,
+                                                       GObject            *child,
+                                                       const gchar        *tagname,
+                                                       gpointer            user_data);
+static void     gtk_dialog_buildable_add_child        (GtkBuildable       *buildable,
+                                                       GtkBuilder         *builder,
+                                                       GObject            *child,
+                                                       const gchar        *type);
 
 
 enum {
@@ -1317,12 +1317,12 @@ free_action_widget_info (gpointer data)
 }
 
 static void
-parser_start_element (GMarkupParseContext *context,
-                      const gchar         *element_name,
-                      const gchar        **names,
-                      const gchar        **values,
-                      gpointer             user_data,
-                      GError             **error)
+parser_start_element (GtkBuildableParseContext *context,
+                      const gchar              *element_name,
+                      const gchar             **names,
+                      const gchar             **values,
+                      gpointer                  user_data,
+                      GError                  **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -1354,7 +1354,7 @@ parser_start_element (GMarkupParseContext *context,
       data->is_default = is_default;
       data->is_text = TRUE;
       g_string_set_size (data->string, 0);
-      g_markup_parse_context_get_position (context, &data->line, &data->col);
+      gtk_buildable_parse_context_get_position (context, &data->line, &data->col);
     }
   else if (strcmp (element_name, "action-widgets") == 0)
     {
@@ -1377,11 +1377,11 @@ parser_start_element (GMarkupParseContext *context,
 }
 
 static void
-parser_text_element (GMarkupParseContext *context,
-                     const gchar         *text,
-                     gsize                text_len,
-                     gpointer             user_data,
-                     GError             **error)
+parser_text_element (GtkBuildableParseContext *context,
+                     const gchar              *text,
+                     gsize                     text_len,
+                     gpointer                  user_data,
+                     GError                  **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -1390,10 +1390,10 @@ parser_text_element (GMarkupParseContext *context,
 }
 
 static void
-parser_end_element (GMarkupParseContext  *context,
-                    const gchar          *element_name,
-                    gpointer              user_data,
-                    GError              **error)
+parser_end_element (GtkBuildableParseContext  *context,
+                    const gchar               *element_name,
+                    gpointer                   user_data,
+                    GError                   **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -1414,7 +1414,7 @@ parser_end_element (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser sub_parser =
+static const GtkBuildableParser sub_parser =
   {
     parser_start_element,
     parser_end_element,
@@ -1422,12 +1422,12 @@ static const GMarkupParser sub_parser =
   };
 
 static gboolean
-gtk_dialog_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                       GtkBuilder    *builder,
-                                       GObject       *child,
-                                       const gchar   *tagname,
-                                       GMarkupParser *parser,
-                                       gpointer      *parser_data)
+gtk_dialog_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                       GtkBuilder         *builder,
+                                       GObject            *child,
+                                       const gchar        *tagname,
+                                       GtkBuildableParser *parser,
+                                       gpointer           *parser_data)
 {
   SubParserData *data;
 
diff --git a/gtk/gtkfilefilter.c b/gtk/gtkfilefilter.c
index b7a038e17c..7938b4cdef 100644
--- a/gtk/gtkfilefilter.c
+++ b/gtk/gtkfilefilter.c
@@ -122,23 +122,23 @@ struct _FilterRule
 static void gtk_file_filter_finalize   (GObject            *object);
 
 
-static void     gtk_file_filter_buildable_init                 (GtkBuildableIface *iface);
-static void     gtk_file_filter_buildable_set_name             (GtkBuildable *buildable,
-                                                                const gchar  *name);
-static const gchar* gtk_file_filter_buildable_get_name         (GtkBuildable *buildable);
-
-
-static gboolean gtk_file_filter_buildable_custom_tag_start     (GtkBuildable  *buildable,
-                                                               GtkBuilder    *builder,
-                                                               GObject       *child,
-                                                               const gchar   *tagname,
-                                                               GMarkupParser *parser,
-                                                               gpointer      *data);
-static void     gtk_file_filter_buildable_custom_tag_end       (GtkBuildable  *buildable,
-                                                               GtkBuilder    *builder,
-                                                               GObject       *child,
-                                                               const gchar   *tagname,
-                                                               gpointer       data);
+static void         gtk_file_filter_buildable_init             (GtkBuildableIface  *iface);
+static void         gtk_file_filter_buildable_set_name         (GtkBuildable       *buildable,
+                                                                const gchar        *name);
+static const gchar* gtk_file_filter_buildable_get_name         (GtkBuildable       *buildable);
+
+static gboolean     gtk_file_filter_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                                GtkBuilder         *builder,
+                                                                GObject            *child,
+                                                                const gchar        *tagname,
+                                                                GtkBuildableParser *parser,
+                                                                gpointer           *data);
+static void         gtk_file_filter_buildable_custom_tag_end   (GtkBuildable       *buildable,
+                                                                GtkBuilder         *builder,
+                                                                GObject            *child,
+                                                                const gchar        *tagname,
+                                                                gpointer            data);
+
 
 G_DEFINE_TYPE_WITH_CODE (GtkFileFilter, gtk_file_filter, G_TYPE_INITIALLY_UNOWNED,
                          G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE,
@@ -233,12 +233,12 @@ typedef struct {
 } SubParserData;
 
 static void
-parser_start_element (GMarkupParseContext  *context,
-                      const gchar          *element_name,
-                      const gchar         **names,
-                      const gchar         **values,
-                      gpointer              user_data,
-                      GError              **error)
+parser_start_element (GtkBuildableParseContext  *context,
+                      const gchar               *element_name,
+                      const gchar              **names,
+                      const gchar              **values,
+                      gpointer                   user_data,
+                      GError                   **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -279,11 +279,11 @@ parser_start_element (GMarkupParseContext  *context,
 }
 
 static void
-parser_text_element (GMarkupParseContext *context,
-                     const gchar         *text,
-                     gsize                text_len,
-                     gpointer             user_data,
-                     GError             **error)
+parser_text_element (GtkBuildableParseContext *context,
+                     const gchar              *text,
+                     gsize                     text_len,
+                     gpointer                  user_data,
+                     GError                  **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -292,10 +292,10 @@ parser_text_element (GMarkupParseContext *context,
 }
 
 static void
-parser_end_element (GMarkupParseContext *context,
-                    const gchar         *element_name,
-                    gpointer             user_data,
-                    GError             **error)
+parser_end_element (GtkBuildableParseContext *context,
+                    const gchar              *element_name,
+                    gpointer                  user_data,
+                    GError                  **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -318,7 +318,7 @@ parser_end_element (GMarkupParseContext *context,
   data->parsing = FALSE;
 }
 
-static const GMarkupParser sub_parser =
+static const GtkBuildableParser sub_parser =
   {
     parser_start_element,
     parser_end_element,
@@ -326,12 +326,12 @@ static const GMarkupParser sub_parser =
   };
 
 static gboolean
-gtk_file_filter_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                            GtkBuilder    *builder,
-                                            GObject       *child,
-                                            const gchar   *tagname,
-                                            GMarkupParser *parser,
-                                            gpointer      *parser_data)
+gtk_file_filter_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                            GtkBuilder         *builder,
+                                            GObject            *child,
+                                            const gchar        *tagname,
+                                            GtkBuildableParser *parser,
+                                            gpointer           *parser_data)
 {
   SubParserData *data = NULL;
 
diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c
index bc18d9218d..8c5962d1fa 100644
--- a/gtk/gtkiconview.c
+++ b/gtk/gtkiconview.c
@@ -312,18 +312,19 @@ static void     remove_scroll_timeout            (GtkIconView *icon_view);
 
 /* GtkBuildable */
 static GtkBuildableIface *parent_buildable_iface;
-static void     gtk_icon_view_buildable_init             (GtkBuildableIface *iface);
-static gboolean gtk_icon_view_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                                         GtkBuilder    *builder,
-                                                         GObject       *child,
-                                                         const gchar   *tagname,
-                                                         GMarkupParser *parser,
-                                                         gpointer      *data);
-static void     gtk_icon_view_buildable_custom_tag_end   (GtkBuildable  *buildable,
-                                                         GtkBuilder    *builder,
-                                                         GObject       *child,
-                                                         const gchar   *tagname,
-                                                         gpointer       data);
+static void     gtk_icon_view_buildable_init             (GtkBuildableIface  *iface);
+static gboolean gtk_icon_view_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                          GtkBuilder         *builder,
+                                                          GObject            *child,
+                                                          const gchar        *tagname,
+                                                          GtkBuildableParser *parser,
+                                                          gpointer           *data);
+static void     gtk_icon_view_buildable_custom_tag_end   (GtkBuildable       *buildable,
+                                                          GtkBuilder         *builder,
+                                                          GObject            *child,
+                                                          const gchar        *tagname,
+                                                          gpointer            data);
+
 
 static guint icon_view_signals[LAST_SIGNAL] = { 0 };
 
@@ -6856,12 +6857,12 @@ gtk_icon_view_get_activate_on_single_click (GtkIconView *icon_view)
 }
 
 static gboolean
-gtk_icon_view_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                          GtkBuilder    *builder,
-                                          GObject       *child,
-                                          const gchar   *tagname,
-                                          GMarkupParser *parser,
-                                          gpointer      *data)
+gtk_icon_view_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                          GtkBuilder         *builder,
+                                          GObject            *child,
+                                          const gchar        *tagname,
+                                          GtkBuildableParser *parser,
+                                          gpointer           *data)
 {
   if (parent_buildable_iface->custom_tag_start (buildable, builder, child,
                                                 tagname, parser, data))
diff --git a/gtk/gtkinfobar.c b/gtk/gtkinfobar.c
index 2b6747c752..cee8a6c1d9 100644
--- a/gtk/gtkinfobar.c
+++ b/gtk/gtkinfobar.c
@@ -189,22 +189,22 @@ static void     gtk_info_bar_get_property (GObject        *object,
                                            guint           prop_id,
                                            GValue         *value,
                                            GParamSpec     *pspec);
-static void     gtk_info_bar_buildable_interface_init     (GtkBuildableIface *iface);
-static gboolean  gtk_info_bar_buildable_custom_tag_start   (GtkBuildable  *buildable,
-                                                            GtkBuilder    *builder,
-                                                            GObject       *child,
-                                                            const gchar   *tagname,
-                                                            GMarkupParser *parser,
-                                                            gpointer      *data);
-static void      gtk_info_bar_buildable_custom_finished    (GtkBuildable  *buildable,
-                                                            GtkBuilder    *builder,
-                                                            GObject       *child,
-                                                            const gchar   *tagname,
-                                                            gpointer       user_data);
-static void      gtk_info_bar_buildable_add_child          (GtkBuildable *buildable,
-                                                            GtkBuilder   *builder,
-                                                            GObject      *child,
-                                                            const char   *type);
+static void     gtk_info_bar_buildable_interface_init   (GtkBuildableIface  *iface);
+static gboolean gtk_info_bar_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                         GtkBuilder         *builder,
+                                                         GObject            *child,
+                                                         const gchar        *tagname,
+                                                         GtkBuildableParser *parser,
+                                                         gpointer           *data);
+static void     gtk_info_bar_buildable_custom_finished  (GtkBuildable       *buildable,
+                                                         GtkBuilder         *builder,
+                                                         GObject            *child,
+                                                         const gchar        *tagname,
+                                                         gpointer            user_data);
+static void      gtk_info_bar_buildable_add_child       (GtkBuildable *buildable,
+                                                         GtkBuilder   *builder,
+                                                         GObject      *child,
+                                                         const char   *type);
 
 
 
@@ -874,12 +874,12 @@ action_widget_info_free (gpointer data)
 }
 
 static void
-parser_start_element (GMarkupParseContext  *context,
-                      const gchar          *element_name,
-                      const gchar         **names,
-                      const gchar         **values,
-                      gpointer              user_data,
-                      GError              **error)
+parser_start_element (GtkBuildableParseContext  *context,
+                      const gchar               *element_name,
+                      const gchar              **names,
+                      const gchar              **values,
+                      gpointer                   user_data,
+                      GError                   **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -908,7 +908,7 @@ parser_start_element (GMarkupParseContext  *context,
       data->response_id = g_value_get_enum (&gvalue);
       data->is_text = TRUE;
       g_string_set_size (data->string, 0);
-      g_markup_parse_context_get_position (context, &data->line, &data->col);
+      gtk_buildable_parse_context_get_position (context, &data->line, &data->col);
     }
   else if (strcmp (element_name, "action-widgets") == 0)
     {
@@ -929,11 +929,11 @@ parser_start_element (GMarkupParseContext  *context,
 }
 
 static void
-parser_text_element (GMarkupParseContext  *context,
-                     const gchar          *text,
-                     gsize                 text_len,
-                     gpointer              user_data,
-                     GError              **error)
+parser_text_element (GtkBuildableParseContext  *context,
+                     const gchar               *text,
+                     gsize                      text_len,
+                     gpointer                   user_data,
+                     GError                   **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -942,10 +942,10 @@ parser_text_element (GMarkupParseContext  *context,
 }
 
 static void
-parser_end_element (GMarkupParseContext  *context,
-                    const gchar          *element_name,
-                    gpointer              user_data,
-                    GError              **error)
+parser_end_element (GtkBuildableParseContext  *context,
+                    const gchar               *element_name,
+                    gpointer                   user_data,
+                    GError                   **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -964,7 +964,7 @@ parser_end_element (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser sub_parser =
+static const GtkBuildableParser sub_parser =
 {
   parser_start_element,
   parser_end_element,
@@ -972,12 +972,12 @@ static const GMarkupParser sub_parser =
 };
 
 gboolean
-gtk_info_bar_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                         GtkBuilder    *builder,
-                                         GObject       *child,
-                                         const gchar   *tagname,
-                                         GMarkupParser *parser,
-                                         gpointer      *parser_data)
+gtk_info_bar_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                         GtkBuilder         *builder,
+                                         GObject            *child,
+                                         const gchar        *tagname,
+                                         GtkBuildableParser *parser,
+                                         gpointer           *parser_data)
 {
   SubParserData *data;
 
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index 0f97f3feba..b9e444c2fb 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -511,19 +511,20 @@ static void     gtk_label_drag_data_get     (GtkWidget         *widget,
                                             GdkDrag           *drag,
                                             GtkSelectionData  *selection_data);
 
-static void     gtk_label_buildable_interface_init     (GtkBuildableIface *iface);
-static gboolean gtk_label_buildable_custom_tag_start   (GtkBuildable     *buildable,
-                                                       GtkBuilder       *builder,
-                                                       GObject          *child,
-                                                       const gchar      *tagname,
-                                                       GMarkupParser    *parser,
-                                                       gpointer         *data);
+static void     gtk_label_buildable_interface_init   (GtkBuildableIface  *iface);
+static gboolean gtk_label_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                      GtkBuilder         *builder,
+                                                      GObject            *child,
+                                                      const gchar        *tagname,
+                                                      GtkBuildableParser *parser,
+                                                      gpointer           *data);
+
+static void     gtk_label_buildable_custom_finished  (GtkBuildable       *buildable,
+                                                      GtkBuilder         *builder,
+                                                      GObject            *child,
+                                                      const gchar        *tagname,
+                                                      gpointer            user_data);
 
-static void     gtk_label_buildable_custom_finished    (GtkBuildable     *buildable,
-                                                       GtkBuilder       *builder,
-                                                       GObject          *child,
-                                                       const gchar      *tagname,
-                                                       gpointer          user_data);
 
 
 static void connect_mnemonics_visible_notify    (GtkLabel   *label);
@@ -1565,12 +1566,12 @@ attribute_from_text (GtkBuilder   *builder,
 
 
 static void
-pango_start_element (GMarkupParseContext *context,
-                    const gchar         *element_name,
-                    const gchar        **names,
-                    const gchar        **values,
-                    gpointer             user_data,
-                    GError             **error)
+pango_start_element (GtkBuildableParseContext *context,
+                     const gchar              *element_name,
+                     const gchar             **names,
+                     const gchar             **values,
+                     gpointer                  user_data,
+                     GError                  **error)
 {
   PangoParserData *data = (PangoParserData*)user_data;
 
@@ -1654,18 +1655,18 @@ pango_start_element (GMarkupParseContext *context,
     }
 }
 
-static const GMarkupParser pango_parser =
+static const GtkBuildableParser pango_parser =
   {
     pango_start_element,
   };
 
 static gboolean
-gtk_label_buildable_custom_tag_start (GtkBuildable     *buildable,
-                                     GtkBuilder       *builder,
-                                     GObject          *child,
-                                     const gchar      *tagname,
-                                     GMarkupParser    *parser,
-                                     gpointer         *data)
+gtk_label_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                      GtkBuilder         *builder,
+                                      GObject            *child,
+                                      const gchar        *tagname,
+                                      GtkBuildableParser *parser,
+                                      gpointer           *data)
 {
   if (buildable_parent_iface->custom_tag_start (buildable, builder, child,
                                                tagname, parser, data))
diff --git a/gtk/gtklevelbar.c b/gtk/gtklevelbar.c
index ceab78a36c..08d0ee50d8 100644
--- a/gtk/gtklevelbar.c
+++ b/gtk/gtklevelbar.c
@@ -728,12 +728,12 @@ typedef struct {
 } OffsetsParserData;
 
 static void
-offset_start_element (GMarkupParseContext  *context,
-                      const gchar          *element_name,
-                      const gchar         **names,
-                      const gchar         **values,
-                      gpointer              user_data,
-                      GError              **error)
+offset_start_element (GtkBuildableParseContext *context,
+                      const gchar              *element_name,
+                      const gchar             **names,
+                      const gchar             **values,
+                      gpointer                  user_data,
+                      GError                  **error)
 {
   OffsetsParserData *data = user_data;
 
@@ -783,18 +783,18 @@ offset_start_element (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser offset_parser =
+static const GtkBuildableParser offset_parser =
 {
   offset_start_element
 };
 
 static gboolean
-gtk_level_bar_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                          GtkBuilder    *builder,
-                                          GObject       *child,
-                                          const gchar   *tagname,
-                                          GMarkupParser *parser,
-                                          gpointer      *parser_data)
+gtk_level_bar_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                          GtkBuilder         *builder,
+                                          GObject            *child,
+                                          const gchar        *tagname,
+                                          GtkBuildableParser *parser,
+                                          gpointer           *parser_data)
 {
   OffsetsParserData *data;
 
diff --git a/gtk/gtkliststore.c b/gtk/gtkliststore.c
index 6c4d0de601..4e7ff1164d 100644
--- a/gtk/gtkliststore.c
+++ b/gtk/gtkliststore.c
@@ -283,17 +283,17 @@ static gboolean gtk_list_store_has_default_sort_func (GtkTreeSortable        *so
 
 
 /* buildable */
-static gboolean gtk_list_store_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                                          GtkBuilder    *builder,
-                                                          GObject       *child,
-                                                          const gchar   *tagname,
-                                                          GMarkupParser *parser,
-                                                          gpointer      *data);
-static void     gtk_list_store_buildable_custom_tag_end (GtkBuildable *buildable,
-                                                        GtkBuilder   *builder,
-                                                        GObject      *child,
-                                                        const gchar  *tagname,
-                                                        gpointer      data);
+static gboolean gtk_list_store_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                           GtkBuilder         *builder,
+                                                           GObject            *child,
+                                                           const gchar        *tagname,
+                                                           GtkBuildableParser *parser,
+                                                           gpointer           *data);
+static void     gtk_list_store_buildable_custom_tag_end   (GtkBuildable       *buildable,
+                                                           GtkBuilder         *builder,
+                                                           GObject            *child,
+                                                           const gchar        *tagname,
+                                                           gpointer            data);
 
 G_DEFINE_TYPE_WITH_CODE (GtkListStore, gtk_list_store, G_TYPE_OBJECT,
                          G_ADD_PRIVATE (GtkListStore)
@@ -2336,12 +2336,12 @@ typedef struct {
 } SubParserData;
 
 static void
-list_store_start_element (GMarkupParseContext  *context,
-                          const gchar          *element_name,
-                          const gchar         **names,
-                          const gchar         **values,
-                          gpointer              user_data,
-                          GError              **error)
+list_store_start_element (GtkBuildableParseContext *context,
+                          const gchar              *element_name,
+                          const gchar             **names,
+                          const gchar             **values,
+                          gpointer                  user_data,
+                          GError                  **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -2450,10 +2450,10 @@ list_store_start_element (GMarkupParseContext  *context,
 }
 
 static void
-list_store_end_element (GMarkupParseContext  *context,
-                        const gchar          *element_name,
-                        gpointer              user_data,
-                        GError              **error)
+list_store_end_element (GtkBuildableParseContext  *context,
+                        const gchar               *element_name,
+                        gpointer                   user_data,
+                        GError                   **error)
 {
   SubParserData *data = (SubParserData*)user_data;
 
@@ -2519,11 +2519,11 @@ list_store_end_element (GMarkupParseContext  *context,
 }
 
 static void
-list_store_text (GMarkupParseContext  *context,
-                 const gchar          *text,
-                 gsize                 text_len,
-                 gpointer              user_data,
-                 GError              **error)
+list_store_text (GtkBuildableParseContext  *context,
+                 const gchar               *text,
+                 gsize                      text_len,
+                 gpointer                   user_data,
+                 GError                   **error)
 {
   SubParserData *data = (SubParserData*)user_data;
   gint i;
@@ -2563,7 +2563,7 @@ list_store_text (GMarkupParseContext  *context,
   g_free (string);
 }
 
-static const GMarkupParser list_store_parser =
+static const GtkBuildableParser list_store_parser =
   {
     list_store_start_element,
     list_store_end_element,
@@ -2571,12 +2571,12 @@ static const GMarkupParser list_store_parser =
   };
 
 static gboolean
-gtk_list_store_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder,
-                                           GObject       *child,
-                                           const gchar   *tagname,
-                                           GMarkupParser *parser,
-                                           gpointer      *parser_data)
+gtk_list_store_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                           GtkBuilder         *builder,
+                                           GObject            *child,
+                                           const gchar        *tagname,
+                                           GtkBuildableParser *parser,
+                                           gpointer           *parser_data)
 {
   SubParserData *data;
 
diff --git a/gtk/gtkscale.c b/gtk/gtkscale.c
index 1549f21370..4d434ff968 100644
--- a/gtk/gtkscale.c
+++ b/gtk/gtkscale.c
@@ -202,20 +202,20 @@ static void     gtk_scale_snapshot                (GtkWidget      *widget,
 static void     gtk_scale_real_get_layout_offsets (GtkScale       *scale,
                                                    gint           *x,
                                                    gint           *y);
-static void     gtk_scale_buildable_interface_init   (GtkBuildableIface *iface);
-static gboolean gtk_scale_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                                      GtkBuilder    *builder,
-                                                      GObject       *child,
-                                                      const gchar   *tagname,
-                                                      GMarkupParser *parser,
-                                                      gpointer      *data);
-static void     gtk_scale_buildable_custom_finished  (GtkBuildable  *buildable,
-                                                      GtkBuilder    *builder,
-                                                      GObject       *child,
-                                                      const gchar   *tagname,
-                                                      gpointer       user_data);
-static gchar  * gtk_scale_format_value               (GtkScale      *scale,
-                                                      gdouble        value);
+static void     gtk_scale_buildable_interface_init   (GtkBuildableIface  *iface);
+static gboolean gtk_scale_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                      GtkBuilder         *builder,
+                                                      GObject            *child,
+                                                      const gchar        *tagname,
+                                                      GtkBuildableParser *parser,
+                                                      gpointer           *data);
+static void     gtk_scale_buildable_custom_finished  (GtkBuildable       *buildable,
+                                                      GtkBuilder         *builder,
+                                                      GObject            *child,
+                                                      const gchar        *tagname,
+                                                      gpointer            user_data);
+static gchar  * gtk_scale_format_value               (GtkScale           *scale,
+                                                      gdouble             value);
 
 
 G_DEFINE_TYPE_WITH_CODE (GtkScale, gtk_scale, GTK_TYPE_RANGE,
@@ -1854,12 +1854,12 @@ mark_data_free (MarkData *data)
 }
 
 static void
-marks_start_element (GMarkupParseContext *context,
-                     const gchar         *element_name,
-                     const gchar        **names,
-                     const gchar        **values,
-                     gpointer             user_data,
-                     GError             **error)
+marks_start_element (GtkBuildableParseContext *context,
+                     const gchar              *element_name,
+                     const gchar             **names,
+                     const gchar             **values,
+                     gpointer                  user_data,
+                     GError                  **error)
 {
   MarksSubparserData *data = (MarksSubparserData*)user_data;
 
@@ -1945,15 +1945,15 @@ marks_start_element (GMarkupParseContext *context,
 }
 
 static void
-marks_text (GMarkupParseContext  *context,
-            const gchar          *text,
-            gsize                 text_len,
-            gpointer              user_data,
-            GError              **error)
+marks_text (GtkBuildableParseContext  *context,
+            const gchar               *text,
+            gsize                      text_len,
+            gpointer                   user_data,
+            GError                   **error)
 {
   MarksSubparserData *data = (MarksSubparserData*)user_data;
 
-  if (strcmp (g_markup_parse_context_get_element (context), "mark") == 0)
+  if (strcmp (gtk_buildable_parse_context_get_element (context), "mark") == 0)
     {
       MarkData *mark = data->marks->data;
 
@@ -1961,7 +1961,7 @@ marks_text (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser marks_parser =
+static const GtkBuildableParser marks_parser =
   {
     marks_start_element,
     NULL,
@@ -1970,12 +1970,12 @@ static const GMarkupParser marks_parser =
 
 
 static gboolean
-gtk_scale_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                      GtkBuilder    *builder,
-                                      GObject       *child,
-                                      const gchar   *tagname,
-                                      GMarkupParser *parser,
-                                      gpointer      *parser_data)
+gtk_scale_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                      GtkBuilder         *builder,
+                                      GObject            *child,
+                                      const gchar        *tagname,
+                                      GtkBuildableParser *parser,
+                                      gpointer           *parser_data)
 {
   MarksSubparserData *data;
 
diff --git a/gtk/gtksizegroup.c b/gtk/gtksizegroup.c
index 84dbe46e77..2be53f5214 100644
--- a/gtk/gtksizegroup.c
+++ b/gtk/gtksizegroup.c
@@ -132,18 +132,18 @@ static void gtk_size_group_get_property (GObject      *object,
                                         GParamSpec   *pspec);
 
 /* GtkBuildable */
-static void gtk_size_group_buildable_init (GtkBuildableIface *iface);
-static gboolean gtk_size_group_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                                          GtkBuilder    *builder,
-                                                          GObject       *child,
-                                                          const gchar   *tagname,
-                                                          GMarkupParser *parser,
-                                                          gpointer      *data);
-static void gtk_size_group_buildable_custom_finished (GtkBuildable  *buildable,
-                                                     GtkBuilder    *builder,
-                                                     GObject       *child,
-                                                     const gchar   *tagname,
-                                                     gpointer       user_data);
+static void     gtk_size_group_buildable_init             (GtkBuildableIface  *iface);
+static gboolean gtk_size_group_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                           GtkBuilder         *builder,
+                                                           GObject            *child,
+                                                           const gchar        *tagname,
+                                                           GtkBuildableParser *parser,
+                                                           gpointer           *data);
+static void     gtk_size_group_buildable_custom_finished  (GtkBuildable       *buildable,
+                                                           GtkBuilder         *builder,
+                                                           GObject            *child,
+                                                           const gchar        *tagname,
+                                                           gpointer            user_data);
 
 G_STATIC_ASSERT (GTK_SIZE_GROUP_HORIZONTAL == (1 << GTK_ORIENTATION_HORIZONTAL));
 G_STATIC_ASSERT (GTK_SIZE_GROUP_VERTICAL == (1 << GTK_ORIENTATION_VERTICAL));
@@ -462,12 +462,12 @@ typedef struct {
 } GSListSubParserData;
 
 static void
-size_group_start_element (GMarkupParseContext  *context,
-                          const gchar          *element_name,
-                          const gchar         **names,
-                          const gchar         **values,
-                          gpointer              user_data,
-                          GError              **error)
+size_group_start_element (GtkBuildableParseContext  *context,
+                          const gchar               *element_name,
+                          const gchar              **names,
+                          const gchar              **values,
+                          gpointer                   user_data,
+                          GError                   **error)
 {
   GSListSubParserData *data = (GSListSubParserData*)user_data;
 
@@ -489,7 +489,7 @@ size_group_start_element (GMarkupParseContext  *context,
 
       item_data = g_new (ItemData, 1);
       item_data->name = g_strdup (name);
-      g_markup_parse_context_get_position (context, &item_data->line, &item_data->col);
+      gtk_buildable_parse_context_get_position (context, &item_data->line, &item_data->col);
       data->items = g_slist_prepend (data->items, item_data);
     }
   else if (strcmp (element_name, "widgets") == 0)
@@ -510,18 +510,18 @@ size_group_start_element (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser size_group_parser =
+static const GtkBuildableParser size_group_parser =
   {
     size_group_start_element
   };
 
 static gboolean
-gtk_size_group_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder,
-                                           GObject       *child,
-                                           const gchar   *tagname,
-                                           GMarkupParser *parser,
-                                           gpointer      *parser_data)
+gtk_size_group_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                           GtkBuilder         *builder,
+                                           GObject            *child,
+                                           const gchar        *tagname,
+                                           GtkBuildableParser *parser,
+                                           gpointer           *parser_data)
 {
   GSListSubParserData *data;
 
diff --git a/gtk/gtktreestore.c b/gtk/gtktreestore.c
index 4da0576532..20d5dafbca 100644
--- a/gtk/gtktreestore.c
+++ b/gtk/gtktreestore.c
@@ -172,17 +172,17 @@ static gboolean gtk_tree_store_has_default_sort_func   (GtkTreeSortable        *
 
 /* buildable */
 
-static gboolean gtk_tree_store_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                                          GtkBuilder    *builder,
-                                                          GObject       *child,
-                                                          const gchar   *tagname,
-                                                          GMarkupParser *parser,
-                                                          gpointer      *data);
-static void     gtk_tree_store_buildable_custom_finished (GtkBuildable          *buildable,
-                                                         GtkBuilder     *builder,
-                                                         GObject        *child,
-                                                         const gchar    *tagname,
-                                                         gpointer        user_data);
+static gboolean gtk_tree_store_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                                           GtkBuilder         *builder,
+                                                           GObject            *child,
+                                                           const gchar        *tagname,
+                                                           GtkBuildableParser *parser,
+                                                           gpointer           *data);
+static void     gtk_tree_store_buildable_custom_finished  (GtkBuildable       *buildable,
+                                                           GtkBuilder         *builder,
+                                                           GObject            *child,
+                                                           const gchar        *tagname,
+                                                           gpointer            user_data);
 
 static void     validate_gnode                         (GNode *node);
 
@@ -3327,12 +3327,12 @@ typedef struct {
 } GSListSubParserData;
 
 static void
-tree_model_start_element (GMarkupParseContext  *context,
-                          const gchar          *element_name,
-                          const gchar         **names,
-                          const gchar         **values,
-                          gpointer              user_data,
-                          GError              **error)
+tree_model_start_element (GtkBuildableParseContext  *context,
+                          const gchar               *element_name,
+                          const gchar              **names,
+                          const gchar              **values,
+                          gpointer                   user_data,
+                          GError                   **error)
 {
   GSListSubParserData *data = (GSListSubParserData*)user_data;
 
@@ -3373,10 +3373,10 @@ tree_model_start_element (GMarkupParseContext  *context,
 }
 
 static void
-tree_model_end_element (GMarkupParseContext  *context,
-                        const gchar          *element_name,
-                        gpointer              user_data,
-                        GError              **error)
+tree_model_end_element (GtkBuildableParseContext  *context,
+                        const gchar               *element_name,
+                        gpointer                   user_data,
+                        GError                   **error)
 {
   GSListSubParserData *data = (GSListSubParserData*)user_data;
 
@@ -3414,7 +3414,7 @@ tree_model_end_element (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser tree_model_parser =
+static const GtkBuildableParser tree_model_parser =
   {
     tree_model_start_element,
     tree_model_end_element
@@ -3422,12 +3422,12 @@ static const GMarkupParser tree_model_parser =
 
 
 static gboolean
-gtk_tree_store_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                           GtkBuilder    *builder,
-                                           GObject       *child,
-                                           const gchar   *tagname,
-                                           GMarkupParser *parser,
-                                           gpointer      *parser_data)
+gtk_tree_store_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                           GtkBuilder         *builder,
+                                           GObject            *child,
+                                           const gchar        *tagname,
+                                           GtkBuildableParser *parser,
+                                           gpointer           *parser_data)
 {
   GSListSubParserData *data;
 
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 9d33ffdb66..f1111277ba 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -671,31 +671,32 @@ static AtkObject* gtk_widget_ref_accessible               (AtkImplementor *implementor);
 static gboolean         gtk_widget_real_can_activate_accel      (GtkWidget *widget,
                                                                  guint      signal_id);
 
-static void             gtk_widget_buildable_interface_init     (GtkBuildableIface *iface);
-static void             gtk_widget_buildable_set_name           (GtkBuildable     *buildable,
-                                                                 const gchar      *name);
-static const gchar *    gtk_widget_buildable_get_name           (GtkBuildable     *buildable);
-static GObject *        gtk_widget_buildable_get_internal_child (GtkBuildable *buildable,
-                                                                GtkBuilder   *builder,
-                                                                const gchar  *childname);
-static gboolean         gtk_widget_buildable_custom_tag_start   (GtkBuildable     *buildable,
-                                                                 GtkBuilder       *builder,
-                                                                 GObject          *child,
-                                                                 const gchar      *tagname,
-                                                                 GMarkupParser    *parser,
-                                                                 gpointer         *data);
-static void             gtk_widget_buildable_custom_tag_end     (GtkBuildable     *buildable,
-                                                                 GtkBuilder       *builder,
-                                                                 GObject          *child,
-                                                                 const gchar      *tagname,
-                                                                 gpointer          data);
-static void             gtk_widget_buildable_custom_finished    (GtkBuildable     *buildable,
-                                                                 GtkBuilder       *builder,
-                                                                 GObject          *child,
-                                                                 const gchar      *tagname,
-                                                                 gpointer          data);
-static void             gtk_widget_buildable_parser_finished    (GtkBuildable     *buildable,
-                                                                 GtkBuilder       *builder);
+static void             gtk_widget_buildable_interface_init     (GtkBuildableIface  *iface);
+static void             gtk_widget_buildable_set_name           (GtkBuildable       *buildable,
+                                                                 const gchar        *name);
+static const gchar *    gtk_widget_buildable_get_name           (GtkBuildable       *buildable);
+static GObject *        gtk_widget_buildable_get_internal_child (GtkBuildable       *buildable,
+                                                                 GtkBuilder         *builder,
+                                                                 const gchar        *childname);
+static gboolean         gtk_widget_buildable_custom_tag_start   (GtkBuildable       *buildable,
+                                                                 GtkBuilder         *builder,
+                                                                 GObject            *child,
+                                                                 const gchar        *tagname,
+                                                                 GtkBuildableParser *parser,
+                                                                 gpointer           *data);
+static void             gtk_widget_buildable_custom_tag_end     (GtkBuildable       *buildable,
+                                                                 GtkBuilder         *builder,
+                                                                 GObject            *child,
+                                                                 const gchar        *tagname,
+                                                                 gpointer            data);
+static void             gtk_widget_buildable_custom_finished    (GtkBuildable       *buildable,
+                                                                 GtkBuilder         *builder,
+                                                                 GObject            *child,
+                                                                 const gchar        *tagname,
+                                                                 gpointer            data);
+static void             gtk_widget_buildable_parser_finished    (GtkBuildable       *buildable,
+                                                                 GtkBuilder         *builder);
+
 
 static GtkSizeRequestMode gtk_widget_real_get_request_mode      (GtkWidget        *widget);
 
@@ -9487,12 +9488,12 @@ typedef struct
 } AccessibilitySubParserData;
 
 static void
-accessibility_start_element (GMarkupParseContext  *context,
-                             const gchar          *element_name,
-                             const gchar         **names,
-                             const gchar         **values,
-                             gpointer              user_data,
-                             GError              **error)
+accessibility_start_element (GtkBuildableParseContext  *context,
+                             const gchar               *element_name,
+                             const gchar              **names,
+                             const gchar              **values,
+                             gpointer                   user_data,
+                             GError                   **error)
 {
   AccessibilitySubParserData *data = (AccessibilitySubParserData*)user_data;
 
@@ -9621,15 +9622,15 @@ accessibility_start_element (GMarkupParseContext  *context,
 }
 
 static void
-accessibility_text (GMarkupParseContext  *context,
-                    const gchar          *text,
-                    gsize                 text_len,
-                    gpointer              user_data,
-                    GError              **error)
+accessibility_text (GtkBuildableParseContext  *context,
+                    const gchar               *text,
+                    gsize                      text_len,
+                    gpointer                   user_data,
+                    GError                   **error)
 {
   AccessibilitySubParserData *data = (AccessibilitySubParserData*)user_data;
 
-  if (strcmp (g_markup_parse_context_get_element (context), "action") == 0)
+  if (strcmp (gtk_buildable_parse_context_get_element (context), "action") == 0)
     {
       AtkActionData *action = data->actions->data;
 
@@ -9637,7 +9638,7 @@ accessibility_text (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser accessibility_parser =
+static const GtkBuildableParser accessibility_parser =
   {
     accessibility_start_element,
     NULL,
@@ -9654,12 +9655,12 @@ typedef struct
 } AccelGroupParserData;
 
 static void
-accel_group_start_element (GMarkupParseContext  *context,
-                           const gchar          *element_name,
-                           const gchar         **names,
-                           const gchar         **values,
-                           gpointer              user_data,
-                           GError              **error)
+accel_group_start_element (GtkBuildableParseContext  *context,
+                           const gchar               *element_name,
+                           const gchar              **names,
+                           const gchar              **values,
+                           gpointer                   user_data,
+                           GError                   **error)
 {
   AccelGroupParserData *data = (AccelGroupParserData*)user_data;
 
@@ -9723,7 +9724,7 @@ accel_group_start_element (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser accel_group_parser =
+static const GtkBuildableParser accel_group_parser =
   {
     accel_group_start_element,
   };
@@ -9735,12 +9736,12 @@ typedef struct
 } StyleParserData;
 
 static void
-style_start_element (GMarkupParseContext  *context,
-                     const gchar          *element_name,
-                     const gchar         **names,
-                     const gchar         **values,
-                     gpointer              user_data,
-                     GError              **error)
+style_start_element (GtkBuildableParseContext  *context,
+                     const gchar               *element_name,
+                     const gchar              **names,
+                     const gchar              **values,
+                     gpointer                   user_data,
+                     GError                   **error)
 {
   StyleParserData *data = (StyleParserData *)user_data;
 
@@ -9779,7 +9780,7 @@ style_start_element (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser style_parser =
+static const GtkBuildableParser style_parser =
   {
     style_start_element,
   };
@@ -9817,12 +9818,12 @@ layout_property_info_free (gpointer data)
 }
 
 static void
-layout_start_element (GMarkupParseContext  *context,
-                      const gchar          *element_name,
-                      const gchar         **names,
-                      const gchar         **values,
-                      gpointer              user_data,
-                      GError              **error)
+layout_start_element (GtkBuildableParseContext  *context,
+                      const gchar               *element_name,
+                      const gchar              **names,
+                      const gchar              **values,
+                      gpointer                   user_data,
+                      GError                   **error)
 {
   LayoutParserData *layout_data = user_data;
 
@@ -9873,11 +9874,11 @@ layout_start_element (GMarkupParseContext  *context,
 }
 
 static void
-layout_text (GMarkupParseContext  *context,
-             const gchar          *text,
-             gsize                 text_len,
-             gpointer              user_data,
-             GError              **error)
+layout_text (GtkBuildableParseContext  *context,
+             const gchar               *text,
+             gsize                      text_len,
+             gpointer                   user_data,
+             GError                   **error)
 {
   LayoutParserData *layout_data = user_data;
 
@@ -9886,10 +9887,10 @@ layout_text (GMarkupParseContext  *context,
 }
 
 static void
-layout_end_element (GMarkupParseContext  *context,
-                    const char           *element_name,
-                    gpointer              user_data,
-                    GError              **error)
+layout_end_element (GtkBuildableParseContext  *context,
+                    const char                *element_name,
+                    gpointer                   user_data,
+                    GError                   **error)
 {
   LayoutParserData *layout_data = user_data;
 
@@ -9915,7 +9916,7 @@ layout_end_element (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser layout_parser =
+static const GtkBuildableParser layout_parser =
   {
     layout_start_element,
     layout_end_element,
@@ -9923,12 +9924,12 @@ static const GMarkupParser layout_parser =
   };
 
 static gboolean
-gtk_widget_buildable_custom_tag_start (GtkBuildable     *buildable,
-                                       GtkBuilder       *builder,
-                                       GObject          *child,
-                                       const gchar      *tagname,
-                                       GMarkupParser    *parser,
-                                       gpointer         *parser_data)
+gtk_widget_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                       GtkBuilder         *builder,
+                                       GObject            *child,
+                                       const gchar        *tagname,
+                                       GtkBuildableParser *parser,
+                                       gpointer           *parser_data)
 {
   if (strcmp (tagname, "accelerator") == 0)
     {
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 0edbe8c858..a907d8e3b3 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -536,28 +536,28 @@ static void gtk_window_get_property (GObject         *object,
                                     GParamSpec      *pspec);
 
 /* GtkBuildable */
-static void gtk_window_buildable_interface_init  (GtkBuildableIface *iface);
-static void gtk_window_buildable_add_child (GtkBuildable *buildable,
-                                            GtkBuilder   *builder,
-                                            GObject      *child,
-                                            const gchar  *type);
-static void gtk_window_buildable_set_buildable_property (GtkBuildable        *buildable,
-                                                        GtkBuilder          *builder,
-                                                        const gchar         *name,
-                                                        const GValue        *value);
-static void gtk_window_buildable_parser_finished (GtkBuildable     *buildable,
-                                                 GtkBuilder       *builder);
-static gboolean gtk_window_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                                      GtkBuilder    *builder,
-                                                      GObject       *child,
-                                                      const gchar   *tagname,
-                                                      GMarkupParser *parser,
-                                                      gpointer      *data);
-static void gtk_window_buildable_custom_finished (GtkBuildable  *buildable,
-                                                     GtkBuilder    *builder,
-                                                     GObject       *child,
-                                                     const gchar   *tagname,
-                                                     gpointer       user_data);
+static void     gtk_window_buildable_interface_init         (GtkBuildableIface  *iface);
+static void     gtk_window_buildable_add_child              (GtkBuildable       *buildable,
+                                                             GtkBuilder         *builder,
+                                                             GObject            *child,
+                                                             const gchar        *type);
+static void     gtk_window_buildable_set_buildable_property (GtkBuildable       *buildable,
+                                                             GtkBuilder         *builder,
+                                                             const gchar        *name,
+                                                             const GValue       *value);
+static void     gtk_window_buildable_parser_finished        (GtkBuildable       *buildable,
+                                                             GtkBuilder         *builder);
+static gboolean gtk_window_buildable_custom_tag_start       (GtkBuildable       *buildable,
+                                                             GtkBuilder         *builder,
+                                                             GObject            *child,
+                                                             const gchar        *tagname,
+                                                             GtkBuildableParser *parser,
+                                                             gpointer           *data);
+static void     gtk_window_buildable_custom_finished        (GtkBuildable       *buildable,
+                                                             GtkBuilder         *builder,
+                                                             GObject            *child,
+                                                             const gchar        *tagname,
+                                                             gpointer            user_data);
 
 /* GtkRoot */
 static void             gtk_window_root_interface_init (GtkRootInterface *iface);
@@ -2219,7 +2219,7 @@ typedef struct {
 } GSListSubParserData;
 
 static void
-window_start_element (GMarkupParseContext  *context,
+window_start_element (GtkBuildableParseContext  *context,
                       const gchar          *element_name,
                       const gchar         **names,
                       const gchar         **values,
@@ -2246,7 +2246,7 @@ window_start_element (GMarkupParseContext  *context,
 
       item_data = g_new (ItemData, 1);
       item_data->name = g_strdup (name);
-      g_markup_parse_context_get_position (context, &item_data->line, &item_data->col);
+      gtk_buildable_parse_context_get_position (context, &item_data->line, &item_data->col);
       data->items = g_slist_prepend (data->items, item_data);
     }
   else if (strcmp (element_name, "accel-groups") == 0)
@@ -2267,18 +2267,18 @@ window_start_element (GMarkupParseContext  *context,
     }
 }
 
-static const GMarkupParser window_parser =
+static const GtkBuildableParser window_parser =
   {
     window_start_element
   };
 
 static gboolean
-gtk_window_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                       GtkBuilder    *builder,
-                                       GObject       *child,
-                                       const gchar   *tagname,
-                                       GMarkupParser *parser,
-                                       gpointer      *parser_data)
+gtk_window_buildable_custom_tag_start (GtkBuildable       *buildable,
+                                       GtkBuilder         *builder,
+                                       GObject            *child,
+                                       const gchar        *tagname,
+                                       GtkBuildableParser *parser,
+                                       gpointer           *parser_data)
 {
   if (parent_buildable_iface->custom_tag_start (buildable, builder, child,
                                                tagname, parser, parser_data))


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]