[g-a-devel]gail patch ...



Hi Padraig,

	This adds support for the (pending) gnome program hooks for
accessibility so we can dynamically enable / disable it on the fly and
avoid GTK_MODULES hacks.

	May I commit ?

	Also; I'm concerned that work is going into 'ferret' inside gail, but
that this would be best placed to test the hierarchy inside at-spi or
even libgail-gnome, since then we can fully test the framework. Are
there any plans to move it there ? it looks like it duplicates and
out-classes the festival support in simple-at.

	Regards,

		Michael.

Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/gail/ChangeLog,v
retrieving revision 1.367
diff -u -p -u -r1.367 ChangeLog
--- ChangeLog	2002/01/17 15:59:02	1.367
+++ ChangeLog	2002/01/18 12:02:03
@@ -1,4 +1,11 @@
 (top)
+2002-01-14  Michael Meeks  <michael ximian com>
+
+	* gail/gail.c (gtk_module_init): split out into
+	(gnome_accessibility_module_init): here.
+	(gnome_accessibility_module_shutdown): stub.
+	guard against double inits.
+
 2002-01-17  Padraig O'Briain  <padraig obriain sun com>
 
 	* gail/gailwidget.c:
Index: configure.in
===================================================================
RCS file: /cvs/gnome/gail/configure.in,v
retrieving revision 1.14
diff -u -p -u -r1.14 configure.in
--- configure.in	2002/01/11 21:03:31	1.14
+++ configure.in	2002/01/18 12:02:03
@@ -80,7 +80,9 @@ ATK_REQUIRED_VERSION=0.7
 GTK_REQUIRED_VERSION=1.3.11
 LIBGNOMECANVAS_REQUIRED_VERSION=1.105.0
 
-PKG_CHECK_MODULES(DEPS, $ATK_PACKAGES >= $ATK_REQUIRED_VERSION $GTK_PACKAGES >= $GTK_REQUIRED_VERSION $LIBGNOMECANVAS_PACKAGES >= $LIBGNOMECANVAS_REQUIRED_VERSION)
+PKG_CHECK_MODULES(DEPS, $ATK_PACKAGES >= $ATK_REQUIRED_VERSION \
+	$GTK_PACKAGES >= $GTK_REQUIRED_VERSION \
+	$LIBGNOMECANVAS_PACKAGES >= $LIBGNOMECANVAS_REQUIRED_VERSION)
 
 old_LIBS="$LIBS"
 dnl Checks for inet libraries:
Index: gail/gail.c
===================================================================
RCS file: /cvs/gnome/gail/gail/gail.c,v
retrieving revision 1.53
diff -u -p -u -r1.53 gail.c
--- gail/gail.c	2002/01/15 10:40:29	1.53
+++ gail/gail.c	2002/01/18 12:02:03
@@ -269,15 +269,26 @@ gail_focus_tracker_init ()
     }
 }
 
-int
-gtk_module_init(gint *argc, char** argv[])
+/* For automatic libgnome init */
+extern void gnome_accessibility_module_init     (void);
+extern void gnome_accessibility_module_shutdown (void);
+
+static int gail_initialized = FALSE;
+
+void
+gnome_accessibility_module_init (void)
 {
-  AtkRegistry* default_registry;
-  gpointer data;
+  AtkRegistry *default_registry;
 
-  g_print("GTK Accessibilty Module loaded\n");
+  if (gail_initialized)
+    {
+      return;
+    }
+  gail_initialized = TRUE;
 
-  default_registry = atk_get_default_registry();
+  g_print("GTK Accessibilty Module initialized\n");
+
+  default_registry = atk_get_default_registry ();
   atk_registry_set_factory_type (default_registry, GTK_TYPE_WIDGET, 
                                  GAIL_TYPE_WIDGET_FACTORY);
   atk_registry_set_factory_type (default_registry, GTK_TYPE_CONTAINER, 
@@ -370,8 +381,27 @@ gtk_module_init(gint *argc, char** argv[
   atk_focus_tracker_init (gail_focus_tracker_init);
 
   /* Initialize the GailUtility class */
-  data = g_type_class_ref (GAIL_TYPE_UTIL);
-  g_type_class_unref (data);
+  g_type_class_unref (g_type_class_ref (GAIL_TYPE_UTIL));
+}
+
+void
+gnome_accessibility_module_shutdown (void)
+{
+  if (!gail_initialized)
+    {
+      return;
+    }
+  gail_initialized = FALSE;
+
+  g_print("Gtk Accessibilty Module shutdown\n");
+
+  /* FIXME: de-register the factory types so we can unload ? */
+}
+
+int
+gtk_module_init (gint *argc, char** argv[])
+{
+  gnome_accessibility_module_init ();
 
   return 0;
 }

-- 
 mmeeks gnu org  <><, Pseudo Engineer, itinerant idiot




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]