summaryrefslogtreecommitdiff
path: root/gtk/gtkspinner.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2011-07-02 15:23:52 -0400
committerMatthias Clasen <mclasen@redhat.com>2011-07-05 16:09:57 -0400
commit775ccf39e7f117e6f62a91f6b1607408833ebd1c (patch)
tree7f035a17f17d14d74223ef27dd763fcac6006a37 /gtk/gtkspinner.c
parent89e57c6978822b9ebcd8565d9b271cc520f55766 (diff)
downloadgtk+-775ccf39e7f117e6f62a91f6b1607408833ebd1c.tar.gz
Initial conversion of GailWidget to GtkWidgetAccessible
Diffstat (limited to 'gtk/gtkspinner.c')
-rw-r--r--gtk/gtkspinner.c94
1 files changed, 12 insertions, 82 deletions
diff --git a/gtk/gtkspinner.c b/gtk/gtkspinner.c
index 43070be548..34d41046a9 100644
--- a/gtk/gtkspinner.c
+++ b/gtk/gtkspinner.c
@@ -35,6 +35,7 @@
#include "gtkaccessible.h"
#include "gtkimage.h"
#include "gtkspinner.h"
+#include "a11y/gtkwidgetaccessible.h"
/**
@@ -83,8 +84,7 @@ static void gtk_spinner_get_preferred_height (GtkWidget *widget,
gint *minimum_size,
gint *natural_size);
-static AtkObject *gtk_spinner_get_accessible (GtkWidget *widget);
-static GType gtk_spinner_accessible_get_type (void);
+GType _gtk_spinner_accessible_get_type (void);
G_DEFINE_TYPE (GtkSpinner, gtk_spinner, GTK_TYPE_WIDGET)
@@ -101,7 +101,6 @@ gtk_spinner_class_init (GtkSpinnerClass *klass)
widget_class = GTK_WIDGET_CLASS(klass);
widget_class->draw = gtk_spinner_draw;
- widget_class->get_accessible = gtk_spinner_get_accessible;
widget_class->get_preferred_width = gtk_spinner_get_preferred_width;
widget_class->get_preferred_height = gtk_spinner_get_preferred_height;
@@ -118,6 +117,8 @@ gtk_spinner_class_init (GtkSpinnerClass *klass)
P_("Whether the spinner is active"),
FALSE,
G_PARAM_READWRITE));
+
+ gtk_widget_class_set_accessible_type (widget_class, _gtk_spinner_accessible_get_type ());
}
static void
@@ -268,20 +269,18 @@ gtk_spinner_accessible_image_iface_init (AtkImageIface *iface)
}
/* dummy typedef */
-typedef struct _GtkSpinnerAccessible GtkSpinnerAccessible;
-typedef struct _GtkSpinnerAccessibleClass GtkSpinnerAccessibleClass;
+typedef GtkWidgetAccessible GtkSpinnerAccessible;
+typedef GtkWidgetAccessibleClass GtkSpinnerAccessibleClass;
-ATK_DEFINE_TYPE_WITH_CODE (GtkSpinnerAccessible,
- gtk_spinner_accessible,
- GTK_TYPE_IMAGE,
- G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE,
- gtk_spinner_accessible_image_iface_init));
+G_DEFINE_TYPE_WITH_CODE (GtkSpinnerAccessible, _gtk_spinner_accessible, GTK_TYPE_WIDGET_ACCESSIBLE,
+ G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE,
+ gtk_spinner_accessible_image_iface_init));
static void
gtk_spinner_accessible_initialize (AtkObject *accessible,
gpointer widget)
{
- ATK_OBJECT_CLASS (gtk_spinner_accessible_parent_class)->initialize (accessible, widget);
+ ATK_OBJECT_CLASS (_gtk_spinner_accessible_parent_class)->initialize (accessible, widget);
atk_object_set_name (accessible, C_("throbbing progress animation widget", "Spinner"));
atk_object_set_description (accessible, _("Provides visual indication of progress"));
@@ -289,7 +288,7 @@ gtk_spinner_accessible_initialize (AtkObject *accessible,
}
static void
-gtk_spinner_accessible_class_init (GtkSpinnerAccessibleClass *klass)
+_gtk_spinner_accessible_class_init (GtkSpinnerAccessibleClass *klass)
{
AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
@@ -297,77 +296,8 @@ gtk_spinner_accessible_class_init (GtkSpinnerAccessibleClass *klass)
}
static void
-gtk_spinner_accessible_init (GtkSpinnerAccessible *self)
-{
-}
-
-/* factory */
-typedef AtkObjectFactory GtkSpinnerAccessibleFactory;
-typedef AtkObjectFactoryClass GtkSpinnerAccessibleFactoryClass;
-
-G_DEFINE_TYPE (GtkSpinnerAccessibleFactory,
- _gtk_spinner_accessible_factory,
- ATK_TYPE_OBJECT_FACTORY);
-
-static GType
-gtk_spinner_accessible_factory_get_accessible_type (void)
-{
- return gtk_spinner_accessible_get_type ();
-}
-
-static AtkObject *
-gtk_spinner_accessible_factory_create_accessible (GObject *obj)
-{
- AtkObject *accessible;
-
- accessible = g_object_new (gtk_spinner_accessible_get_type (), NULL);
- atk_object_initialize (accessible, obj);
-
- return accessible;
-}
-
-static void
-_gtk_spinner_accessible_factory_class_init (AtkObjectFactoryClass *klass)
+_gtk_spinner_accessible_init (GtkSpinnerAccessible *self)
{
- klass->create_accessible = gtk_spinner_accessible_factory_create_accessible;
- klass->get_accessible_type = gtk_spinner_accessible_factory_get_accessible_type;
-}
-
-static void
-_gtk_spinner_accessible_factory_init (AtkObjectFactory *factory)
-{
-}
-
-static AtkObject *
-gtk_spinner_get_accessible (GtkWidget *widget)
-{
- static gboolean first_time = TRUE;
-
- if (first_time)
- {
- AtkObjectFactory *factory;
- AtkRegistry *registry;
- GType derived_type;
- GType derived_atk_type;
-
- /*
- * Figure out whether accessibility is enabled by looking at the
- * type of the accessible object which would be created for
- * the parent type of GtkSpinner.
- */
- derived_type = g_type_parent (GTK_TYPE_SPINNER);
-
- registry = atk_get_default_registry ();
- factory = atk_registry_get_factory (registry, derived_type);
- derived_atk_type = atk_object_factory_get_accessible_type (factory);
- if (g_type_is_a (derived_atk_type, GTK_TYPE_ACCESSIBLE))
- atk_registry_set_factory_type (registry,
- GTK_TYPE_SPINNER,
- _gtk_spinner_accessible_factory_get_type ());
- first_time = FALSE;
- }
-
- return GTK_WIDGET_CLASS (gtk_spinner_parent_class)->get_accessible (widget);
}
/**