Blame gtk/gtkcelllayout.c

Packit Service fb6fa5
/* gtkcelllayout.c
Packit Service fb6fa5
 * Copyright (C) 2003  Kristian Rietveld  <kris@gtk.org>
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * This library is free software; you can redistribute it and/or
Packit Service fb6fa5
 * modify it under the terms of the GNU Library General Public
Packit Service fb6fa5
 * License as published by the Free Software Foundation; either
Packit Service fb6fa5
 * version 2 of the License, or (at your option) any later version.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * This library is distributed in the hope that it will be useful,
Packit Service fb6fa5
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service fb6fa5
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service fb6fa5
 * Library General Public License for more details.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * You should have received a copy of the GNU Library General Public
Packit Service fb6fa5
 * License along with this library; if not, write to the
Packit Service fb6fa5
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit Service fb6fa5
 * Boston, MA 02111-1307, USA.
Packit Service fb6fa5
 */
Packit Service fb6fa5
Packit Service fb6fa5
#include "config.h"
Packit Service fb6fa5
#include <string.h>
Packit Service fb6fa5
#include <stdlib.h>
Packit Service fb6fa5
#include <errno.h>
Packit Service fb6fa5
#include "gtkcelllayout.h"
Packit Service fb6fa5
#include "gtkintl.h"
Packit Service fb6fa5
#include "gtkalias.h"
Packit Service fb6fa5
Packit Service fb6fa5
GType
Packit Service fb6fa5
gtk_cell_layout_get_type (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  static GType cell_layout_type = 0;
Packit Service fb6fa5
Packit Service fb6fa5
  if (! cell_layout_type)
Packit Service fb6fa5
    {
Packit Service fb6fa5
      const GTypeInfo cell_layout_info =
Packit Service fb6fa5
      {
Packit Service fb6fa5
        sizeof (GtkCellLayoutIface),
Packit Service fb6fa5
        NULL,
Packit Service fb6fa5
        NULL,
Packit Service fb6fa5
        NULL,
Packit Service fb6fa5
        NULL,
Packit Service fb6fa5
        NULL,
Packit Service fb6fa5
        0,
Packit Service fb6fa5
        0,
Packit Service fb6fa5
        NULL
Packit Service fb6fa5
      };
Packit Service fb6fa5
Packit Service fb6fa5
      cell_layout_type =
Packit Service fb6fa5
        g_type_register_static (G_TYPE_INTERFACE, I_("GtkCellLayout"),
Packit Service fb6fa5
                                &cell_layout_info, 0);
Packit Service fb6fa5
Packit Service fb6fa5
      g_type_interface_add_prerequisite (cell_layout_type, G_TYPE_OBJECT);
Packit Service fb6fa5
    }
Packit Service fb6fa5
Packit Service fb6fa5
  return cell_layout_type;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/**
Packit Service fb6fa5
 * gtk_cell_layout_pack_start:
Packit Service fb6fa5
 * @cell_layout: A #GtkCellLayout.
Packit Service fb6fa5
 * @cell: A #GtkCellRenderer.
Packit Service fb6fa5
 * @expand: %TRUE if @cell is to be given extra space allocated to @cell_layout.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Packs the @cell into the beginning of @cell_layout. If @expand is %FALSE,
Packit Service fb6fa5
 * then the @cell is allocated no more space than it needs. Any unused space
Packit Service fb6fa5
 * is divided evenly between cells for which @expand is %TRUE.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Note that reusing the same cell renderer is not supported. 
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Since: 2.4
Packit Service fb6fa5
 */
Packit Service fb6fa5
void
Packit Service fb6fa5
gtk_cell_layout_pack_start (GtkCellLayout   *cell_layout,
Packit Service fb6fa5
                            GtkCellRenderer *cell,
Packit Service fb6fa5
                            gboolean         expand)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_LAYOUT (cell_layout));
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
Packit Service fb6fa5
Packit Service fb6fa5
  (* GTK_CELL_LAYOUT_GET_IFACE (cell_layout)->pack_start) (cell_layout,
Packit Service fb6fa5
                                                           cell,
Packit Service fb6fa5
                                                           expand);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/**
Packit Service fb6fa5
 * gtk_cell_layout_pack_end:
Packit Service fb6fa5
 * @cell_layout: A #GtkCellLayout.
Packit Service fb6fa5
 * @cell: A #GtkCellRenderer.
Packit Service fb6fa5
 * @expand: %TRUE if @cell is to be given extra space allocated to @cell_layout.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Adds the @cell to the end of @cell_layout. If @expand is %FALSE, then the
Packit Service fb6fa5
 * @cell is allocated no more space than it needs. Any unused space is
Packit Service fb6fa5
 * divided evenly between cells for which @expand is %TRUE.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Note that reusing the same cell renderer is not supported. 
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Since: 2.4
Packit Service fb6fa5
 */
