diff options
author | Yuedong Du <yuedong.du@sun.com> | 2003-12-17 10:35:20 +0800 |
---|---|---|
committer | Yuedong Du <york@src.gnome.org> | 2003-12-17 10:35:20 +0800 |
commit | 0a13fd3702b265298268ece517c3c99e519c7b79 (patch) | |
tree | 00820c3f4c07e0a5d335f425c5f41334e776f2fb /a11y/e-table/gal-a11y-e-table-click-to-add-factory.c | |
parent | e12d64b4eb485713e28eb1b5da075343fc715ea5 (diff) | |
download | gsoc2013-evolution-0a13fd3702b265298268ece517c3c99e519c7b79.tar gsoc2013-evolution-0a13fd3702b265298268ece517c3c99e519c7b79.tar.gz gsoc2013-evolution-0a13fd3702b265298268ece517c3c99e519c7b79.tar.bz2 gsoc2013-evolution-0a13fd3702b265298268ece517c3c99e519c7b79.tar.lz gsoc2013-evolution-0a13fd3702b265298268ece517c3c99e519c7b79.tar.xz gsoc2013-evolution-0a13fd3702b265298268ece517c3c99e519c7b79.tar.zst gsoc2013-evolution-0a13fd3702b265298268ece517c3c99e519c7b79.zip |
Fixed bug 51917, add atk support for ClickToAdd
2003-12-16 Yuedong Du <yuedong.du@sun.com>
Fixed bug 51917, add atk support for ClickToAdd
* gal/a11y/e-table/Makefile.am: add files.
* gal/a11y/e-table/gal-a11y-e-table-click-to-add-factory.c:
(gal_a11y_e_table_click_to_add_factory_get_accessible_type),
(gal_a11y_e_table_click_to_add_factory_create_accessible),
(gal_a11y_e_table_click_to_add_factory_class_init),
(gal_a11y_e_table_click_to_add_factory_init),
(gal_a11y_e_table_click_to_add_factory_get_type): factory
for ClickToAdd
* gal/a11y/e-table/gal-a11y-e-table-click-to-add-factory.h:
ditto
* gal/a11y/e-table/gal-a11y-e-table-click-to-add.c:
(etcta_get_n_actions), (etcta_get_description),
(etcta_action_get_name), (idle_do_action), (etcta_do_action),
(atk_action_interface_init): a "click" action interface.
(etcta_get_name),
(etcta_get_n_children), (etcta_ref_child): create accessible
according to which child is available. Either rect or row.
(etcta_class_init),
(etcta_init), (gal_a11y_e_table_click_to_add_get_type),
(etcta_event): listen to canvas event, emit children-changed signal
when it found rect/row was changed.
(gal_a11y_e_table_click_to_add_new):
* gal/a11y/e-table/gal-a11y-e-table-click-to-add.h:
* gal/a11y/e-table/gal-a11y-e-table-item-factory.c:
(gal_a11y_e_table_item_factory_create_accessible):
* gal/a11y/e-table/gal-a11y-e-table.c: (init_child_item),
(et_get_n_children), (et_ref_child): change the trick way to
create a11y object for a table item. Because ClickToAdd is also
a table item, previous way do not work for clicktoadd.
* gal/e-table/e-table-click-to-add.c: (etcta_class_init):
atk_register the new a11y factory.
svn path=/trunk/; revision=23956
Diffstat (limited to 'a11y/e-table/gal-a11y-e-table-click-to-add-factory.c')
-rw-r--r-- | a11y/e-table/gal-a11y-e-table-click-to-add-factory.c | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/a11y/e-table/gal-a11y-e-table-click-to-add-factory.c b/a11y/e-table/gal-a11y-e-table-click-to-add-factory.c new file mode 100644 index 0000000000..4efc179200 --- /dev/null +++ b/a11y/e-table/gal-a11y-e-table-click-to-add-factory.c @@ -0,0 +1,88 @@ +/* + * Authors: Yuedong Du <yuedong.du@sun.com> + * + * Copyright (C) 2003 Ximian, Inc. + */ + +#include <config.h> +#include "gal-a11y-e-table-click-to-add-factory.h" +#include "gal-a11y-e-table-click-to-add.h" +#include "gal-a11y-e-table.h" +#include <gal/e-table/e-table.h> +#include <gal/e-table/e-table-click-to-add.h> +#include <atk/atk.h> + + +#define CS_CLASS(factory) (G_TYPE_INSTANCE_GET_CLASS ((factory), C_TYPE_STREAM, GalA11yETableClickToAddFactoryClass)) +static AtkObjectFactoryClass *parent_class; +#define PARENT_TYPE (ATK_TYPE_OBJECT_FACTORY) + +/* Static functions */ + +static GType +gal_a11y_e_table_click_to_add_factory_get_accessible_type (void) +{ + return GAL_A11Y_TYPE_E_TABLE_CLICK_TO_ADD; +} + +static AtkObject* +gal_a11y_e_table_click_to_add_factory_create_accessible (GObject *obj) +{ + AtkObject * atk_object; + + g_return_if_fail (E_IS_TABLE_CLICK_TO_ADD(obj)); + + atk_object = gal_a11y_e_table_click_to_add_new (obj); + + return atk_object; +} + +static void +gal_a11y_e_table_click_to_add_factory_class_init (GalA11yETableClickToAddFactoryClass *klass) +{ + AtkObjectFactoryClass *factory_class = ATK_OBJECT_FACTORY_CLASS (klass); + + parent_class = g_type_class_ref (PARENT_TYPE); + + factory_class->create_accessible = gal_a11y_e_table_click_to_add_factory_create_accessible; + factory_class->get_accessible_type = gal_a11y_e_table_click_to_add_factory_get_accessible_type; +} + +static void +gal_a11y_e_table_click_to_add_factory_init (GalA11yETableClickToAddFactory *factory) +{ +} + +/** + * gal_a11y_e_table_factory_get_type: + * @void: + * + * Registers the &GalA11yETableFactory class if necessary, and returns the type ID + * associated to it. + * + * Return value: The type ID of the &GalA11yETableFactory class. + **/ +GType +gal_a11y_e_table_click_to_add_factory_get_type (void) +{ + static GType type = 0; + + if (!type) { + GTypeInfo info = { + sizeof (GalA11yETableClickToAddFactoryClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) gal_a11y_e_table_click_to_add_factory_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (GalA11yETableClickToAddFactory), + 0, + (GInstanceInitFunc) gal_a11y_e_table_click_to_add_factory_init, + NULL /* value_table */ + }; + + type = g_type_register_static (PARENT_TYPE, "GalA11yETableClickToAddFactory", &info, 0); + } + + return type; +} |