]> Pileus Git - ~andy/gtk/commitdiff
Convert GailImage to GtkImageAccessible
authorMatthias Clasen <mclasen@redhat.com>
Mon, 27 Jun 2011 03:16:26 +0000 (23:16 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 5 Jul 2011 20:08:53 +0000 (16:08 -0400)
gtk/a11y/Makefile.am
gtk/a11y/gail.c
gtk/a11y/gailimage.c [deleted file]
gtk/a11y/gailimage.h [deleted file]
gtk/a11y/gtkimageaccessible.c [new file with mode: 0644]
gtk/a11y/gtkimageaccessible.h [new file with mode: 0644]
gtk/gtkimage.c
tests/a11y/about.txt
tests/a11y/messagedialog.txt

index 9f70e2b9f3c0e7e35ef353604d31e692eabfddcf..d025add7d199bab0640b33eff591f9dab265a96f 100644 (file)
@@ -19,7 +19,7 @@ gail_c_sources =                      \
        gtkentryaccessible.c            \
        gailexpander.c                  \
        gtkframeaccessible.c            \
-       gailimage.c                     \
+       gtkimageaccessible.c            \
        gailimagecell.c                 \
        gtklabelaccessible.c            \
        gaillinkbutton.c                \
@@ -71,7 +71,7 @@ gail_private_h_sources =              \
        gailexpander.h                  \
        gailfactory.h                   \
        gtkframeaccessible.h            \
-       gailimage.h                     \
+       gtkimageaccessible.h            \
        gailimagecell.h                 \
        gtklabelaccessible.h            \
        gaillinkbutton.h                \
index 46b7c4516414b492136ceffe00a6178226231447..93751f93009850bcf429e16472f03029b26502c8 100644 (file)
@@ -32,7 +32,6 @@
 #include "gailcontainer.h"
 #include "gailcontainercell.h"
 #include "gailexpander.h"
-#include "gailimage.h"
 #include "gailimagecell.h"
 #include "gaillinkbutton.h"
 #include "gailmenu.h"
@@ -107,7 +106,6 @@ GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_BUTTON, GailButton, gail_button, GTK_TYPE_BUTT
 GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_LINK_BUTTON, GailLinkButton, gail_link_button, GTK_TYPE_LINK_BUTTON)
 GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_MENU_ITEM, GailMenuItem, gail_menu_item, gail_menu_item_new)
 GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_TOGGLE_BUTTON, GailToggleButton, gail_toggle_button, GTK_TYPE_TOGGLE_BUTTON)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_IMAGE, GailImage, gail_image, GTK_TYPE_IMAGE)
 GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_COMBO_BOX, GailComboBox, gail_combo_box, GTK_TYPE_COMBO_BOX)
 GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_MENU_SHELL, GailMenuShell, gail_menu_shell, GTK_TYPE_MENU_SHELL)
 GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_MENU, GailMenu, gail_menu, GTK_TYPE_MENU)