Packit Service fb6fa5
void
Packit Service fb6fa5
gtk_cell_layout_pack_end (GtkCellLayout   *cell_layout,
Packit Service fb6fa5
                          GtkCellRenderer *cell,
Packit Service fb6fa5
                          gboolean         expand)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_LAYOUT (cell_layout));
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
Packit Service fb6fa5
Packit Service fb6fa5
  (* GTK_CELL_LAYOUT_GET_IFACE (cell_layout)->pack_end) (cell_layout,
Packit Service fb6fa5
                                                         cell,
Packit Service fb6fa5
                                                         expand);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/**
Packit Service fb6fa5
 * gtk_cell_layout_clear:
Packit Service fb6fa5
 * @cell_layout: A #GtkCellLayout.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Unsets all the mappings on all renderers on @cell_layout and
Packit Service fb6fa5
 * removes all renderers from @cell_layout.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Since: 2.4
Packit Service fb6fa5
 */
Packit Service fb6fa5
void
Packit Service fb6fa5
gtk_cell_layout_clear (GtkCellLayout *cell_layout)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_LAYOUT (cell_layout));
Packit Service fb6fa5
Packit Service fb6fa5
  (* GTK_CELL_LAYOUT_GET_IFACE (cell_layout)->clear) (cell_layout);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
gtk_cell_layout_set_attributesv (GtkCellLayout   *cell_layout,
Packit Service fb6fa5
                                 GtkCellRenderer *cell,
Packit Service fb6fa5
                                 va_list          args)
Packit Service fb6fa5
{
Packit Service fb6fa5
  gchar *attribute;
Packit Service fb6fa5
  gint column;
Packit Service fb6fa5
  GtkCellLayoutIface *iface;
Packit Service fb6fa5
Packit Service fb6fa5
  attribute = va_arg (args, gchar *);
Packit Service fb6fa5
Packit Service fb6fa5
  iface = GTK_CELL_LAYOUT_GET_IFACE (cell_layout);
Packit Service fb6fa5
Packit Service fb6fa5
  (* iface->clear_attributes) (cell_layout, cell);
Packit Service fb6fa5
Packit Service fb6fa5
  while (attribute != NULL)
Packit Service fb6fa5
    {
Packit Service fb6fa5
      column = va_arg (args, gint);
Packit Service fb6fa5
      (* iface->add_attribute) (cell_layout, cell, attribute, column);
Packit Service fb6fa5
      attribute = va_arg (args, gchar *);
Packit Service fb6fa5
    }
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/**
Packit Service fb6fa5
 * gtk_cell_layout_set_attributes:
Packit Service fb6fa5
 * @cell_layout: A #GtkCellLayout.
Packit Service fb6fa5
 * @cell: A #GtkCellRenderer.
Packit Service fb6fa5
 * @Varargs: A %NULL-terminated list of attributes.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Sets the attributes in list as the attributes of @cell_layout. The
Packit Service fb6fa5
 * attributes should be in attribute/column order, as in
Packit Service fb6fa5
 * gtk_cell_layout_add_attribute(). All existing attributes are removed, and
Packit Service fb6fa5
 * replaced with the new attributes.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Since: 2.4
Packit Service fb6fa5
 */
Packit Service fb6fa5
void
Packit Service fb6fa5
gtk_cell_layout_set_attributes (GtkCellLayout   *cell_layout,
Packit Service fb6fa5
                                GtkCellRenderer *cell,
Packit Service fb6fa5
                                ...)
Packit Service fb6fa5
{
Packit Service fb6fa5
  va_list args;
Packit Service fb6fa5
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_LAYOUT (cell_layout));
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
Packit Service fb6fa5
Packit Service fb6fa5
  va_start (args, cell);
Packit Service fb6fa5
  gtk_cell_layout_set_attributesv (cell_layout, cell, args);
Packit Service fb6fa5
  va_end (args);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/**
Packit Service fb6fa5
 * gtk_cell_layout_add_attribute:
Packit Service fb6fa5
 * @cell_layout: A #GtkCellLayout.
Packit Service fb6fa5
 * @cell: A #GtkCellRenderer.
Packit Service fb6fa5
 * @attribute: An attribute on the renderer.
Packit Service fb6fa5
 * @column: The column position on the model to get the attribute from.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Adds an attribute mapping to the list in @cell_layout. The @column is the
Packit Service fb6fa5
 * column of the model to get a value from, and the @attribute is the
Packit Service fb6fa5
 * parameter on @cell to be set from the value. So for example if column 2
Packit Service fb6fa5
 * of the model contains strings, you could have the "text" attribute of a
Packit Service fb6fa5
 * #GtkCellRendererText get its values from column 2.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Since: 2.4
Packit Service fb6fa5
 */
Packit Service fb6fa5
void
Packit Service fb6fa5
gtk_cell_layout_add_attribute (GtkCellLayout   *cell_layout,
Packit Service fb6fa5
                               GtkCellRenderer *cell,
Packit Service fb6fa5
                               const gchar     *attribute,
Packit Service fb6fa5
                               gint             column)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_LAYOUT (cell_layout));
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
Packit Service fb6fa5
  g_return_if_fail (attribute != NULL);
