X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fa11y%2Fgtkcontaineraccessible.c;h=6f32898c6a1be9b8429d78d10dfe34eed503e902;hb=10ead8a9d75386a7210f3e3fa6ae704721871e9e;hp=844fe841e16d7c19b2110fd787f67c8b91797f64;hpb=05eb4113d9c7fc4c008fa4e9357eeea7184662f4;p=~andy%2Fgtk
diff --git a/gtk/a11y/gtkcontaineraccessible.c b/gtk/a11y/gtkcontaineraccessible.c
index 844fe841e..6f32898c6 100644
--- a/gtk/a11y/gtkcontaineraccessible.c
+++ b/gtk/a11y/gtkcontaineraccessible.c
@@ -12,9 +12,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see .
*/
#include "config.h"
@@ -22,13 +20,12 @@
#include
#include "gtkcontaineraccessible.h"
-
-G_DEFINE_TYPE (GtkContainerAccessible, gtk_container_accessible, GTK_TYPE_WIDGET_ACCESSIBLE)
-
-static void
-gtk_container_accessible_init (GtkContainerAccessible *container)
+struct _GtkContainerAccessiblePrivate
{
-}
+ GList *children;
+};
+
+G_DEFINE_TYPE (GtkContainerAccessible, _gtk_container_accessible, GTK_TYPE_WIDGET_ACCESSIBLE)
static gint
gtk_container_accessible_get_n_children (AtkObject* obj)
@@ -41,7 +38,7 @@ gtk_container_accessible_get_n_children (AtkObject* obj)
if (widget == NULL)
return 0;
- children = gtk_container_get_children (GTK_CONTAINER(widget));
+ children = gtk_container_get_children (GTK_CONTAINER (widget));
count = g_list_length (children);
g_list_free (children);
@@ -121,11 +118,11 @@ gtk_container_accessible_real_add_gtk (GtkContainer *container,
atk_child = gtk_widget_get_accessible (widget);
accessible = GTK_CONTAINER_ACCESSIBLE (atk_parent);
- g_object_notify (G_OBJECT (atk_child), "accessible_parent");
- g_list_free (accessible->children);
- accessible->children = gtk_container_get_children (container);
- index = g_list_index (accessible->children, widget);
- g_signal_emit_by_name (atk_parent, "children_changed::add", index, atk_child, NULL);
+ g_object_notify (G_OBJECT (atk_child), "accessible-parent");
+ g_list_free (accessible->priv->children);
+ accessible->priv->children = gtk_container_get_children (container);
+ index = g_list_index (accessible->priv->children, widget);
+ g_signal_emit_by_name (atk_parent, "children-changed::add", index, atk_child, NULL);
return 1;
}
@@ -146,12 +143,12 @@ gtk_container_accessible_real_remove_gtk (GtkContainer *container,
return 1;
accessible = GTK_CONTAINER_ACCESSIBLE (atk_parent);
- g_object_notify (G_OBJECT (atk_child), "accessible_parent");
- index = g_list_index (accessible->children, widget);
- g_list_free (accessible->children);
- accessible->children = gtk_container_get_children (container);
- if (index >= 0 && index <= g_list_length (accessible->children))
- g_signal_emit_by_name (atk_parent, "children_changed::remove", index, atk_child, NULL);
+ g_object_notify (G_OBJECT (atk_child), "accessible-parent");
+ index = g_list_index (accessible->priv->children, widget);
+ g_list_free (accessible->priv->children);
+ accessible->priv->children = gtk_container_get_children (container);
+ if (index >= 0 && index <= g_list_length (accessible->priv->children))
+ g_signal_emit_by_name (atk_parent, "children-changed::remove", index, atk_child, NULL);
return 1;
}
@@ -162,19 +159,14 @@ gtk_container_accessible_real_initialize (AtkObject *obj,
{
GtkContainerAccessible *accessible = GTK_CONTAINER_ACCESSIBLE (obj);
- ATK_OBJECT_CLASS (gtk_container_accessible_parent_class)->initialize (obj, data);
+ ATK_OBJECT_CLASS (_gtk_container_accessible_parent_class)->initialize (obj, data);
- accessible->children = gtk_container_get_children (GTK_CONTAINER (data));
+ accessible->priv->children = gtk_container_get_children (GTK_CONTAINER (data));
g_signal_connect (data, "add", G_CALLBACK (gtk_container_accessible_add_gtk), obj);
g_signal_connect (data, "remove", G_CALLBACK (gtk_container_accessible_remove_gtk), obj);
- if (GTK_IS_TOOLBAR (data))
- obj->role = ATK_ROLE_TOOL_BAR;
- else if (GTK_IS_VIEWPORT (data))
- obj->role = ATK_ROLE_VIEWPORT;
- else
- obj->role = ATK_ROLE_PANEL;
+ obj->role = ATK_ROLE_PANEL;
}
static void
@@ -182,13 +174,13 @@ gtk_container_accessible_finalize (GObject *object)
{
GtkContainerAccessible *accessible = GTK_CONTAINER_ACCESSIBLE (object);
- g_list_free (accessible->children);
+ g_list_free (accessible->priv->children);
- G_OBJECT_CLASS (gtk_container_accessible_parent_class)->finalize (object);
+ G_OBJECT_CLASS (_gtk_container_accessible_parent_class)->finalize (object);
}
static void
-gtk_container_accessible_class_init (GtkContainerAccessibleClass *klass)
+_gtk_container_accessible_class_init (GtkContainerAccessibleClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
@@ -201,4 +193,14 @@ gtk_container_accessible_class_init (GtkContainerAccessibleClass *klass)
klass->add_gtk = gtk_container_accessible_real_add_gtk;
klass->remove_gtk = gtk_container_accessible_real_remove_gtk;
+
+ g_type_class_add_private (klass, sizeof (GtkContainerAccessiblePrivate));
+}
+
+static void
+_gtk_container_accessible_init (GtkContainerAccessible *container)
+{
+ container->priv = G_TYPE_INSTANCE_GET_PRIVATE (container,
+ GTK_TYPE_CONTAINER_ACCESSIBLE,
+ GtkContainerAccessiblePrivate);
}