1 /* GTK+ - accessibility implementations
2 * Copyright 2001 Sun Microsystems Inc.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
21 #include "gtkrenderercellaccessible.h"
24 struct _GtkRendererCellAccessiblePrivate
26 GtkCellRenderer *renderer;
34 G_DEFINE_TYPE (GtkRendererCellAccessible, gtk_renderer_cell_accessible, GTK_TYPE_CELL_ACCESSIBLE)
37 gtk_renderer_cell_accessible_set_property (GObject *object,
42 GtkRendererCellAccessible *accessible = GTK_RENDERER_CELL_ACCESSIBLE (object);
47 accessible->priv->renderer = g_value_dup_object (value);
50 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
56 gtk_renderer_cell_accessible_get_property (GObject *object,
61 GtkRendererCellAccessible *accessible = GTK_RENDERER_CELL_ACCESSIBLE (object);
66 g_value_set_object (value, accessible->priv->renderer);
69 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
75 gtk_renderer_cell_accessible_finalize (GObject *object)
77 GtkRendererCellAccessible *renderer_cell = GTK_RENDERER_CELL_ACCESSIBLE (object);
79 if (renderer_cell->priv->renderer)
80 g_object_unref (renderer_cell->priv->renderer);
82 G_OBJECT_CLASS (gtk_renderer_cell_accessible_parent_class)->finalize (object);
86 gtk_renderer_cell_accessible_class_init (GtkRendererCellAccessibleClass *klass)
88 GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
90 gobject_class->get_property = gtk_renderer_cell_accessible_get_property;
91 gobject_class->set_property = gtk_renderer_cell_accessible_set_property;
92 gobject_class->finalize = gtk_renderer_cell_accessible_finalize;
94 g_object_class_install_property (gobject_class,
96 g_param_spec_object ("renderer",
98 P_("The cell renderer represented by this accessible"),
99 GTK_TYPE_CELL_RENDERER,
100 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
102 g_type_class_add_private (klass, sizeof (GtkRendererCellAccessiblePrivate));
106 gtk_renderer_cell_accessible_init (GtkRendererCellAccessible *renderer_cell)
108 renderer_cell->priv = G_TYPE_INSTANCE_GET_PRIVATE (renderer_cell,
109 GTK_TYPE_RENDERER_CELL_ACCESSIBLE,
110 GtkRendererCellAccessiblePrivate);
114 gtk_renderer_cell_accessible_new (GtkCellRenderer *renderer)
118 g_return_val_if_fail (GTK_IS_CELL_RENDERER (renderer), NULL);
120 object = g_object_new (_gtk_cell_renderer_get_accessible_type (renderer),
121 "renderer", renderer,
124 atk_object_set_role (object, ATK_ROLE_TABLE_CELL);