Packit Service fb6fa5
  g_return_if_fail (column >= 0);
Packit Service fb6fa5
Packit Service fb6fa5
  (* GTK_CELL_LAYOUT_GET_IFACE (cell_layout)->add_attribute) (cell_layout,
Packit Service fb6fa5
                                                              cell,
Packit Service fb6fa5
                                                              attribute,
Packit Service fb6fa5
                                                              column);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/**
Packit Service fb6fa5
 * gtk_cell_layout_set_cell_data_func:
Packit Service fb6fa5
 * @cell_layout: A #GtkCellLayout.
Packit Service fb6fa5
 * @cell: A #GtkCellRenderer.
Packit Service fb6fa5
 * @func: The #GtkCellLayoutDataFunc to use.
Packit Service fb6fa5
 * @func_data: The user data for @func.
Packit Service fb6fa5
 * @destroy: The destroy notification for @func_data.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Sets the #GtkCellLayoutDataFunc to use for @cell_layout. This function
Packit Service fb6fa5
 * is used instead of the standard attributes mapping for setting the
Packit Service fb6fa5
 * column value, and should set the value of @cell_layout's cell renderer(s)
Packit Service fb6fa5
 * as appropriate. @func may be %NULL to remove and older one.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Since: 2.4
Packit Service fb6fa5
 */
Packit Service fb6fa5
void
Packit Service fb6fa5
gtk_cell_layout_set_cell_data_func (GtkCellLayout         *cell_layout,
Packit Service fb6fa5
                                    GtkCellRenderer       *cell,
Packit Service fb6fa5
                                    GtkCellLayoutDataFunc  func,
Packit Service fb6fa5
                                    gpointer               func_data,
Packit Service fb6fa5
                                    GDestroyNotify         destroy)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_LAYOUT (cell_layout));
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
Packit Service fb6fa5
Packit Service fb6fa5
  (* GTK_CELL_LAYOUT_GET_IFACE (cell_layout)->set_cell_data_func) (cell_layout,
Packit Service fb6fa5
                                                                   cell,
Packit Service fb6fa5
                                                                   func,
Packit Service fb6fa5
                                                                   func_data,
Packit Service fb6fa5
                                                                   destroy);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/**
Packit Service fb6fa5
 * gtk_cell_layout_clear_attributes:
Packit Service fb6fa5
 * @cell_layout: A #GtkCellLayout.
Packit Service fb6fa5
 * @cell: A #GtkCellRenderer to clear the attribute mapping on.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Clears all existing attributes previously set with
Packit Service fb6fa5
 * gtk_cell_layout_set_attributes().
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Since: 2.4
Packit Service fb6fa5
 */
Packit Service fb6fa5
void
Packit Service fb6fa5
gtk_cell_layout_clear_attributes (GtkCellLayout   *cell_layout,
Packit Service fb6fa5
                                  GtkCellRenderer *cell)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_LAYOUT (cell_layout));
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
Packit Service fb6fa5
Packit Service fb6fa5
  (* GTK_CELL_LAYOUT_GET_IFACE (cell_layout)->clear_attributes) (cell_layout,
Packit Service fb6fa5
                                                                 cell);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/**
Packit Service fb6fa5
 * gtk_cell_layout_reorder:
Packit Service fb6fa5
 * @cell_layout: A #GtkCellLayout.
Packit Service fb6fa5
 * @cell: A #GtkCellRenderer to reorder.
Packit Service fb6fa5
 * @position: New position to insert @cell at.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Re-inserts @cell at @position. Note that @cell has already to be packed
Packit Service fb6fa5
 * into @cell_layout for this to function properly.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Since: 2.4
Packit Service fb6fa5
 */
