diff options
Diffstat (limited to 'widget/gtk/maiRedundantObjectFactory.c')
-rw-r--r-- | widget/gtk/maiRedundantObjectFactory.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/widget/gtk/maiRedundantObjectFactory.c b/widget/gtk/maiRedundantObjectFactory.c new file mode 100644 index 0000000000..ce086e20af --- /dev/null +++ b/widget/gtk/maiRedundantObjectFactory.c @@ -0,0 +1,81 @@ +/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:expandtab:shiftwidth=2:tabstop=2: + */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include <atk/atk.h> +#include "maiRedundantObjectFactory.h" + +static void mai_redundant_object_factory_class_init( + maiRedundantObjectFactoryClass* klass); + +static AtkObject* mai_redundant_object_factory_create_accessible(GObject* obj); +static GType mai_redundant_object_factory_get_accessible_type(void); + +GType mai_redundant_object_factory_get_type(void) { + static GType type = 0; + + if (!type) { + static const GTypeInfo tinfo = { + sizeof(maiRedundantObjectFactoryClass), + (GBaseInitFunc)NULL, /* base init */ + (GBaseFinalizeFunc)NULL, /* base finalize */ + (GClassInitFunc) + mai_redundant_object_factory_class_init, /* class init */ + (GClassFinalizeFunc)NULL, /* class finalize */ + NULL, /* class data */ + sizeof(maiRedundantObjectFactory), /* instance size */ + 0, /* nb preallocs */ + (GInstanceInitFunc)NULL, /* instance init */ + NULL /* value table */ + }; + type = g_type_register_static(ATK_TYPE_OBJECT_FACTORY, + "MaiRedundantObjectFactory", &tinfo, 0); + } + + return type; +} + +static void mai_redundant_object_factory_class_init( + maiRedundantObjectFactoryClass* klass) { + AtkObjectFactoryClass* class = ATK_OBJECT_FACTORY_CLASS(klass); + + class->create_accessible = mai_redundant_object_factory_create_accessible; + class->get_accessible_type = mai_redundant_object_factory_get_accessible_type; +} + +/** + * mai_redundant_object_factory_new: + * + * Creates an instance of an #AtkObjectFactory which generates primitive + * (non-functioning) #AtkObjects. + * + * Returns: an instance of an #AtkObjectFactory + **/ +AtkObjectFactory* mai_redundant_object_factory_new() { + GObject* factory; + + factory = g_object_new(mai_redundant_object_factory_get_type(), NULL); + + g_return_val_if_fail(factory != NULL, NULL); + return ATK_OBJECT_FACTORY(factory); +} + +static AtkObject* mai_redundant_object_factory_create_accessible(GObject* obj) { + AtkObject* accessible; + + g_return_val_if_fail(obj != NULL, NULL); + + accessible = g_object_new(ATK_TYPE_OBJECT, NULL); + g_return_val_if_fail(accessible != NULL, NULL); + + accessible->role = ATK_ROLE_REDUNDANT_OBJECT; + + return accessible; +} + +static GType mai_redundant_object_factory_get_accessible_type() { + return mai_redundant_object_factory_get_type(); +} |