aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGilbert Fang <gilbert.fang@sun.com>2003-07-31 12:04:04 +0800
committerGilbert Fang <gilbertfang@src.gnome.org>2003-07-31 12:04:04 +0800
commitc8aef824052806516fbdaadd37a2a885d9cf02fb (patch)
treea557649a5f0bf4874986ebbc63a942a2d98330d1
parentf17c49a24230bd7994535a23f20610e9f75f64eb (diff)
downloadgsoc2013-evolution-c8aef824052806516fbdaadd37a2a885d9cf02fb.tar.gz
gsoc2013-evolution-c8aef824052806516fbdaadd37a2a885d9cf02fb.tar.zst
gsoc2013-evolution-c8aef824052806516fbdaadd37a2a885d9cf02fb.zip
add libgal-a11y-2.0.so dependency change the build sequence for a11y part
2003-07-31 Gilbert Fang <gilbert.fang@sun.com> * gal-2.0.pc.in: add libgal-a11y-2.0.so dependency * gal/Makefile.am: change the build sequence for a11y part * gal/a11y/Makefile.am: change a11y to build as normal so instead of gtk module. * gal/a11y/gal-a11y-factory.h: marcos for a11y factory generation. svn path=/trunk/; revision=22035
-rw-r--r--a11y/gal-a11y-factory.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/a11y/gal-a11y-factory.h b/a11y/gal-a11y-factory.h
new file mode 100644
index 0000000000..22da85eca8
--- /dev/null
+++ b/a11y/gal-a11y-factory.h
@@ -0,0 +1,94 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* GAL A11Y
+ * gal-a11y-factory.h
+ *
+ * Copyright 2003 Ximian 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.
+ *
+ * Authors:
+ * Gilbert Fang <gilbert.fang@sun.com>, Sun Microsystem Inc. 2003.
+ *
+ * This file is mainly from the gailfactory.h of GAIL.
+ */
+
+#ifndef _GAL_A11Y_FACTORY_H__
+#define _GAL_A11Y_FACTORY_H__
+
+#include <glib-object.h>
+#include <atk/atkobject.h>
+#include <atk/atkobjectfactory.h>
+
+#define GAL_A11Y_FACTORY(type, type_as_function, opt_create_accessible) \
+ \
+static GType \
+type_as_function ## _factory_get_accessible_type (void) \
+{ \
+ return type; \
+} \
+ \
+static AtkObject* \
+type_as_function ## _factory_create_accessible (GObject *obj) \
+{ \
+ GtkWidget *widget; \
+ AtkObject *accessible; \
+ \
+ g_return_val_if_fail (GTK_IS_WIDGET (obj), NULL); \
+ \
+ widget = GTK_WIDGET (obj); \
+ \
+ accessible = opt_create_accessible (widget); \
+ \
+ return accessible; \
+} \
+ \
+static void \
+type_as_function ## _factory_class_init (AtkObjectFactoryClass *klass) \
+{ \
+ klass->create_accessible = type_as_function ## _factory_create_accessible; \
+ klass->get_accessible_type = type_as_function ## _factory_get_accessible_type;\
+} \
+ \
+static GType \
+type_as_function ## _factory_get_type (void) \
+{ \
+ static GType t = 0; \
+ \
+ if (!t) \
+ { \
+ char *name; \
+ static const GTypeInfo tinfo = \
+ { \
+ sizeof (AtkObjectFactoryClass), \
+ NULL, NULL, (GClassInitFunc) type_as_function ## _factory_class_init, \
+ NULL, NULL, sizeof (AtkObjectFactory), 0, NULL, NULL \
+ }; \
+ \
+ name = g_strconcat (g_type_name (type), "Factory", NULL); \
+ t = g_type_register_static ( \
+ ATK_TYPE_OBJECT_FACTORY, name, &tinfo, 0); \
+ g_free (name); \
+ } \
+ \
+ return t; \
+}
+
+#define GAL_A11Y_WIDGET_SET_FACTORY(widget_type, type_as_function) \
+ atk_registry_set_factory_type (atk_get_default_registry (), \
+ widget_type, \
+ type_as_function ## _factory_get_type ())
+
+#endif /* _GAL_A11Y_FACTORY_H__ */