Packit Service fb6fa5
void
Packit Service fb6fa5
gtk_cell_layout_reorder (GtkCellLayout   *cell_layout,
Packit Service fb6fa5
                         GtkCellRenderer *cell,
Packit Service fb6fa5
                         gint             position)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_LAYOUT (cell_layout));
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
Packit Service fb6fa5
Packit Service fb6fa5
  (* GTK_CELL_LAYOUT_GET_IFACE (cell_layout)->reorder) (cell_layout,
Packit Service fb6fa5
                                                        cell,
Packit Service fb6fa5
                                                        position);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/**
Packit Service fb6fa5
 * gtk_cell_layout_get_cells:
Packit Service fb6fa5
 * @cell_layout: a #GtkCellLayout
Packit Service fb6fa5
 * 
Packit Service fb6fa5
 * Returns the cell renderers which have been added to @cell_layout.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Return value: (element-type GtkCellRenderer) (transfer container): a list of cell renderers. The list, but not the
Packit Service fb6fa5
 *   renderers has been newly allocated and should be freed with
Packit Service fb6fa5
 *   g_list_free() when no longer needed.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * Since: 2.12
Packit Service fb6fa5
 */
Packit Service fb6fa5
GList *
Packit Service fb6fa5
gtk_cell_layout_get_cells (GtkCellLayout *cell_layout)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkCellLayoutIface *iface;
Packit Service fb6fa5
Packit Service fb6fa5
  g_return_val_if_fail (GTK_IS_CELL_LAYOUT (cell_layout), NULL);
Packit Service fb6fa5
Packit Service fb6fa5
  iface = GTK_CELL_LAYOUT_GET_IFACE (cell_layout);  
Packit Service fb6fa5
  if (iface->get_cells)
Packit Service fb6fa5
    return iface->get_cells (cell_layout);
Packit Service fb6fa5
Packit Service fb6fa5
  return NULL;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
typedef struct {
Packit Service fb6fa5
  GtkCellLayout   *cell_layout;
Packit Service fb6fa5
  GtkCellRenderer *renderer;
Packit Service fb6fa5
  gchar           *attr_name;
Packit Service fb6fa5
} AttributesSubParserData;
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
attributes_start_element (GMarkupParseContext *context,
Packit Service fb6fa5
			  const gchar         *element_name,
Packit Service fb6fa5
			  const gchar        **names,
Packit Service fb6fa5
			  const gchar        **values,
Packit Service fb6fa5
			  gpointer             user_data,
Packit Service fb6fa5
			  GError             **error)