@@ -873,7 +871,6 @@ gail_accessibility_module_init (void)
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_LINK_BUTTON, gail_link_button);
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_MENU_ITEM, gail_menu_item);
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_TOGGLE_BUTTON, gail_toggle_button);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_IMAGE, gail_image);
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_COMBO_BOX, gail_combo_box);
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_MENU_BAR, gail_menu_shell);
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_MENU, gail_menu);
diff --git a/gtk/a11y/gailimage.c b/gtk/a11y/gailimage.c
deleted file mode 100644 (file)
index 1a5552c..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailimage.h"
-
-static void      gail_image_class_init         (GailImageClass *klass);
-static void      gail_image_init               (GailImage      *image);
-static void      gail_image_initialize         (AtkObject       *accessible,
-                                                gpointer        data);
-static const gchar* gail_image_get_name  (AtkObject     *accessible);
-
-
-static void      atk_image_interface_init      (AtkImageIface  *iface);
-
-static const gchar *
-                 gail_image_get_image_description (AtkImage     *image);
-static void     gail_image_get_image_position    (AtkImage     *image,
-                                                   gint         *x,
-                                                   gint         *y,
-                                                   AtkCoordType coord_type);
-static void      gail_image_get_image_size     (AtkImage        *image,
-                                                gint            *width,
-                                                gint            *height);
-static gboolean  gail_image_set_image_description (AtkImage     *image,
-                                                const gchar     *description);
-static void      gail_image_finalize           (GObject         *object);
-
-G_DEFINE_TYPE_WITH_CODE (GailImage, gail_image, GAIL_TYPE_WIDGET,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init))
-
-static void
-gail_image_class_init (GailImageClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-
-  gobject_class->finalize = gail_image_finalize;
-  class->initialize = gail_image_initialize;
-  class->get_name = gail_image_get_name;
-}
-
-static void
-gail_image_init (GailImage *image)
-{
-  image->image_description = NULL;
-}
-
-static void
-gail_image_initialize (AtkObject *accessible,
-                       gpointer data)
-{
-  ATK_OBJECT_CLASS (gail_image_parent_class)->initialize (accessible, data);
-
-  accessible->role = ATK_ROLE_ICON;
-}
-
-/* Copied from gtktoolbar.c, keep in sync */
-static gchar *
-elide_underscores (const gchar *original)
-{
-  gchar *q, *result;
-  const gchar *p, *end;
-  gsize len;
-  gboolean last_underscore;
-  
-  if (!original)
-    return NULL;
-
-  len = strlen (original);
-  q = result = g_malloc (len + 1);
-  last_underscore = FALSE;
-  
-  end = original + len;
-  for (p = original; p < end; p++)
-    {
-      if (!last_underscore && *p == '_')
-       last_underscore = TRUE;
-      else
-       {
-         last_underscore = FALSE;
-         if (original + 2 <= p && p + 1 <= end && 
-              p[-2] == '(' && p[-1] == '_' && p[0] != '_' && p[1] == ')')
-           {
-             q--;
-             *q = '\0';
-             p++;
-           }
-         else
-           *q++ = *p;
-       }
-    }
-
-  if (last_underscore)
-    *q++ = '_';
-  
-  *q = '\0';
-  
-  return result;
-}
-
-static const gchar*
-gail_image_get_name (AtkObject *accessible)
-{
-  GtkWidget* widget;
-  GtkImage *image;
-  GailImage *image_accessible;
-  GtkStockItem stock_item;
-  gchar *stock_id;
-  const gchar *name;
-
-  name = ATK_OBJECT_CLASS (gail_image_parent_class)->get_name (accessible);
-  if (name)
-    return name;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  /*
-   * State is defunct
-   */
-  if (widget == NULL)
-    return NULL;
-
-  g_return_val_if_fail (GTK_IS_IMAGE (widget), NULL);
-  image = GTK_IMAGE (widget);
-  image_accessible = GAIL_IMAGE (accessible);
-
-  g_free (image_accessible->stock_name);
-  image_accessible->stock_name = NULL;
-
-  if (gtk_image_get_storage_type (image) != GTK_IMAGE_STOCK)
-    return NULL;
-
-  gtk_image_get_stock (image, &stock_id, NULL);
-  if (stock_id == NULL)
-    return NULL;
-
-  if (!gtk_stock_lookup (stock_id, &stock_item))
-    return NULL;
-
-  image_accessible->stock_name = elide_underscores (stock_item.label);
-  return image_accessible->stock_name;
-}
-
-static void
-atk_image_interface_init (AtkImageIface *iface)
-{
-  iface->get_image_description = gail_image_get_image_description;
-  iface->get_image_position = gail_image_get_image_position;
-  iface->get_image_size = gail_image_get_image_size;
-  iface->set_image_description = gail_image_set_image_description;
-}
-
-static const gchar *
-gail_image_get_image_description (AtkImage     *image)
-{
-  GailImage* aimage = GAIL_IMAGE (image);
-
-  return aimage->image_description;
-}
-
-static void
-gail_image_get_image_position (AtkImage     *image,
-                               gint         *x,
-                               gint         *y,
-                               AtkCoordType coord_type)
-{
-  atk_component_get_position (ATK_COMPONENT (image), x, y, coord_type);
-}
-
-static void
-gail_image_get_image_size (AtkImage *image, 
-                           gint     *width,
-                           gint     *height)
-{
-  GtkWidget* widget;
-  GtkImage *gtk_image;
-  GtkImageType image_type;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
-  if (widget == 0)
-  {
-    /* State is defunct */
-    *height = -1;
-    *width = -1;
-    return;
-  }
-
-  gtk_image = GTK_IMAGE(widget);
-
-  image_type = gtk_image_get_storage_type(gtk_image);
-  switch(image_type) {
-    case GTK_IMAGE_PIXBUF:
-    {
-      GdkPixbuf *pixbuf;
-      pixbuf = gtk_image_get_pixbuf(gtk_image);
-      *height = gdk_pixbuf_get_height(pixbuf);
-      *width = gdk_pixbuf_get_width(pixbuf);
-      break;
-    }
-    case GTK_IMAGE_STOCK:
-    case GTK_IMAGE_ICON_SET:
-    case GTK_IMAGE_ICON_NAME:
-    case GTK_IMAGE_GICON:
-    {
-      GtkIconSize size;
-      GtkSettings *settings;
-
-      settings = gtk_settings_get_for_screen (gtk_widget_get_screen (widget));
-
-      g_object_get (gtk_image, "icon-size", &size, NULL);
-      gtk_icon_size_lookup_for_settings (settings, size, width, height);
-      break;
-    }
-    case GTK_IMAGE_ANIMATION:
-    {
-      GdkPixbufAnimation *animation;
-      animation = gtk_image_get_animation(gtk_image);
-      *height = gdk_pixbuf_animation_get_height(animation);
-      *width = gdk_pixbuf_animation_get_width(animation);
-      break;
-    }
-    default:
-    {
-      *height = -1;
-      *width = -1;
-      break;
-    }
-  }
-}
-
-static gboolean
-gail_image_set_image_description (AtkImage     *image,
-                                  const gchar  *description)
-{
-  GailImage* aimage = GAIL_IMAGE (image);
-
-  g_free (aimage->image_description);
-  aimage->image_description = g_strdup (description);
-  return TRUE;
-}
-
-static void
-gail_image_finalize (GObject      *object)
-{
-  GailImage *aimage = GAIL_IMAGE (object);
-
-  g_free (aimage->image_description);
-  g_free (aimage->stock_name);
-
-  G_OBJECT_CLASS (gail_image_parent_class)->finalize (object);
-}
diff --git a/gtk/a11y/gailimage.h b/gtk/a11y/gailimage.h
deleted file mode 100644 (file)
index 18188df..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems 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.
- */
-
-#ifndef __GAIL_IMAGE_H__
-#define __GAIL_IMAGE_H__
-
-#include "gailwidget.h"
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_IMAGE                      (gail_image_get_type ())
-#define GAIL_IMAGE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_IMAGE, GailImage))
-#define GAIL_IMAGE_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_IMAGE, GailImageClass))
-#define GAIL_IS_IMAGE(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_IMAGE))
-#define GAIL_IS_IMAGE_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_IMAGE))
-#define GAIL_IMAGE_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_IMAGE, GailImageClass))
-
-typedef struct _GailImage              GailImage;
-typedef struct _GailImageClass         GailImageClass;
-
-struct _GailImage
-{
-  GailWidget parent;
-
-  gchar*     image_description;
-  gchar*     stock_name;
-};
-
-GType gail_image_get_type (void);
-
-struct _GailImageClass
-{
-  GailWidgetClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_IMAGE_H__ */
diff --git a/gtk/a11y/gtkimageaccessible.c b/gtk/a11y/gtkimageaccessible.c
new file mode 100644 (file)
index 0000000..82c3be6
--- /dev/null
@@ -0,0 +1,205 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "gtkimageaccessible.h"
+
+
+static void atk_image_interface_init (AtkImageIface  *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkImageAccessible, gtk_image_accessible, GAIL_TYPE_WIDGET,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init))
+
+static void
+gtk_image_accessible_initialize (AtkObject *accessible,
+                                 gpointer   data)
+{
+  ATK_OBJECT_CLASS (gtk_image_accessible_parent_class)->initialize (accessible, data);
+
+  accessible->role = ATK_ROLE_ICON;
+}
+
+static void
+gtk_image_accessible_finalize (GObject *object)
+{
+  GtkImageAccessible *aimage = GTK_IMAGE_ACCESSIBLE (object);
+
+  g_free (aimage->image_description);
+  g_free (aimage->stock_name);
+
+  G_OBJECT_CLASS (gtk_image_accessible_parent_class)->finalize (object);
+}
+
+static const gchar *
+gtk_image_accessible_get_name (AtkObject *accessible)
+{
+  GtkWidget* widget;
+  GtkImage *image;
+  GtkImageAccessible *image_accessible;
+  GtkStockItem stock_item;
+  gchar *stock_id;
+  const gchar *name;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return NULL;
+
+  name = ATK_OBJECT_CLASS (gtk_image_accessible_parent_class)->get_name (accessible);
+  if (name)
+    return name;
+
+  image = GTK_IMAGE (widget);
+  image_accessible = GTK_IMAGE_ACCESSIBLE (accessible);
+
+  g_free (image_accessible->stock_name);
+  image_accessible->stock_name = NULL;
+
+  if (gtk_image_get_storage_type (image) != GTK_IMAGE_STOCK)
+    return NULL;
+
+  gtk_image_get_stock (image, &stock_id, NULL);
+  if (stock_id == NULL)
+    return NULL;
+
+  if (!gtk_stock_lookup (stock_id, &stock_item))
+    return NULL;
+
+  image_accessible->stock_name = _gtk_toolbar_elide_underscores (stock_item.label);
+  return image_accessible->stock_name;
+}
+
+static void
+gtk_image_accessible_class_init (GtkImageAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
+
+  gobject_class->finalize = gtk_image_accessible_finalize;
+  class->initialize = gtk_image_accessible_initialize;
+  class->get_name = gtk_image_accessible_get_name;
+}
+
+static void
+gtk_image_accessible_init (GtkImageAccessible *image)
+{
+}
+
+static const gchar *
+gtk_image_accessible_get_image_description (AtkImage *image)
+{
+  GtkImageAccessible *accessible = GTK_IMAGE_ACCESSIBLE (image);
+
+  return accessible->image_description;
+}
+
+static void
+gtk_image_accessible_get_image_position (AtkImage     *image,
+                                         gint         *x,
+                                         gint         *y,
+                                         AtkCoordType  coord_type)
+{
+  atk_component_get_position (ATK_COMPONENT (image), x, y, coord_type);
+}
+
+static void
+gtk_image_accessible_get_image_size (AtkImage *image,
+                                     gint     *width,
+                                     gint     *height)
+{
+  GtkWidget* widget;
+  GtkImage *gtk_image;
+  GtkImageType image_type;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
+  if (widget == NULL)
+    {
+      *height = -1;
+      *width = -1;
+      return;
+    }
+
+  gtk_image = GTK_IMAGE (widget);
+
+  image_type = gtk_image_get_storage_type (gtk_image);
+  switch (image_type)
+    {
+    case GTK_IMAGE_PIXBUF:
+      {
+        GdkPixbuf *pixbuf;
+
+        pixbuf = gtk_image_get_pixbuf (gtk_image);
+        *height = gdk_pixbuf_get_height (pixbuf);
+        *width = gdk_pixbuf_get_width (pixbuf);
+        break;
+      }
+    case GTK_IMAGE_STOCK:
+    case GTK_IMAGE_ICON_SET:
+    case GTK_IMAGE_ICON_NAME:
+    case GTK_IMAGE_GICON:
+      {
+        GtkIconSize size;
+        GtkSettings *settings;
+
+        settings = gtk_settings_get_for_screen (gtk_widget_get_screen (widget));
+
+        g_object_get (gtk_image, "icon-size", &size, NULL);
+        gtk_icon_size_lookup_for_settings (settings, size, width, height);
+        break;
+      }
+    case GTK_IMAGE_ANIMATION:
+      {
+        GdkPixbufAnimation *animation;
+
+        animation = gtk_image_get_animation (gtk_image);
+        *height = gdk_pixbuf_animation_get_height (animation);
+        *width = gdk_pixbuf_animation_get_width (animation);
+        break;
+      }
+    default:
+      {
+        *height = -1;
+        *width = -1;
+        break;
+      }
+    }
+}
+
+static gboolean
+gtk_image_accessible_set_image_description (AtkImage    *image,
+                                            const gchar *description)
+{
+  GtkImageAccessible* accessible = GTK_IMAGE_ACCESSIBLE (image);
+
+  g_free (accessible->image_description);
+  accessible->image_description = g_strdup (description);
+
+  return TRUE;
+}
+
+static void
+atk_image_interface_init (AtkImageIface *iface)
+{
+  iface->get_image_description = gtk_image_accessible_get_image_description;
+  iface->get_image_position = gtk_image_accessible_get_image_position;
+  iface->get_image_size = gtk_image_accessible_get_image_size;
+  iface->set_image_description = gtk_image_accessible_set_image_description;
+}
diff --git a/gtk/a11y/gtkimageaccessible.h b/gtk/a11y/gtkimageaccessible.h
new file mode 100644 (file)
index 0000000..1d25859
--- /dev/null
@@ -0,0 +1,54 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems 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.
+ */
+
+#ifndef __GTK_IMAGE_ACCESSIBLE_H__
+#define __GTK_IMAGE_ACCESSIBLE_H__
+
+#include "gailwidget.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_IMAGE_ACCESSIBLE                      (gtk_image_accessible_get_type ())
+#define GTK_IMAGE_ACCESSIBLE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_IMAGE_ACCESSIBLE, GtkImageAccessible))
+#define GTK_IMAGE_ACCESSIBLE_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_IMAGE_ACCESSIBLE, GtkImageAccessibleClass))
+#define GTK_IS_IMAGE_ACCESSIBLE(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_IMAGE_ACCESSIBLE))
+#define GTK_IS_IMAGE_ACCESSIBLE_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_IMAGE_ACCESSIBLE))
+#define GTK_IMAGE_ACCESSIBLE_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_IMAGE_ACCESSIBLE, GtkImageAccessibleClass))
+
+typedef struct _GtkImageAccessible      GtkImageAccessible;
+typedef struct _GtkImageAccessibleClass GtkImageAccessibleClass;
+
+struct _GtkImageAccessible
+{
+  GailWidget parent;
+
+  gchar*     image_description;
+  gchar*     stock_name;
+};
+
+struct _GtkImageAccessibleClass
+{
+  GailWidgetClass parent_class;
+};
+
+GType gtk_image_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_IMAGE_ACCESSIBLE_H__ */
index 6fbb7183f9e6fd3cbae8c3adb92741bfeaadf9d2..d0cac9677bd97632ec9a6b5f3d75e3460c80dfc9 100644 (file)
@@ -39,6 +39,8 @@
 #include "gtkprivate.h"
 #include "gtktypebuiltins.h"
 
+#include "a11y/gtkimageaccessible.h"
+
 /**
  * SECTION:gtkimage
  * @Short_description: A widget displaying an image
@@ -357,6 +359,8 @@ gtk_image_class_init (GtkImageClass *class)
                                                          GTK_PARAM_READWRITE));
 
   g_type_class_add_private (class, sizeof (GtkImagePrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_IMAGE_ACCESSIBLE);
 }
 
 static void
index e1f2bd6870edc22fe23c31fb6406c4c51452ca43..0e89431cb70a292688e4785b37ba90d19635ac48 100644 (file)
@@ -25,7 +25,7 @@ window1
       <AtkComponent>
       layer: widget
       alpha: 1
-      unnamed-GailImage-2
+      unnamed-GtkImageAccessible-2
         "icon"
         parent: unnamed-GailContainer-1
         index: 0
index 5204879292cfca79ffab7f63193063144cf54466..e95bdfb17d4ac0eedc14698bfe7d7066e2c39244 100644 (file)
@@ -25,7 +25,7 @@ window1
       <AtkComponent>
       layer: widget
       alpha: 1
-      unnamed-GailImage-2
+      unnamed-GtkImageAccessible-2
         "icon"
         parent: unnamed-GailContainer-1
         index: 0