aboutsummaryrefslogtreecommitdiffstats
path: root/libgnomecanvas/gailcanvas.c
diff options
context:
space:
mode:
authorMike Gorse <mgorse@suse.com>2014-03-13 00:22:54 +0800
committerMilan Crha <mcrha@redhat.com>2014-03-13 00:22:54 +0800
commit03ca50dbe3809c7321ab7038b0d62788552d501d (patch)
tree041bff6b0edd258bb49291117892ebb30f8be8d8 /libgnomecanvas/gailcanvas.c
parentd8ac0f010b636a675e279da9a1fcfc5bc5f03789 (diff)
downloadgsoc2013-evolution-03ca50dbe3809c7321ab7038b0d62788552d501d.tar
gsoc2013-evolution-03ca50dbe3809c7321ab7038b0d62788552d501d.tar.gz
gsoc2013-evolution-03ca50dbe3809c7321ab7038b0d62788552d501d.tar.bz2
gsoc2013-evolution-03ca50dbe3809c7321ab7038b0d62788552d501d.tar.lz
gsoc2013-evolution-03ca50dbe3809c7321ab7038b0d62788552d501d.tar.xz
gsoc2013-evolution-03ca50dbe3809c7321ab7038b0d62788552d501d.tar.zst
gsoc2013-evolution-03ca50dbe3809c7321ab7038b0d62788552d501d.zip
Bug #722938 - Adapt a11y code for newest gtk
As of gtk+ 3.2, AtkObjectFactories are no longer used to generate accessibles for gtk widgets, so our custom atk classes need refactoring.
Diffstat (limited to 'libgnomecanvas/gailcanvas.c')
-rw-r--r--libgnomecanvas/gailcanvas.c81
1 files changed, 4 insertions, 77 deletions
diff --git a/libgnomecanvas/gailcanvas.c b/libgnomecanvas/gailcanvas.c
index 6af1a0745a..61a91246dc 100644
--- a/libgnomecanvas/gailcanvas.c
+++ b/libgnomecanvas/gailcanvas.c
@@ -29,7 +29,6 @@
#include "gailcanvasitemfactory.h"
#include "gailcanvaswidgetfactory.h"
-static void gail_canvas_class_init (GailCanvasClass *klass);
static void gail_canvas_real_initialize (AtkObject *obj,
gpointer data);
@@ -40,91 +39,20 @@ static AtkObject * gail_canvas_ref_child (AtkObject *obj,
static void adjustment_changed (GtkAdjustment *adjustment,
GnomeCanvas *canvas);
-static AtkObject * gail_canvas_factory_create_accessible (GObject *obj);
-
-static GType gail_canvas_factory_get_accessible_type (void);
-
-G_DEFINE_TYPE (GailCanvasFactory,
- gail_canvas_factory,
- ATK_TYPE_OBJECT_FACTORY);
-
-static void
-gail_canvas_factory_init (GailCanvasFactory *foo)
-{
- ;
-}
+G_DEFINE_TYPE (GailCanvas, gail_canvas, GTK_TYPE_CONTAINER_ACCESSIBLE)
static void
-gail_canvas_factory_class_init (GailCanvasFactoryClass *klass)
+gail_canvas_init (GailCanvas *canvas)
{
- AtkObjectFactoryClass *class = ATK_OBJECT_FACTORY_CLASS (klass);
-
- class->create_accessible = gail_canvas_factory_create_accessible;
- class->get_accessible_type = gail_canvas_factory_get_accessible_type;
}
-static AtkObject *
-gail_canvas_factory_create_accessible (GObject *obj)
-{
- return gail_canvas_new (GTK_WIDGET (obj));
-}
-
-static GType
-gail_canvas_factory_get_accessible_type (void)
-{
- return GAIL_TYPE_CANVAS;
-}
-
-GType
-gail_canvas_get_type (void)
-{
- static GType type = 0;
-
- if (!type)
- {
- GType parent_type = g_type_parent (GNOME_TYPE_CANVAS);
- AtkObjectFactory *factory = atk_registry_get_factory (
- atk_get_default_registry (),
- parent_type);
- GType atkobject_parent_type = atk_object_factory_get_accessible_type (factory);
- GTypeQuery query;
- static GTypeInfo tinfo =
- {
- 0, /* class size */
- (GBaseInitFunc) NULL, /* base init */
- (GBaseFinalizeFunc) NULL, /* base finalize */
- (GClassInitFunc) gail_canvas_class_init, /* class init */
- (GClassFinalizeFunc) NULL, /* class finalize */
- NULL, /* class data */
- 0, /* instance size */
- 0, /* nb preallocs */
- (GInstanceInitFunc) NULL, /* instance init */
- NULL /* value table */
- };
- g_type_query (atkobject_parent_type, &query);
- tinfo.class_size = query.class_size;
- tinfo.instance_size = query.instance_size;
-
- /* use the size obtained from the parent type factory */
- type = g_type_register_static (atkobject_parent_type,
- "GailCanvas", &tinfo, 0);
- }
-
- return type;
-}
-
-static AtkObjectClass *parent_atk_object_class;
-
/**
* Tell ATK how to create the appropriate AtkObject peers
**/
void
-gail_canvas_init (void)
+gail_canvas_a11y_init (void)
{
atk_registry_set_factory_type (atk_get_default_registry (),
- GNOME_TYPE_CANVAS,
- gail_canvas_factory_get_type ());
- atk_registry_set_factory_type (atk_get_default_registry (),
GNOME_TYPE_CANVAS_GROUP,
gail_canvas_group_factory_get_type ());
atk_registry_set_factory_type (atk_get_default_registry (),
@@ -142,7 +70,6 @@ static void
gail_canvas_class_init (GailCanvasClass *klass)
{
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
- parent_atk_object_class = g_type_class_peek_parent (klass);
class->get_n_children = gail_canvas_get_n_children;
class->ref_child = gail_canvas_ref_child;
@@ -172,7 +99,7 @@ gail_canvas_real_initialize (AtkObject *obj,
GnomeCanvas *canvas;
GtkAdjustment *adj;
- parent_atk_object_class->initialize (obj, data);
+ ATK_OBJECT_CLASS (gail_canvas_parent_class)->initialize (obj, data);
canvas = GNOME_CANVAS (data);