
Index: gal-2.0.pc.in
===================================================================
RCS file: /cvs/gnome/gal/gal-2.0.pc.in,v
retrieving revision 1.4
diff -u -r1.4 gal-2.0.pc.in
--- gal-2.0.pc.in	21 Jan 2003 16:48:00 -0000	1.4
+++ gal-2.0.pc.in	31 Jul 2003 03:49:01 -0000
@@ -8,5 +8,5 @@
 Version: @VERSION@
 Requires: gtk+-2.0 libxml-2.0 libglade-2.0 libgnomeprint-2.2
 
-Libs: -L${libdir} -lgal-2.0
+Libs: -L${libdir} -lgal-2.0 -lgal-a11y-2.0
 Cflags: -I${includedir}/gal-2.0
Index: gal/Makefile.am
===================================================================
RCS file: /cvs/gnome/gal/gal/Makefile.am,v
retrieving revision 1.67
diff -u -r1.67 Makefile.am
--- gal/Makefile.am	28 Jul 2003 16:36:10 -0000	1.67
+++ gal/Makefile.am	31 Jul 2003 03:49:07 -0000
@@ -1,5 +1,5 @@
 nonui_subdirs = util
-ui_subdirs    = widgets e-table e-text menus shortcut-bar . a11y
+ui_subdirs    = widgets e-table e-text menus shortcut-bar a11y
 
 SUBDIRS = $(nonui_subdirs) $(ui_subdirs) 
 
@@ -16,4 +16,5 @@
 		   e-text/libetext.la \
 		   menus/libgalmenus.la \
 		   shortcut-bar/libshortcut-bar.la \
+		   a11y/libgal-a11y-2.0.la		\
 		   $(EXTRA_GNOME_LIBS)
Index: gal/a11y/Makefile.am
===================================================================
RCS file: /cvs/gnome/gal/gal/a11y/Makefile.am,v
retrieving revision 1.3
diff -u -r1.3 Makefile.am
--- gal/a11y/Makefile.am	3 May 2003 17:05:28 -0000	1.3
+++ gal/a11y/Makefile.am	31 Jul 2003 03:49:10 -0000
@@ -7,28 +7,29 @@
 	$(GNOME_BONOBO_CFLAGS)			\
 	$(GNOME_INCLUDEDIR)			\
 	$(ICONV_CFLAGS)				\
-        -DG_LOG_DOMAIN=\"gal-a11y\"
+	-DGTK_DISABLE_DEPRECATED=1		\
+	-DGDK_DISABLE_DEPRECATED=1 		\
+	-DG_DISABLE_DEPRECATED=1		\
+	-DGNOME_DISABLE_DEPRECATED=1       	\
+	-DG_LOG_DOMAIN=\"gal-a11y\"
 
-module_LTLIBRARIES = libgal-a11y-2.0.la
 
-moduledir = $(libdir)/gtk-2.0/modules
+lib_LTLIBRARIES = libgal-a11y-2.0.la
 
 libgal_a11y_2_0_la_LDFLAGS =    \
-	-rpath $(moduledir) -module -avoid-version -no-undefined \
+	-avoid-version -no-undefined \
         @LDFLAGS@
 
 libgal_a11y_2_0_la_SOURCES =	\
-	gal-a11y-util.c		\
-	init.c
+	gal-a11y-util.c
 
 libgal_a11y_2_0includedir = $(includedir)/gal-$(GAL_API_VERSION)/gal/a11y
 
 libgal_a11y_2_0include_HEADERS =		\
-	gal-a11y-util.h
+	gal-a11y-util.h			\
+	gal-a11y-factory.h
 
 
 libgal_a11y_2_0_la_LIBADD =		\
-	e-table/libgal-a11y-etable.la	\
 	e-text/libgal-a11y-etext.la	\
-	$(top_builddir)/gal/libgal-2.0.la	\
 	$(EXTRA_GNOME_LIBS)
--- /dev/null	2002-08-31 07:31:37.000000000 +0800
+++ gal/a11y/gal-a11y-factory.h	2003-07-31 11:08:09.000000000 +0800
@@ -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__ */