Packit Service fb6fa5
{
Packit Service fb6fa5
  AttributesSubParserData *parser_data = (AttributesSubParserData*)user_data;
Packit Service fb6fa5
  guint i;
Packit Service fb6fa5
Packit Service fb6fa5
  if (strcmp (element_name, "attribute") == 0)
Packit Service fb6fa5
    {
Packit Service fb6fa5
      for (i = 0; names[i]; i++)
Packit Service fb6fa5
	if (strcmp (names[i], "name") == 0)
Packit Service fb6fa5
	  parser_data->attr_name = g_strdup (values[i]);
Packit Service fb6fa5
    }
Packit Service fb6fa5
  else if (strcmp (element_name, "attributes") == 0)
Packit Service fb6fa5
    return;
Packit Service fb6fa5
  else
Packit Service fb6fa5
    g_warning ("Unsupported tag for GtkCellLayout: %s\n", element_name);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
attributes_text_element (GMarkupParseContext *context,
Packit Service fb6fa5
			 const gchar         *text,
Packit Service fb6fa5
			 gsize                text_len,
Packit Service fb6fa5
			 gpointer             user_data,
Packit Service fb6fa5
			 GError             **error)
Packit Service fb6fa5
{
Packit Service fb6fa5
  AttributesSubParserData *parser_data = (AttributesSubParserData*)user_data;
Packit Service fb6fa5
  glong l;
Packit Service fb6fa5
  gchar *endptr;
Packit Service fb6fa5
  gchar *string;
Packit Service fb6fa5
  
Packit Service fb6fa5
  if (!parser_data->attr_name)
Packit Service fb6fa5
    return;
Packit Service fb6fa5
Packit Service fb6fa5
  errno = 0;
Packit Service fb6fa5
  string = g_strndup (text, text_len);
Packit Service fb6fa5
  l = strtol (string, &endptr, 0);
Packit Service fb6fa5
  if (errno || endptr == string)
Packit Service fb6fa5
    {
Packit Service fb6fa5
      g_set_error (error, 
Packit Service fb6fa5
                   GTK_BUILDER_ERROR,
Packit Service fb6fa5
                   GTK_BUILDER_ERROR_INVALID_VALUE,
Packit Service fb6fa5
                   "Could not parse integer `%s'",
Packit Service fb6fa5
                   string);
Packit Service fb6fa5
      g_free (string);
Packit Service fb6fa5
      return;
Packit Service fb6fa5
    }
Packit Service fb6fa5
  g_free (string);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_cell_layout_add_attribute (parser_data->cell_layout,
Packit Service fb6fa5
				 parser_data->renderer,
Packit Service fb6fa5
				 parser_data->attr_name, l);
Packit Service fb6fa5
  g_free (parser_data->attr_name);
Packit Service fb6fa5
  parser_data->attr_name = NULL;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static const GMarkupParser attributes_parser =
Packit Service fb6fa5
  {
Packit Service fb6fa5
    attributes_start_element,
Packit Service fb6fa5
    NULL,
Packit Service fb6fa5
    attributes_text_element,
Packit Service fb6fa5
  };
Packit Service fb6fa5
Packit Service fb6fa5
gboolean
Packit Service fb6fa5
_gtk_cell_layout_buildable_custom_tag_start (GtkBuildable  *buildable,
Packit Service fb6fa5
					     GtkBuilder    *builder,
Packit Service fb6fa5
					     GObject       *child,
Packit Service fb6fa5
					     const gchar   *tagname,
Packit Service fb6fa5
					     GMarkupParser *parser,
Packit Service fb6fa5
					     gpointer      *data)
Packit Service fb6fa5
{
Packit Service fb6fa5
  AttributesSubParserData *parser_data;
Packit Service fb6fa5
Packit Service fb6fa5
  if (!child)
Packit Service fb6fa5
    return FALSE;
Packit Service fb6fa5
Packit Service fb6fa5
  if (strcmp (tagname, "attributes") == 0)
Packit Service fb6fa5
    {
Packit Service fb6fa5
      parser_data = g_slice_new0 (AttributesSubParserData);
Packit Service fb6fa5
      parser_data->cell_layout = GTK_CELL_LAYOUT (buildable);
Packit Service fb6fa5
      parser_data->renderer = GTK_CELL_RENDERER (child);
Packit Service fb6fa5
      parser_data->attr_name = NULL;
Packit Service fb6fa5
Packit Service fb6fa5
      *parser = attributes_parser;
Packit Service fb6fa5
      *data = parser_data;
Packit Service fb6fa5
      return TRUE;
Packit Service fb6fa5
    }
Packit Service fb6fa5
Packit Service fb6fa5
  return FALSE;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
void
Packit Service fb6fa5
_gtk_cell_layout_buildable_custom_tag_end (GtkBuildable *buildable,
Packit Service fb6fa5
					   GtkBuilder   *builder,
Packit Service fb6fa5
					   GObject      *child,
Packit Service fb6fa5
					   const gchar  *tagname,
Packit Service fb6fa5
					   gpointer     *data)
Packit Service fb6fa5
{
Packit Service fb6fa5
  AttributesSubParserData *parser_data;
Packit Service fb6fa5
Packit Service fb6fa5
  parser_data = (AttributesSubParserData*)data;
Packit Service fb6fa5
  g_assert (!parser_data->attr_name);
Packit Service fb6fa5
  g_slice_free (AttributesSubParserData, parser_data);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
void
Packit Service fb6fa5
_gtk_cell_layout_buildable_add_child (GtkBuildable      *buildable,
Packit Service fb6fa5
				      GtkBuilder        *builder,
Packit Service fb6fa5
				      GObject           *child,
Packit Service fb6fa5
				      const gchar       *type)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkCellLayoutIface *iface;
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_LAYOUT (buildable));
Packit Service fb6fa5
  g_return_if_fail (GTK_IS_CELL_RENDERER (child));
Packit Service fb6fa5
Packit Service fb6fa5
  iface = GTK_CELL_LAYOUT_GET_IFACE (buildable);
Packit Service fb6fa5
  g_return_if_fail (iface->pack_start != NULL);
Packit Service fb6fa5
  iface->pack_start (GTK_CELL_LAYOUT (buildable), GTK_CELL_RENDERER (child), FALSE);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
#define __GTK_CELL_LAYOUT_C__
Packit Service fb6fa5
#include "gtkaliasdef.c"