[gtk+] Convert GailExpander to GtkExpanderAccessible
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Convert GailExpander to GtkExpanderAccessible
- Date: Tue, 5 Jul 2011 20:35:53 +0000 (UTC)
commit 896769df691bcdf0b6a139a7bdce5056be6cba25
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Jul 1 10:15:36 2011 -0400
Convert GailExpander to GtkExpanderAccessible
At the same time, drop the AtkText implementation.
Also, reintroduce a GtkBoxAccessible, since the previous
way of setting the role in get_accessible was affecting
GtkBox subclasses negatively.
Adjust expected test output to match.
gtk/a11y/Makefile.am | 6 +-
gtk/a11y/gail.c | 3 -
gtk/a11y/gailexpander.c | 435 -------------------------------------
gtk/a11y/gailexpander.h | 56 -----
gtk/a11y/gtkboxaccessible.c | 46 ++++
gtk/a11y/gtkboxaccessible.h | 51 +++++
gtk/a11y/gtkexpanderaccessible.c | 290 ++++++++++++++++++++++++
gtk/a11y/gtkexpanderaccessible.h | 51 +++++
gtk/a11y/gtkstatusbaraccessible.c | 2 +-
gtk/a11y/gtkstatusbaraccessible.h | 7 +-
gtk/gtkbox.c | 19 +--
gtk/gtkexpander.c | 3 +
tests/a11y/about.txt | 38 ++--
tests/a11y/appchooser.txt | 28 ++--
tests/a11y/assistant.txt | 16 +-
tests/a11y/colorchooser.txt | 56 +++---
tests/a11y/infobar.txt | 2 +-
tests/a11y/messagedialog.txt | 20 +-
tests/a11y/placeholder-text.txt | 2 +-
19 files changed, 533 insertions(+), 598 deletions(-)
---
diff --git a/gtk/a11y/Makefile.am b/gtk/a11y/Makefile.am
index 60f967e..834a05e 100644
--- a/gtk/a11y/Makefile.am
+++ b/gtk/a11y/Makefile.am
@@ -6,6 +6,7 @@ gail_c_sources = \
gail.c \
gtkarrowaccessible.c \
gailbooleancell.c \
+ gtkboxaccessible.c \
gailbutton.c \
gailcell.c \
gailcellparent.c \
@@ -15,7 +16,7 @@ gail_c_sources = \
gailcontainer.c \
gailcontainercell.c \
gtkentryaccessible.c \
- gailexpander.c \
+ gtkexpanderaccessible.c \
gtkframeaccessible.c \
gtkimageaccessible.c \
gailimagecell.c \
@@ -56,6 +57,7 @@ libgailincludedir=$(includedir)/gail-3.0/gail
gail_private_h_sources = \
gtkarrowaccessible.h \
gailbooleancell.h \
+ gtkboxaccessible.h \
gailbutton.h \
gailcell.h \
gailcellparent.h \
@@ -65,7 +67,7 @@ gail_private_h_sources = \
gailcontainercell.h \
gailcontainer.h \
gtkentryaccessible.h \
- gailexpander.h \
+ gtkexpanderaccessible.h \
gailfactory.h \
gtkframeaccessible.h \
gtkimageaccessible.h \
diff --git a/gtk/a11y/gail.c b/gtk/a11y/gail.c
index 3aa11de..623de9c 100644
--- a/gtk/a11y/gail.c
+++ b/gtk/a11y/gail.c
@@ -29,7 +29,6 @@
#include "gailcheckmenuitem.h"
#include "gailcontainer.h"
#include "gailcontainercell.h"
-#include "gailexpander.h"
#include "gailimagecell.h"
#include "gailmenu.h"
#include "gailmenushell.h"
@@ -95,7 +94,6 @@ GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_MENU, GailMenu, gail_menu, GTK_TYPE_MENU)
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_WINDOW, GailWindow, gail_window, GTK_TYPE_BIN)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_CHECK_MENU_ITEM, GailCheckMenuItem, gail_check_menu_item, gail_check_menu_item_new)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_RADIO_MENU_ITEM, GailRadioMenuItem, gail_radio_menu_item, gail_radio_menu_item_new)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_EXPANDER, GailExpander, gail_expander, GTK_TYPE_EXPANDER)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_RENDERER_CELL, GailRendererCell, gail_renderer_cell, GTK_TYPE_CELL_RENDERER, gail_renderer_cell_new)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_BOOLEAN_CELL, GailBooleanCell, gail_boolean_cell, GTK_TYPE_CELL_RENDERER_TOGGLE, gail_boolean_cell_new)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_IMAGE_CELL, GailImageCell, gail_image_cell, GTK_TYPE_CELL_RENDERER_PIXBUF, gail_image_cell_new)
@@ -853,7 +851,6 @@ gail_accessibility_module_init (void)
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CELL_RENDERER, gail_renderer_cell);
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CHECK_MENU_ITEM, gail_check_menu_item);
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_RADIO_MENU_ITEM, gail_radio_menu_item);
- GAIL_WIDGET_SET_FACTORY (GTK_TYPE_EXPANDER, gail_expander);
atk_focus_tracker_init (gail_focus_tracker_init);
focus_tracker_id = atk_add_focus_tracker (gail_focus_tracker);
diff --git a/gtk/a11y/gtkboxaccessible.c b/gtk/a11y/gtkboxaccessible.c
new file mode 100644
index 0000000..5352619
--- /dev/null
+++ b/gtk/a11y/gtkboxaccessible.c
@@ -0,0 +1,46 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2004 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkboxaccessible.h"
+
+G_DEFINE_TYPE (GtkBoxAccessible, gtk_box_accessible, GAIL_TYPE_CONTAINER)
+
+static void
+gtk_box_accessible_initialize (AtkObject *accessible,
+ gpointer data)
+{
+ ATK_OBJECT_CLASS (gtk_box_accessible_parent_class)->initialize (accessible, data);
+ accessible->role = ATK_ROLE_FILLER;
+}
+
+static void
+gtk_box_accessible_class_init (GtkBoxAccessibleClass *klass)
+{
+ AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+ class->initialize = gtk_box_accessible_initialize;
+}
+
+static void
+gtk_box_accessible_init (GtkBoxAccessible *scale)
+{
+}
diff --git a/gtk/a11y/gtkboxaccessible.h b/gtk/a11y/gtkboxaccessible.h
new file mode 100644
index 0000000..79598f5
--- /dev/null
+++ b/gtk/a11y/gtkboxaccessible.h
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2004 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library 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.
+ */
+
+#ifndef __GTK_BOX_ACCESSIBLE_H__
+#define __GTK_BOX_ACCESSIBLE_H__
+
+#include "gailcontainer.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_BOX_ACCESSIBLE (gtk_box_accessible_get_type ())
+#define GTK_BOX_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_BOX_ACCESSIBLE, GtkBoxAccessible))
+#define GTK_BOX_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_BOX_ACCESSIBLE, GtkBoxAccessibleClass))
+#define GTK_IS_BOX_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_BOX_ACCESSIBLE))
+#define GTK_IS_BOX_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_BOX_ACCESSIBLE))
+#define GTK_BOX_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_BOX_ACCESSIBLE, GtkBoxAccessibleClass))
+
+typedef struct _GtkBoxAccessible GtkBoxAccessible;
+typedef struct _GtkBoxAccessibleClass GtkBoxAccessibleClass;
+
+struct _GtkBoxAccessible
+{
+ GailContainer parent;
+};
+
+struct _GtkBoxAccessibleClass
+{
+ GailContainerClass parent_class;
+};
+
+GType gtk_box_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_BOX_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkexpanderaccessible.c b/gtk/a11y/gtkexpanderaccessible.c
new file mode 100644
index 0000000..105dfac
--- /dev/null
+++ b/gtk/a11y/gtkexpanderaccessible.c
@@ -0,0 +1,290 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
+#include "gtkexpanderaccessible.h"
+
+static void atk_action_interface_init (AtkActionIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkExpanderAccessible, gtk_expander_accessible, GAIL_TYPE_CONTAINER,
+ G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
+
+static const gchar *
+gtk_expander_accessible_get_full_text (GtkExpander *widget)
+{
+ GtkWidget *label_widget;
+
+ label_widget = gtk_expander_get_label_widget (widget);
+
+ if (!GTK_IS_LABEL (label_widget))
+ return NULL;
+
+ return gtk_label_get_text (GTK_LABEL (label_widget));
+}
+
+static const gchar *
+gtk_expander_accessible_get_name (AtkObject *obj)
+{
+ GtkWidget *widget;
+ const gchar *name;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget == NULL)
+ return NULL;
+
+ name = ATK_OBJECT_CLASS (gtk_expander_accessible_parent_class)->get_name (obj);
+ if (name != NULL)
+ return name;
+
+ return gtk_expander_accessible_get_full_text (GTK_EXPANDER (widget));
+}
+
+static gint
+gtk_expander_accessible_get_n_children (AtkObject *obj)
+{
+ GtkWidget *widget;
+ GList *children;
+ gint count = 0;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget == NULL)
+ return 0;
+
+ children = gtk_container_get_children (GTK_CONTAINER(widget));
+ count = g_list_length (children);
+ g_list_free (children);
+
+ /* See if there is a label - if there is, reduce our count by 1
+ * since we don't want the label included with the children.
+ */
+ if (gtk_expander_get_label_widget (GTK_EXPANDER (widget)))
+ count -= 1;
+
+ return count;
+}
+
+static AtkObject *
+gtk_expander_accessible_ref_child (AtkObject *obj,
+ gint i)
+{
+ GList *children, *tmp_list;
+ AtkObject *accessible;
+ GtkWidget *widget;
+ GtkWidget *label;
+ gint index;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget == NULL)
+ return NULL;
+
+ children = gtk_container_get_children (GTK_CONTAINER (widget));
+
+ /* See if there is a label - if there is, we need to skip it
+ * since we don't want the label included with the children.
+ */
+ label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
+ if (label)
+ {
+ for (index = 0; index <= i; index++)
+ {
+ tmp_list = g_list_nth (children, index);
+ if (label == GTK_WIDGET (tmp_list->data))
+ {
+ i += 1;
+ break;
+ }
+ }
+ }
+
+ tmp_list = g_list_nth (children, i);
+ if (!tmp_list)
+ {
+ g_list_free (children);
+ return NULL;
+ }
+ accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
+
+ g_list_free (children);
+ g_object_ref (accessible);
+ return accessible;
+}
+
+static void
+gtk_expander_accessible_initialize (AtkObject *obj,
+ gpointer data)
+{
+ ATK_OBJECT_CLASS (gtk_expander_accessible_parent_class)->initialize (obj, data);
+
+ obj->role = ATK_ROLE_TOGGLE_BUTTON;
+}
+
+static void
+gtk_expander_accessible_notify_gtk (GObject *obj,
+ GParamSpec *pspec)
+{
+ AtkObject* atk_obj;
+ GtkExpander *expander;
+
+ expander = GTK_EXPANDER (obj);
+ atk_obj = gtk_widget_get_accessible (GTK_WIDGET (expander));
+;
+ if (strcmp (pspec->name, "label") == 0)
+ {
+ if (atk_obj->name == NULL)
+ g_object_notify (G_OBJECT (atk_obj), "accessible-name");
+ g_signal_emit_by_name (atk_obj, "visible_data_changed");
+ }
+ else if (strcmp (pspec->name, "expanded") == 0)
+ {
+ atk_object_notify_state_change (atk_obj, ATK_STATE_CHECKED,
+ gtk_expander_get_expanded (expander));
+ atk_object_notify_state_change (atk_obj, ATK_STATE_EXPANDED,
+ gtk_expander_get_expanded (expander));
+ g_signal_emit_by_name (atk_obj, "visible_data_changed");
+ }
+ else
+ GAIL_WIDGET_CLASS (gtk_expander_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static AtkStateSet*
+gtk_expander_accessible_ref_state_set (AtkObject *obj)
+{
+ AtkStateSet *state_set;
+ GtkWidget *widget;
+ GtkExpander *expander;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget == NULL)
+ return NULL;
+
+ state_set = ATK_OBJECT_CLASS (gtk_expander_accessible_parent_class)->ref_state_set (obj);
+
+ expander = GTK_EXPANDER (widget);
+
+ atk_state_set_add_state (state_set, ATK_STATE_EXPANDABLE);
+
+ if (gtk_expander_get_expanded (expander))
+ {
+ atk_state_set_add_state (state_set, ATK_STATE_CHECKED);
+ atk_state_set_add_state (state_set, ATK_STATE_EXPANDED);
+ }
+
+ return state_set;
+}
+
+static void
+gtk_expander_accessible_class_init (GtkExpanderAccessibleClass *klass)
+{
+ AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+ GailWidgetClass *widget_class = (GailWidgetClass*)klass;
+
+ widget_class->notify_gtk = gtk_expander_accessible_notify_gtk;
+
+ class->get_name = gtk_expander_accessible_get_name;
+ class->get_n_children = gtk_expander_accessible_get_n_children;
+ class->ref_child = gtk_expander_accessible_ref_child;
+ class->ref_state_set = gtk_expander_accessible_ref_state_set;
+
+ class->initialize = gtk_expander_accessible_initialize;
+}
+
+static void
+gtk_expander_accessible_init (GtkExpanderAccessible *expander)
+{
+}
+
+static gboolean
+gtk_expander_accessible_do_action (AtkAction *action,
+ gint i)
+{
+ GtkWidget *widget;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+ if (widget == NULL)
+ return FALSE;
+
+ if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
+ return FALSE;
+
+ if (i != 0)
+ return FALSE;
+
+ gtk_widget_activate (widget);
+ return TRUE;
+}
+
+static gint
+gtk_expander_accessible_get_n_actions (AtkAction *action)
+{
+ return 1;
+}
+
+static const gchar *
+gtk_expander_accessible_get_keybinding (AtkAction *action,
+ gint i)
+{
+ GtkExpanderAccessible *expander;
+ gchar *return_value = NULL;
+ GtkWidget *widget;
+ GtkWidget *label;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+ if (widget == NULL)
+ return NULL;
+
+ if (i != 0)
+ return NULL;
+
+ expander = GTK_EXPANDER_ACCESSIBLE (action);
+
+ label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
+ if (GTK_IS_LABEL (label))
+ {
+ guint key_val;
+
+ key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
+ if (key_val != GDK_KEY_VoidSymbol)
+ return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
+ }
+
+ return return_value;
+}
+
+static const gchar *
+gtk_expander_accessible_action_get_name (AtkAction *action,
+ gint i)
+{
+ if (i != 0)
+ return NULL;
+
+ return "activate";
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+ iface->do_action = gtk_expander_accessible_do_action;
+ iface->get_n_actions = gtk_expander_accessible_get_n_actions;
+ iface->get_keybinding = gtk_expander_accessible_get_keybinding;
+ iface->get_name = gtk_expander_accessible_action_get_name;
+}
diff --git a/gtk/a11y/gtkexpanderaccessible.h b/gtk/a11y/gtkexpanderaccessible.h
new file mode 100644
index 0000000..986a9b3
--- /dev/null
+++ b/gtk/a11y/gtkexpanderaccessible.h
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library 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.
+ */
+
+#ifndef __GTK_EXPANDER_ACCESSIBLE_H__
+#define __GTK_EXPANDER_ACCESSIBLE_H__
+
+#include "gailcontainer.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_EXPANDER_ACCESSIBLE (gtk_expander_accessible_get_type ())
+#define GTK_EXPANDER_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_EXPANDER_ACCESSIBLE, GtkExpanderAccessible))
+#define GTK_EXPANDER_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_EXPANDER_ACCESSIBLE, GtkExpanderAccessibleClass))
+#define GTK_IS_EXPANDER_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_EXPANDER_ACCESSIBLE))
+#define GTK_IS_EXPANDER_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_EXPANDER_ACCESSIBLE))
+#define GTK_EXPANDER_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_EXPANDER_ACCESSIBLE, GtkExpanderAccessibleClass))
+
+typedef struct _GtkExpanderAccessible GtkExpanderAccessible;
+typedef struct _GtkExpanderAccessibleClass GtkExpanderAccessibleClass;
+
+struct _GtkExpanderAccessible
+{
+ GailContainer parent;
+};
+
+struct _GtkExpanderAccessibleClass
+{
+ GailContainerClass parent_class;
+};
+
+GType gtk_expander_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_EXPANDER_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkstatusbaraccessible.c b/gtk/a11y/gtkstatusbaraccessible.c
index a2edef9..404b1fa 100644
--- a/gtk/a11y/gtkstatusbaraccessible.c
+++ b/gtk/a11y/gtkstatusbaraccessible.c
@@ -24,7 +24,7 @@
#include "gtkstatusbaraccessible.h"
-G_DEFINE_TYPE (GtkStatusbarAccessible, gtk_statusbar_accessible, GAIL_TYPE_CONTAINER)
+G_DEFINE_TYPE (GtkStatusbarAccessible, gtk_statusbar_accessible, GTK_TYPE_BOX_ACCESSIBLE)
static void
text_changed (GtkStatusbar *statusbar,
diff --git a/gtk/a11y/gtkstatusbaraccessible.h b/gtk/a11y/gtkstatusbaraccessible.h
index 13b478a..941c04c 100644
--- a/gtk/a11y/gtkstatusbaraccessible.h
+++ b/gtk/a11y/gtkstatusbaraccessible.h
@@ -20,8 +20,7 @@
#ifndef __GTK_STATUSBAR_ACCESSIBLE_H__
#define __GTK_STATUSBAR_ACCESSIBLE_H__
-#include "gailcontainer.h"
-#include "gailtextutil.h"
+#include "gtkboxaccessible.h"
G_BEGIN_DECLS
@@ -37,12 +36,12 @@ typedef struct _GtkStatusbarAccessibleClass GtkStatusbarAccessibleClass;
struct _GtkStatusbarAccessible
{
- GailContainer parent;
+ GtkBoxAccessible parent;
};
struct _GtkStatusbarAccessibleClass
{
- GailContainerClass parent_class;
+ GtkBoxAccessibleClass parent_class;
};
GType gtk_statusbar_accessible_get_type (void);
diff --git a/gtk/gtkbox.c b/gtk/gtkbox.c
index 69b3d77..eacbabf 100644
--- a/gtk/gtkbox.c
+++ b/gtk/gtkbox.c
@@ -85,6 +85,7 @@
#include "gtktypebuiltins.h"
#include "gtkprivate.h"
#include "gtkintl.h"
+#include "a11y/gtkboxaccessible.h"
enum {
@@ -198,8 +199,6 @@ static void gtk_box_get_preferred_height_for_width (GtkWidget
gint *minimum_height,
gint *natural_height);
-static AtkObject *gtk_box_get_accessible (GtkWidget *widget);
-
G_DEFINE_TYPE_WITH_CODE (GtkBox, gtk_box, GTK_TYPE_CONTAINER,
G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE,
@@ -222,7 +221,6 @@ gtk_box_class_init (GtkBoxClass *class)
widget_class->get_preferred_width_for_height = gtk_box_get_preferred_width_for_height;
widget_class->compute_expand = gtk_box_compute_expand;
widget_class->direction_changed = gtk_box_direction_changed;
- widget_class->get_accessible = gtk_box_get_accessible;
container_class->add = gtk_box_add;
container_class->remove = gtk_box_remove;
@@ -316,6 +314,8 @@ gtk_box_class_init (GtkBoxClass *class)
GTK_PARAM_READWRITE));
g_type_class_add_private (object_class, sizeof (GtkBoxPrivate));
+
+ gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_BOX_ACCESSIBLE);
}
static void
@@ -1354,19 +1354,6 @@ gtk_box_get_preferred_height_for_width (GtkWidget *widget,
gtk_box_compute_size_for_orientation (box, width, minimum_height, natural_height);
}
-static AtkObject *
-gtk_box_get_accessible (GtkWidget *widget)
-{
- AtkObject *obj;
-
- obj = GTK_WIDGET_CLASS (gtk_box_parent_class)->get_accessible (widget);
-
- if (atk_object_get_role (obj) == ATK_ROLE_UNKNOWN)
- atk_object_set_role (obj, ATK_ROLE_FILLER);
-
- return obj;
-}
-
/**
* gtk_box_new:
* @orientation: the box's orientation.
diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c
index 2c33a1a..643edae 100644
--- a/gtk/gtkexpander.c
+++ b/gtk/gtkexpander.c
@@ -114,6 +114,7 @@
#include "gtkintl.h"
#include "gtkprivate.h"
#include "gtkdnd.h"
+#include "a11y/gtkexpanderaccessible.h"
#define DEFAULT_EXPANDER_SIZE 10
@@ -375,6 +376,8 @@ gtk_expander_class_init (GtkExpanderClass *klass)
NULL, NULL,
_gtk_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+
+ gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_EXPANDER_ACCESSIBLE);
}
static void
diff --git a/tests/a11y/about.txt b/tests/a11y/about.txt
index 59dc07d..c2c0fed 100644
--- a/tests/a11y/about.txt
+++ b/tests/a11y/about.txt
@@ -7,7 +7,7 @@ window1
<AtkComponent>
layer: window
alpha: 1
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
parent: window1
index: 0
@@ -16,9 +16,9 @@ window1
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-1
+ unnamed-GtkBoxAccessible-1
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 0
state: enabled sensitive showing vertical visible
toolkit: gail
@@ -27,7 +27,7 @@ window1
alpha: 1
unnamed-GtkImageAccessible-2
"icon"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 0
state: enabled sensitive showing visible
toolkit: gail
@@ -39,7 +39,7 @@ window1
image description: (null)
FancyPants
"label"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 1
name: FancyPants
state: enabled focusable multi-line sensitive showing visible
@@ -78,7 +78,7 @@ window1
wrap-mode: word
unnamed-GtkNotebookAccessible-3
"page tab list"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 2
state: enabled sensitive showing visible
toolkit: gail
@@ -95,7 +95,7 @@ window1
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-5
+ unnamed-GtkBoxAccessible-5
"filler"
index: 0
state: enabled sensitive showing vertical visible
@@ -105,7 +105,7 @@ window1
alpha: 1
0.99
"label"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 0
name: 0.99
state: enabled focusable multi-line sensitive showing visible
@@ -144,7 +144,7 @@ window1
wrap-mode: word
comments
"label"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 1
name: comments
state: enabled focusable multi-line sensitive showing visible
@@ -181,9 +181,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-6
+ unnamed-GtkBoxAccessible-6
"filler"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 2
state: enabled horizontal sensitive showing visible
toolkit: gail
@@ -192,7 +192,7 @@ window1
alpha: 1
Homepage
"label"
- parent: unnamed-GailContainer-6
+ parent: unnamed-GtkBoxAccessible-6
index: 0
name: Homepage
state: enabled focusable multi-line sensitive showing visible
@@ -231,7 +231,7 @@ window1
wrap-mode: word
no comments
"label"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 3
name: no comments
state: enabled focusable multi-line sensitive showing visible
@@ -270,7 +270,7 @@ window1
wrap-mode: word
This program comes with ABSOLUTELY NO WARRANTY; for details, visit http://www.gnu.org/licenses/gpl.html
"label"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 4
name: This program comes with ABSOLUTELY NO WARRANTY; for details, visit http://www.gnu.org/licenses/gpl.html
state: enabled focusable multi-line sensitive showing visible
@@ -307,9 +307,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-7
+ unnamed-GtkBoxAccessible-7
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
@@ -318,7 +318,7 @@ window1
alpha: 1
License
"toggle button"
- parent: unnamed-GailContainer-7
+ parent: unnamed-GtkBoxAccessible-7
index: 0
name: License
state: enabled focusable sensitive
@@ -365,7 +365,7 @@ window1
action 0 keybinding: <Alt>l
Credits
"toggle button"
- parent: unnamed-GailContainer-7
+ parent: unnamed-GtkBoxAccessible-7
index: 1
name: Credits
state: enabled focusable sensitive
@@ -412,7 +412,7 @@ window1
action 0 keybinding: <Alt>r
Close
"push button"
- parent: unnamed-GailContainer-7
+ parent: unnamed-GtkBoxAccessible-7
index: 2
name: Close
state: enabled focusable sensitive showing visible default
diff --git a/tests/a11y/appchooser.txt b/tests/a11y/appchooser.txt
index 213b8ff..c27d416 100644
--- a/tests/a11y/appchooser.txt
+++ b/tests/a11y/appchooser.txt
@@ -7,7 +7,7 @@ window1
<AtkComponent>
layer: window
alpha: 1
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
parent: window1
index: 0
@@ -16,18 +16,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-1
+ unnamed-GtkBoxAccessible-1
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 0
state: enabled sensitive showing vertical visible
toolkit: gail
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-2
+ unnamed-GtkBoxAccessible-2
"filler"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 0
state: enabled sensitive showing vertical visible
toolkit: gail
@@ -36,7 +36,7 @@ window1
alpha: 1
Select an application for "(null)" files
"label"
- parent: unnamed-GailContainer-2
+ parent: unnamed-GtkBoxAccessible-2
index: 0
name: Select an application for "(null)" files
state: enabled multi-line sensitive showing visible
@@ -73,9 +73,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-3
+ unnamed-GtkBoxAccessible-3
"filler"
- parent: unnamed-GailContainer-2
+ parent: unnamed-GtkBoxAccessible-2
index: 1
state: enabled sensitive showing vertical visible
toolkit: gail
@@ -84,7 +84,7 @@ window1
alpha: 1
unnamed-GtkScrolledWindowAccessible-4
"scroll pane"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 0
state: enabled focusable sensitive showing visible
toolkit: gail
@@ -425,7 +425,7 @@ Click "Show other applications", for more options, or "Find applications online"
minimum increment: 29.800000
Show other applications
"push button"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 1
name: Show other applications
state: enabled focusable sensitive showing visible
@@ -469,9 +469,9 @@ Click "Show other applications", for more options, or "Find applications online"
image description: (null)
<AtkAction>
action 0 name: click
- unnamed-GailContainer-10
+ unnamed-GtkBoxAccessible-10
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
@@ -480,7 +480,7 @@ Click "Show other applications", for more options, or "Find applications online"
alpha: 1
Select
"push button"
- parent: unnamed-GailContainer-10
+ parent: unnamed-GtkBoxAccessible-10
index: 0
name: Select
state: enabled focusable sensitive showing visible default
@@ -527,7 +527,7 @@ Click "Show other applications", for more options, or "Find applications online"
action 0 keybinding: <Alt>s
Cancel
"push button"
- parent: unnamed-GailContainer-10
+ parent: unnamed-GtkBoxAccessible-10
index: 1
name: Cancel
state: enabled focusable sensitive showing visible
diff --git a/tests/a11y/assistant.txt b/tests/a11y/assistant.txt
index 889f1c5..ce8e074 100644
--- a/tests/a11y/assistant.txt
+++ b/tests/a11y/assistant.txt
@@ -96,9 +96,9 @@ window1
image description: (null)
<AtkAction>
action 0 name: click
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
@@ -107,7 +107,7 @@ window1
alpha: 1
Close
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 0
name: Close
state: enabled focusable sensitive
@@ -154,7 +154,7 @@ window1
action 0 keybinding: <Alt>c
Cancel
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 1
name: Cancel
state: enabled focusable sensitive showing visible
@@ -201,7 +201,7 @@ window1
action 0 keybinding: <Alt>c
Finish
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 2
name: Finish
state: focusable
@@ -248,7 +248,7 @@ window1
action 0 keybinding: <Alt>f
Go Back
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 3
name: Go Back
state: enabled focusable sensitive
@@ -295,7 +295,7 @@ window1
action 0 keybinding: <Alt>b
Continue
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 4
name: Continue
state: focusable showing visible
@@ -342,7 +342,7 @@ window1
action 0 keybinding: <Alt>o
Apply
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 5
name: Apply
state: enabled focusable sensitive
diff --git a/tests/a11y/colorchooser.txt b/tests/a11y/colorchooser.txt
index a14baf7..f1f4428 100644
--- a/tests/a11y/colorchooser.txt
+++ b/tests/a11y/colorchooser.txt
@@ -7,7 +7,7 @@ window1
<AtkComponent>
layer: window
alpha: 1
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
parent: window1
index: 0
@@ -16,27 +16,27 @@ window1
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-1
- "filler"
- parent: unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-1
+ "color chooser"
+ parent: unnamed-GtkBoxAccessible-0
index: 0
state: enabled sensitive showing vertical visible
toolkit: gail
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-2
+ unnamed-GtkBoxAccessible-2
"filler"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 0
state: enabled horizontal sensitive showing visible
toolkit: gail
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-3
+ unnamed-GtkBoxAccessible-3
"filler"
- parent: unnamed-GailContainer-2
+ parent: unnamed-GtkBoxAccessible-2
index: 0
state: enabled sensitive showing vertical visible
toolkit: gail
@@ -45,7 +45,7 @@ window1
alpha: 1
unnamed-GailWidget-4
"color chooser"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 0
name: Color Wheel
description: Select the color you want from the outer ring. Select the darkness or lightness of that color using the inner triangle.
@@ -55,9 +55,9 @@ window1
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-5
+ unnamed-GtkBoxAccessible-5
"filler"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
@@ -66,14 +66,14 @@ window1
alpha: 1
unnamed-GtkFrameAccessible-6
"panel"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 0
state: enabled sensitive showing visible
toolkit: gail
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-7
+ unnamed-GtkBoxAccessible-7
"filler"
parent: unnamed-GtkFrameAccessible-6
index: 0
@@ -84,7 +84,7 @@ window1
alpha: 1
unnamed-GailWidget-8
"unknown"
- parent: unnamed-GailContainer-7
+ parent: unnamed-GtkBoxAccessible-7
index: 0
description: The previously-selected color, for comparison to the color you're selecting now.
state: enabled sensitive showing visible
@@ -94,7 +94,7 @@ window1
alpha: 1
unnamed-GailWidget-9
"unknown"
- parent: unnamed-GailContainer-7
+ parent: unnamed-GtkBoxAccessible-7
index: 1
description: The color you've chosen.
state: enabled sensitive showing visible
@@ -104,7 +104,7 @@ window1
alpha: 1
unnamed-GailButton-10
"push button"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 1
description: Click the eyedropper, then click a color anywhere on your screen to select that color.
state: enabled focusable sensitive showing visible
@@ -121,9 +121,9 @@ window1
image description: (null)
<AtkAction>
action 0 name: click
- unnamed-GailContainer-11
+ unnamed-GtkBoxAccessible-11
"filler"
- parent: unnamed-GailContainer-2
+ parent: unnamed-GtkBoxAccessible-2
index: 1
state: enabled sensitive showing vertical visible
toolkit: gail
@@ -132,7 +132,7 @@ window1
alpha: 1
unnamed-GailContainer-12
"panel"
- parent: unnamed-GailContainer-11
+ parent: unnamed-GtkBoxAccessible-11
index: 0
state: enabled sensitive showing visible
toolkit: gail
@@ -865,9 +865,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-15
+ unnamed-GtkBoxAccessible-15
"filler"
- parent: unnamed-GailContainer-11
+ parent: unnamed-GtkBoxAccessible-11
index: 1
state: enabled sensitive vertical
toolkit: gail
@@ -876,7 +876,7 @@ window1
alpha: 1
Palette:
"label"
- parent: unnamed-GailContainer-15
+ parent: unnamed-GtkBoxAccessible-15
index: 0
name: Palette:
label-for: unnamed-GailWidget-16
@@ -916,7 +916,7 @@ window1
wrap-mode: word
unnamed-GailContainer-17
"panel"
- parent: unnamed-GailContainer-15
+ parent: unnamed-GtkBoxAccessible-15
index: 1
state: enabled sensitive visible
toolkit: gail
@@ -1304,9 +1304,9 @@ window1
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-57
+ unnamed-GtkBoxAccessible-57
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
@@ -1315,7 +1315,7 @@ window1
alpha: 1
Help
"push button"
- parent: unnamed-GailContainer-57
+ parent: unnamed-GtkBoxAccessible-57
index: 0
name: Help
state: enabled focusable sensitive
@@ -1362,7 +1362,7 @@ window1
action 0 keybinding: <Alt>h
OK
"push button"
- parent: unnamed-GailContainer-57
+ parent: unnamed-GtkBoxAccessible-57
index: 1
name: OK
state: enabled focusable sensitive showing visible default
@@ -1409,7 +1409,7 @@ window1
action 0 keybinding: <Alt>o
Cancel
"push button"
- parent: unnamed-GailContainer-57
+ parent: unnamed-GtkBoxAccessible-57
index: 2
name: Cancel
state: enabled focusable sensitive showing visible
diff --git a/tests/a11y/infobar.txt b/tests/a11y/infobar.txt
index 9214820..097ac7b 100644
--- a/tests/a11y/infobar.txt
+++ b/tests/a11y/infobar.txt
@@ -63,7 +63,7 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
parent: bar1
index: 1
diff --git a/tests/a11y/messagedialog.txt b/tests/a11y/messagedialog.txt
index e95bdfb..bb52edd 100644
--- a/tests/a11y/messagedialog.txt
+++ b/tests/a11y/messagedialog.txt
@@ -7,7 +7,7 @@ window1
<AtkComponent>
layer: window
alpha: 1
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
parent: window1
index: 0
@@ -16,9 +16,9 @@ window1
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-1
+ unnamed-GtkBoxAccessible-1
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 0
state: enabled horizontal sensitive showing visible
toolkit: gail
@@ -27,7 +27,7 @@ window1
alpha: 1
unnamed-GtkImageAccessible-2
"icon"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 0
name: Information
state: enabled sensitive showing visible
@@ -38,9 +38,9 @@ window1
<AtkImage>
image size: 48 x 48
image description: (null)
- unnamed-GailContainer-3
+ unnamed-GtkBoxAccessible-3
"filler"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 1
state: enabled sensitive showing vertical visible
toolkit: gail
@@ -49,7 +49,7 @@ window1
alpha: 1
Information
"label"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 0
name: Information
state: enabled focusable multi-line sensitive showing visible
@@ -88,7 +88,7 @@ window1
wrap-mode: word
More Information
"label"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 1
name: More Information
state: enabled focusable multi-line sensitive showing visible
@@ -125,9 +125,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-4
+ unnamed-GtkBoxAccessible-4
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
diff --git a/tests/a11y/placeholder-text.txt b/tests/a11y/placeholder-text.txt
index a995de2..1b4cfb6 100644
--- a/tests/a11y/placeholder-text.txt
+++ b/tests/a11y/placeholder-text.txt
@@ -7,7 +7,7 @@ window1
layer: window
alpha: 1
box1
- "panel"
+ "filler"
parent: window1
index: 0
state: enabled sensitive showing vertical visible
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]