Commit 209a2d1b authored by Matthias Clasen's avatar Matthias Clasen

Convert GailCheck(Sub)MenuItem to GtkAccessible classes

This is along the same lines as the previous commit,
with the same caveat.
parent 64b95998
......@@ -10,8 +10,8 @@ gail_c_sources = \
gailbutton.c \
gailcell.c \
gailcellparent.c \
gailcheckmenuitem.c \
gailchecksubmenuitem.c \
gtkcheckmenuitemaccessible.c \
gtkchecksubmenuitemaccessible.c \
gtkcomboboxaccessible.c \
gailcontainer.c \
gailcontainercell.c \
......@@ -61,8 +61,8 @@ gail_private_h_sources = \
gailbutton.h \
gailcell.h \
gailcellparent.h \
gailcheckmenuitem.h \
gailchecksubmenuitem.h \
gtkcheckmenuitemaccessible.h \
gtkchecksubmenuitemaccessible.h \
gtkcomboboxaccessible.h \
gailcontainercell.h \
gailcontainer.h \
......
......@@ -26,7 +26,6 @@
#include "gailbooleancell.h"
#include "gailbutton.h"
#include "gailcell.h"
#include "gailcheckmenuitem.h"
#include "gailcontainer.h"
#include "gailcontainercell.h"
#include "gailimagecell.h"
......@@ -91,7 +90,6 @@ GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_MENU_ITEM, GailMenuItem, gail_menu_i
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)
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_WINDOW, GailWindow, gail_window, GTK_TYPE_BIN)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_CHECK_MENU_ITEM, GailCheckMenuItem, gail_check_menu_item, gail_check_menu_item_new)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_RENDERER_CELL, GailRendererCell, gail_renderer_cell, GTK_TYPE_CELL_RENDERER, gail_renderer_cell_new)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_BOOLEAN_CELL, GailBooleanCell, gail_boolean_cell, GTK_TYPE_CELL_RENDERER_TOGGLE, gail_boolean_cell_new)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_IMAGE_CELL, GailImageCell, gail_image_cell, GTK_TYPE_CELL_RENDERER_PIXBUF, gail_image_cell_new)
......@@ -847,7 +845,6 @@ gail_accessibility_module_init (void)
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CELL_RENDERER_TOGGLE, gail_boolean_cell);
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CELL_RENDERER_PIXBUF, gail_image_cell);
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CELL_RENDERER, gail_renderer_cell);
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CHECK_MENU_ITEM, gail_check_menu_item);
atk_focus_tracker_init (gail_focus_tracker_init);
focus_tracker_id = atk_add_focus_tracker (gail_focus_tracker);
......
......@@ -20,101 +20,48 @@
#include "config.h"
#include <string.h>
#include "gailcheckmenuitem.h"
#include "gailchecksubmenuitem.h"
#include "gtkcheckmenuitemaccessible.h"
static void gail_check_menu_item_class_init (GailCheckMenuItemClass *klass);
static void gail_check_menu_item_init (GailCheckMenuItem *item);
static void gail_check_menu_item_toggled_gtk (GtkWidget *widget);
static void gail_check_menu_item_real_notify_gtk (GObject *obj,
GParamSpec *pspec);
static void gail_check_menu_item_real_initialize (AtkObject *obj,
gpointer data);
static AtkStateSet* gail_check_menu_item_ref_state_set (AtkObject *accessible);
G_DEFINE_TYPE (GailCheckMenuItem, gail_check_menu_item, GAIL_TYPE_MENU_ITEM)
G_DEFINE_TYPE (GtkCheckMenuItemAccessible, gtk_check_menu_item_accessible, GAIL_TYPE_MENU_ITEM)
static void
gail_check_menu_item_class_init (GailCheckMenuItemClass *klass)
toggled_cb (GtkWidget *widget)
{
GailWidgetClass *widget_class;
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
widget_class = (GailWidgetClass*)klass;
widget_class->notify_gtk = gail_check_menu_item_real_notify_gtk;
class->ref_state_set = gail_check_menu_item_ref_state_set;
class->initialize = gail_check_menu_item_real_initialize;
}
static void
gail_check_menu_item_init (GailCheckMenuItem *item)
{
}
AtkObject*
gail_check_menu_item_new (GtkWidget *widget)
{
GObject *object;
AtkObject *accessible;
GtkCheckMenuItem *check_menu_item;
gboolean active;
g_return_val_if_fail (GTK_IS_CHECK_MENU_ITEM (widget), NULL);
if (gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget)))
return gail_check_sub_menu_item_new (widget);
object = g_object_new (GAIL_TYPE_CHECK_MENU_ITEM, NULL);
check_menu_item = GTK_CHECK_MENU_ITEM (widget);
active = gtk_check_menu_item_get_active (check_menu_item);
accessible = ATK_OBJECT (object);
atk_object_initialize (accessible, widget);
return accessible;
accessible = gtk_widget_get_accessible (widget);
atk_object_notify_state_change (accessible, ATK_STATE_CHECKED, active);
}
static void
gail_check_menu_item_real_initialize (AtkObject *obj,
gpointer data)
gtk_check_menu_item_accessible_initialize (AtkObject *obj,
gpointer data)
{
ATK_OBJECT_CLASS (gail_check_menu_item_parent_class)->initialize (obj, data);
ATK_OBJECT_CLASS (gtk_check_menu_item_accessible_parent_class)->initialize (obj, data);
g_signal_connect (data,
"toggled",
G_CALLBACK (gail_check_menu_item_toggled_gtk),
NULL);
g_signal_connect (data, "toggled", G_CALLBACK (toggled_cb), NULL);
obj->role = ATK_ROLE_CHECK_MENU_ITEM;
}
static void
gail_check_menu_item_toggled_gtk (GtkWidget *widget)
{
AtkObject *accessible;
GtkCheckMenuItem *check_menu_item;
check_menu_item = GTK_CHECK_MENU_ITEM (widget);
accessible = gtk_widget_get_accessible (widget);
atk_object_notify_state_change (accessible, ATK_STATE_CHECKED,
gtk_check_menu_item_get_active (check_menu_item));
}
static AtkStateSet*
gail_check_menu_item_ref_state_set (AtkObject *accessible)
static AtkStateSet *
gtk_check_menu_item_accessible_ref_state_set (AtkObject *accessible)
{
AtkStateSet *state_set;
GtkCheckMenuItem *check_menu_item;
GtkWidget *widget;
state_set = ATK_OBJECT_CLASS (gail_check_menu_item_parent_class)->ref_state_set (accessible);
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
if (widget == NULL)
return state_set;
return NULL;
state_set = ATK_OBJECT_CLASS (gtk_check_menu_item_accessible_parent_class)->ref_state_set (accessible);
check_menu_item = GTK_CHECK_MENU_ITEM (widget);
......@@ -126,13 +73,13 @@ gail_check_menu_item_ref_state_set (AtkObject *accessible)
atk_state_set_remove_state (state_set, ATK_STATE_ENABLED);
atk_state_set_add_state (state_set, ATK_STATE_INDETERMINATE);
}
return state_set;
}
static void
gail_check_menu_item_real_notify_gtk (GObject *obj,
GParamSpec *pspec)
gtk_check_menu_item_accessible_notify_gtk (GObject *obj,
GParamSpec *pspec)
{
GtkCheckMenuItem *check_menu_item = GTK_CHECK_MENU_ITEM (obj);
AtkObject *atk_obj;
......@@ -155,5 +102,22 @@ gail_check_menu_item_real_notify_gtk (GObject *obj,
atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
}
else
GAIL_WIDGET_CLASS (gail_check_menu_item_parent_class)->notify_gtk (obj, pspec);
GAIL_WIDGET_CLASS (gtk_check_menu_item_accessible_parent_class)->notify_gtk (obj, pspec);
}
static void
gtk_check_menu_item_accessible_class_init (GtkCheckMenuItemAccessibleClass *klass)
{
GailWidgetClass *widget_class = (GailWidgetClass*)klass;
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
widget_class->notify_gtk = gtk_check_menu_item_accessible_notify_gtk;
class->ref_state_set = gtk_check_menu_item_accessible_ref_state_set;
class->initialize = gtk_check_menu_item_accessible_initialize;
}
static void
gtk_check_menu_item_accessible_init (GtkCheckMenuItemAccessible *item)
{
}
......@@ -17,37 +17,35 @@
* Boston, MA 02111-1307, USA.
*/
#ifndef __GAIL_CHECK_MENU_ITEM_H__
#define __GAIL_CHECK_MENU_ITEM_H__
#ifndef __GTK_CHECK_MENU_ITEM_ACCESSIBLE_H__
#define __GTK_CHECK_MENU_ITEM_ACCESSIBLE_H__
#include "gailmenuitem.h"
G_BEGIN_DECLS
#define GAIL_TYPE_CHECK_MENU_ITEM (gail_check_menu_item_get_type ())
#define GAIL_CHECK_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CHECK_MENU_ITEM, GailCheckMenuItem))
#define GAIL_CHECK_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_CHECK_MENU_ITEM, GailCheckMenuItemClass))
#define GAIL_IS_CHECK_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CHECK_MENU_ITEM))
#define GAIL_IS_CHECK_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_CHECK_MENU_ITEM))
#define GAIL_CHECK_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_CHECK_MENU_ITEM, GailCheckMenuItemClass))
#define GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE (gtk_check_menu_item_accessible_get_type ())
#define GTK_CHECK_MENU_ITEM_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE, GtkCheckMenuItemAccessible))
#define GTK_CHECK_MENU_ITEM_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE, GtkCheckMenuItemAccessibleClass))
#define GTK_IS_CHECK_MENU_ITEM_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE))
#define GTK_IS_CHECK_MENU_ITEM_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE))
#define GTK_CHECK_MENU_ITEM_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE, GtkCheckMenuItemAccessibleClass))
typedef struct _GailCheckMenuItem GailCheckMenuItem;
typedef struct _GailCheckMenuItemClass GailCheckMenuItemClass;
typedef struct _GtkCheckMenuItemAccessible GtkCheckMenuItemAccessible;
typedef struct _GtkCheckMenuItemAccessibleClass GtkCheckMenuItemAccessibleClass;
struct _GailCheckMenuItem
struct _GtkCheckMenuItemAccessible
{
GailMenuItem parent;
};
GType gail_check_menu_item_get_type (void);
struct _GailCheckMenuItemClass
struct _GtkCheckMenuItemAccessibleClass
{
GailMenuItemClass parent_class;
};
AtkObject* gail_check_menu_item_new (GtkWidget *widget);
GType gtk_check_menu_item_accessible_get_type (void);
G_END_DECLS
#endif /* __GAIL_CHECK_MENU_ITEM_H__ */
#endif /* __GTK_CHECK_MENU_ITEM_ACCESSIBLE_H__ */
......@@ -21,97 +21,48 @@
#include <string.h>
#include <gtk/gtk.h>
#include "gailchecksubmenuitem.h"
#include "gtkchecksubmenuitemaccessible.h"
static void gail_check_sub_menu_item_class_init (GailCheckSubMenuItemClass *klass);
static void gail_check_sub_menu_item_init (GailCheckSubMenuItem *item);
static void gail_check_sub_menu_item_toggled_gtk (GtkWidget *widget);
static void gail_check_sub_menu_item_real_notify_gtk (GObject *obj,
GParamSpec *pspec);
static void gail_check_sub_menu_item_real_initialize (AtkObject *obj,
gpointer data);
static AtkStateSet* gail_check_sub_menu_item_ref_state_set (AtkObject *accessible);
G_DEFINE_TYPE (GailCheckSubMenuItem, gail_check_sub_menu_item, GAIL_TYPE_SUB_MENU_ITEM)
G_DEFINE_TYPE (GtkCheckSubmenuItemAccessible, gtk_check_submenu_item_accessible, GAIL_TYPE_SUB_MENU_ITEM)
static void
gail_check_sub_menu_item_class_init (GailCheckSubMenuItemClass *klass)
toggled_cb (GtkWidget *widget)
{
GailWidgetClass *widget_class;
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
widget_class = (GailWidgetClass*)klass;
widget_class->notify_gtk = gail_check_sub_menu_item_real_notify_gtk;
class->ref_state_set = gail_check_sub_menu_item_ref_state_set;
class->initialize = gail_check_sub_menu_item_real_initialize;
}
static void
gail_check_sub_menu_item_init (GailCheckSubMenuItem *item)
{
}
AtkObject*
gail_check_sub_menu_item_new (GtkWidget *widget)
{
GObject *object;
AtkObject *accessible;
GtkCheckMenuItem *check_menu_item;
gboolean active;
g_return_val_if_fail (GTK_IS_CHECK_MENU_ITEM (widget), NULL);
object = g_object_new (GAIL_TYPE_CHECK_SUB_MENU_ITEM, NULL);
accessible = ATK_OBJECT (object);
atk_object_initialize (accessible, widget);
check_menu_item = GTK_CHECK_MENU_ITEM (widget);
active = gtk_check_menu_item_get_active (check_menu_item);
return accessible;
accessible = gtk_widget_get_accessible (widget);
atk_object_notify_state_change (accessible, ATK_STATE_CHECKED, active);
}
static void
gail_check_sub_menu_item_real_initialize (AtkObject *obj,
gpointer data)
gtk_check_submenu_item_accessible_initialize (AtkObject *obj,
gpointer data)
{
ATK_OBJECT_CLASS (gail_check_sub_menu_item_parent_class)->initialize (obj, data);
ATK_OBJECT_CLASS (gtk_check_submenu_item_accessible_parent_class)->initialize (obj, data);
g_signal_connect (data,
"toggled",
G_CALLBACK (gail_check_sub_menu_item_toggled_gtk),
NULL);
g_signal_connect (data, "toggled", G_CALLBACK (toggled_cb), NULL);
obj->role = ATK_ROLE_CHECK_MENU_ITEM;
}
static void
gail_check_sub_menu_item_toggled_gtk (GtkWidget *widget)
{
AtkObject *accessible;
GtkCheckMenuItem *check_menu_item;
check_menu_item = GTK_CHECK_MENU_ITEM (widget);
accessible = gtk_widget_get_accessible (widget);
atk_object_notify_state_change (accessible, ATK_STATE_CHECKED,
gtk_check_menu_item_get_active (check_menu_item));
}
static AtkStateSet*
gail_check_sub_menu_item_ref_state_set (AtkObject *accessible)
static AtkStateSet *
gtk_check_submenu_item_accessible_ref_state_set (AtkObject *accessible)
{
AtkStateSet *state_set;
GtkCheckMenuItem *check_menu_item;
GtkWidget *widget;
state_set = ATK_OBJECT_CLASS (gail_check_sub_menu_item_parent_class)->ref_state_set (accessible);
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
if (widget == NULL)
return state_set;
return NULL;
state_set = ATK_OBJECT_CLASS (gtk_check_submenu_item_accessible_parent_class)->ref_state_set (accessible);
check_menu_item = GTK_CHECK_MENU_ITEM (widget);
......@@ -123,13 +74,13 @@ gail_check_sub_menu_item_ref_state_set (AtkObject *accessible)
atk_state_set_remove_state (state_set, ATK_STATE_ENABLED);
atk_state_set_add_state (state_set, ATK_STATE_INDETERMINATE);
}
return state_set;
}
static void
gail_check_sub_menu_item_real_notify_gtk (GObject *obj,
GParamSpec *pspec)
gtk_check_submenu_item_accessible_notify_gtk (GObject *obj,
GParamSpec *pspec)
{
GtkCheckMenuItem *check_menu_item = GTK_CHECK_MENU_ITEM (obj);
AtkObject *atk_obj;
......@@ -152,5 +103,22 @@ gail_check_sub_menu_item_real_notify_gtk (GObject *obj,
atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
}
else
GAIL_WIDGET_CLASS (gail_check_sub_menu_item_parent_class)->notify_gtk (obj, pspec);
GAIL_WIDGET_CLASS (gtk_check_submenu_item_accessible_parent_class)->notify_gtk (obj, pspec);
}
static void
gtk_check_submenu_item_accessible_class_init (GtkCheckSubmenuItemAccessibleClass *klass)
{
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
GailWidgetClass *widget_class = (GailWidgetClass*)klass;
widget_class->notify_gtk = gtk_check_submenu_item_accessible_notify_gtk;
class->ref_state_set = gtk_check_submenu_item_accessible_ref_state_set;
class->initialize = gtk_check_submenu_item_accessible_initialize;
}
static void
gtk_check_submenu_item_accessible_init (GtkCheckSubmenuItemAccessible *item)
{
}
......@@ -17,37 +17,35 @@
* Boston, MA 02111-1307, USA.
*/
#ifndef __GAIL_CHECK_SUB_MENU_ITEM_H__
#define __GAIL_CHECK_SUB_MENU_ITEM_H__
#ifndef __GTK_CHECK_SUBMENU_ITEM_ACCESSIBLE_H__
#define __GTK_CHECK_SUBMENU_ITEM_ACCESSIBLE_H__
#include "gailsubmenuitem.h"
G_BEGIN_DECLS
#define GAIL_TYPE_CHECK_SUB_MENU_ITEM (gail_check_sub_menu_item_get_type ())
#define GAIL_CHECK_SUB_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CHECK_SUB_MENU_ITEM, GailCheckSubMenuItem))
#define GAIL_CHECK_SUB_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_CHECK_SUB_MENU_ITEM, GailCheckSubMenuItemClass))
#define GAIL_IS_CHECK_SUB_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CHECK_SUB_MENU_ITEM))
#define GAIL_IS_CHECK_SUB_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_CHECK_SUB_MENU_ITEM))
#define GAIL_CHECK_SUB_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_CHECK_SUB_MENU_ITEM, GailCheckSubMenuItemClass))
#define GTK_TYPE_CHECK_SUBMENU_ITEM_ACCESSIBLE (gtk_check_submenu_item_accessible_get_type ())
#define GTK_CHECK_SUBMENU_ITEM_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CHECK_SUBMENU_ITEM_ACCESSIBLE, GtkCheckSubmenuItemAccessible))
#define GTK_CHECK_SUBMENU_ITEM_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_CHECK_SUBMENU_ITEM_ACCESSIBLE, GtkCheckSubmenuItemAccessibleClass))
#define GTK_IS_CHECK_SUBMENU_ITEM_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CHECK_SUBMENU_ITEM_ACCESSIBLE))
#define GTK_IS_CHECK_SUBMENU_ITEM_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CHECK_SUBMENU_ITEM_ACCESSIBLE))
#define GTK_CHECK_SUBMENU_ITEM_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CHECK_SUBMENU_ITEM_ACCESSIBLE, GtkCheckSubmenuItemAccessibleClass))
typedef struct _GailCheckSubMenuItem GailCheckSubMenuItem;
typedef struct _GailCheckSubMenuItemClass GailCheckSubMenuItemClass;
typedef struct _GtkCheckSubmenuItemAccessible GtkCheckSubmenuItemAccessible;
typedef struct _GtkCheckSubmenuItemAccessibleClass GtkCheckSubmenuItemAccessibleClass;
struct _GailCheckSubMenuItem
struct _GtkCheckSubmenuItemAccessible
{
GailSubMenuItem parent;
};
GType gail_check_sub_menu_item_get_type (void);
struct _GailCheckSubMenuItemClass
struct _GtkCheckSubmenuItemAccessibleClass
{
GailSubMenuItemClass parent_class;
};
AtkObject* gail_check_sub_menu_item_new (GtkWidget *widget);
GType gtk_check_submenu_item_accessible_get_type (void);
G_END_DECLS
#endif /* __GAIL_CHECK_SUB_MENU_ITEM_H__ */
#endif /* __GTK_CHECK_SUBMENU_ITEM_ACCESSIBLE_H__ */
......@@ -24,7 +24,7 @@
#include "gtkradiosubmenuitemaccessible.h"
G_DEFINE_TYPE (GtkRadioMenuItemAccessible, gtk_radio_menu_item_accessible, GAIL_TYPE_CHECK_MENU_ITEM)
G_DEFINE_TYPE (GtkRadioMenuItemAccessible, gtk_radio_menu_item_accessible, GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE)
AtkRelationSet *
gtk_radio_menu_item_accessible_ref_relation_set (AtkObject *obj)
......@@ -88,12 +88,22 @@ gtk_radio_menu_item_accessible_ref_relation_set (AtkObject *obj)
return relation_set;
}
static void
gtk_radio_menu_item_accessible_initialize (AtkObject *obj,
gpointer data)
{
ATK_OBJECT_CLASS (gtk_radio_menu_item_accessible_parent_class)->initialize (obj, data);
obj->role = ATK_ROLE_RADIO_MENU_ITEM;
}
static void
gtk_radio_menu_item_accessible_class_init (GtkRadioMenuItemAccessibleClass *klass)
{
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
class->ref_relation_set = gtk_radio_menu_item_accessible_ref_relation_set;
class->initialize = gtk_radio_menu_item_accessible_initialize;
}
static void
......
......@@ -20,7 +20,7 @@
#ifndef __GTK_RADIO_MENU_ITEM_ACCESSIBLE_H__
#define __GTK_RADIO_MENU_ITEM_ACCESSIBLE_H__
#include "gailcheckmenuitem.h"
#include "gtkcheckmenuitemaccessible.h"
G_BEGIN_DECLS
......@@ -36,14 +36,14 @@ typedef struct _GtkRadioMenuItemAccessibleClass GtkRadioMenuItemAccessibleClass;
struct _GtkRadioMenuItemAccessible
{
GailCheckMenuItem parent;
GtkCheckMenuItemAccessible parent;
GSList *old_group;
};
struct _GtkRadioMenuItemAccessibleClass
{
GailCheckMenuItemClass parent_class;
GtkCheckMenuItemAccessibleClass parent_class;
};
GType gtk_radio_menu_item_accessible_get_type (void);
......
......@@ -23,7 +23,7 @@
#include "gtkradiosubmenuitemaccessible.h"
G_DEFINE_TYPE (GtkRadioSubmenuItemAccessible, gtk_radio_submenu_item_accessible, GAIL_TYPE_CHECK_SUB_MENU_ITEM)
G_DEFINE_TYPE (GtkRadioSubmenuItemAccessible, gtk_radio_submenu_item_accessible, GTK_TYPE_CHECK_SUBMENU_ITEM_ACCESSIBLE)
AtkRelationSet *
......@@ -87,12 +87,23 @@ gtk_radio_submenu_item_accessible_ref_relation_set (AtkObject *obj)
return relation_set;
}
static void
gtk_radio_submenu_item_accessible_initialize (AtkObject *obj,
gpointer data)
{
ATK_OBJECT_CLASS (gtk_radio_submenu_item_accessible_parent_class)->initialize (obj, data);
obj->role = ATK_ROLE_RADIO_MENU_ITEM;
}
static void
gtk_radio_submenu_item_accessible_class_init (GtkRadioSubmenuItemAccessibleClass *klass)
{
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
class->ref_relation_set = gtk_radio_submenu_item_accessible_ref_relation_set;
class->initialize = gtk_radio_submenu_item_accessible_initialize;
}
static void
......
......@@ -20,7 +20,7 @@
#ifndef __GTK_RADIO_SUBMENU_ITEM_ACCESSIBLE_H__
#define __GTK_RADIO_SUBMENU_ITEM_ACCESSIBLE_H__
#include "gailchecksubmenuitem.h"
#include "gtkchecksubmenuitemaccessible.h"
G_BEGIN_DECLS
......@@ -36,14 +36,14 @@ typedef struct _GtkRadioSubmenuItemAccessibleClass GtkRadioSubmenuItemAccessible
struct _GtkRadioSubmenuItemAccessible
{
GailCheckSubMenuItem parent;
GtkCheckSubmenuItemAccessible parent;
GSList *old_group;
};
struct _GtkRadioSubmenuItemAccessibleClass
{
GailCheckSubMenuItemClass parent_class;
GtkCheckSubmenuItemAccessibleClass parent_class;
};
GType gtk_radio_submenu_item_accessible_get_type (void);
......
......@@ -33,7 +33,8 @@
#include "gtkmarshalers.h"
#include "gtkprivate.h"
#include "gtkintl.h"
#include "a11y/gtkcheckmenuitemaccessible.h"
#include "a11y/gtkchecksubmenuitemaccessible.h"
/**
* SECTION:gtkcheckmenuitem
......@@ -102,6 +103,24 @@ G_DEFINE_TYPE_WITH_CODE (GtkCheckMenuItem, gtk_check_menu_item, GTK_TYPE_MENU_IT
G_IMPLEMENT_INTERFACE (GTK_TYPE_ACTIVATABLE,
gtk_check_menu_item_activatable_interface_init))
static AtkObject *
gtk_check_menu_item_get_accessible (GtkWidget *widget)
{
GObject *object;
AtkObject *accessible;
/* FIXME this is not really right, submenus can come and go */
if (gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget)))
object = g_object_new (GTK_TYPE_CHECK_SUBMENU_ITEM_ACCESSIBLE, NULL);
else
object = g_object_new (GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE, NULL);
accessible = ATK_OBJECT (object);
atk_object_initialize (accessible, widget);
return accessible;
}
static void
gtk_check_menu_item_class_init (GtkCheckMenuItemClass *klass)
{
......@@ -150,7 +169,8 @@ gtk_check_menu_item_class_init (GtkCheckMenuItemClass *klass)
GTK_PARAM_READABLE));
widget_class->draw = gtk_check_menu_item_draw;
widget_class->get_accessible = gtk_check_menu_item_get_accessible;
menu_item_class->activate = gtk_check_menu_item_activate;
menu_item_class->hide_on_activate = FALSE;
menu_item_class->toggle_size_request = gtk_check_menu_item_toggle_size_request;
......
......@@ -409,8 +409,6 @@ gtk_radio_menu_item_get_accessible (GtkWidget *widget)
accessible = ATK_OBJECT (object);
atk_object_initialize (accessible, widget);
accessible->role = ATK_ROLE_RADIO_MENU_ITEM;
return accessible;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment