Commit 64b95998 authored by Matthias Clasen's avatar Matthias Clasen

Convert GailRadio(Sub)MenuItem to GtkAccessible classes

The way submenus are handled here isn't really right, since
they can come and go at runtime, but I've left it like this
for now. A side-effect is that we can't use
gtk_widget_class_set_accessible_type here, but have to
override get_accessible.
parent 2d655446
......@@ -31,8 +31,8 @@ gail_c_sources = \
gtkpanedaccessible.c \
gtkprogressbaraccessible.c \
gtkradiobuttonaccessible.c \
gailradiomenuitem.c \
gailradiosubmenuitem.c \
gtkradiomenuitemaccessible.c \
gtkradiosubmenuitemaccessible.c \
gtkrangeaccessible.c \
gailrenderercell.c \
gtkscaleaccessible.c \
......@@ -83,8 +83,8 @@ gail_private_h_sources = \
gtkpanedaccessible.h \
gtkprogressbaraccessible.h \
gtkradiobuttonaccessible.h \
gailradiomenuitem.h \
gailradiosubmenuitem.h \
gtkradiomenuitemaccessible.h \
gtkradiosubmenuitemaccesisble.h \
gtkrangeaccessible.h \
gailrenderercell.h \
gtkscaleaccessible.h \
......
......@@ -33,7 +33,6 @@
#include "gailmenu.h"
#include "gailmenushell.h"
#include "gailmenuitem.h"
#include "gailradiomenuitem.h"
#include "gailrenderercell.h"
#include "gailtextcell.h"
#include "gailtoplevel.h"
......@@ -93,7 +92,6 @@ GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_MENU_SHELL, GailMenuShell, gail_menu_shell, GT
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 (GAIL_TYPE_RADIO_MENU_ITEM, GailRadioMenuItem, gail_radio_menu_item, gail_radio_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)
......@@ -850,7 +848,6 @@ gail_accessibility_module_init (void)
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);
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_RADIO_MENU_ITEM, gail_radio_menu_item);
atk_focus_tracker_init (gail_focus_tracker_init);
focus_tracker_id = atk_add_focus_tracker (gail_focus_tracker);
......
......@@ -20,77 +20,30 @@
#include "config.h"
#include <gtk/gtk.h>
#include "gailradiomenuitem.h"
#include "gailradiosubmenuitem.h"
#include "gtkradiomenuitemaccessible.h"
#include "gtkradiosubmenuitemaccessible.h"
static void gail_radio_menu_item_class_init (GailRadioMenuItemClass *klass);
static void gail_radio_menu_item_init (GailRadioMenuItem *radio_menu_item);
static AtkRelationSet* gail_radio_menu_item_ref_relation_set (AtkObject *obj);
G_DEFINE_TYPE (GtkRadioMenuItemAccessible, gtk_radio_menu_item_accessible, GAIL_TYPE_CHECK_MENU_ITEM)
G_DEFINE_TYPE (GailRadioMenuItem, gail_radio_menu_item, GAIL_TYPE_CHECK_MENU_ITEM)
static void
gail_radio_menu_item_class_init (GailRadioMenuItemClass *klass)
{
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
class->ref_relation_set = gail_radio_menu_item_ref_relation_set;
}
AtkObject*
gail_radio_menu_item_new (GtkWidget *widget)
{
GObject *object;
AtkObject *accessible;
g_return_val_if_fail (GTK_IS_RADIO_MENU_ITEM (widget), NULL);
if (gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget)))
return gail_radio_sub_menu_item_new (widget);
object = g_object_new (GAIL_TYPE_RADIO_MENU_ITEM, NULL);
accessible = ATK_OBJECT (object);
atk_object_initialize (accessible, widget);
accessible->role = ATK_ROLE_RADIO_MENU_ITEM;
return accessible;
}
static void
gail_radio_menu_item_init (GailRadioMenuItem *radio_menu_item)
{
radio_menu_item->old_group = NULL;
}
AtkRelationSet*
gail_radio_menu_item_ref_relation_set (AtkObject *obj)
AtkRelationSet *
gtk_radio_menu_item_accessible_ref_relation_set (AtkObject *obj)
{
GtkWidget *widget;
AtkRelationSet *relation_set;
GSList *list;
GailRadioMenuItem *radio_menu_item;
g_return_val_if_fail (GAIL_IS_RADIO_MENU_ITEM (obj), NULL);
GtkRadioMenuItemAccessible *radio_menu_item;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
if (widget == NULL)
{
/*
* State is defunct
*/
return NULL;
}
radio_menu_item = GAIL_RADIO_MENU_ITEM (obj);
relation_set = ATK_OBJECT_CLASS (gail_radio_menu_item_parent_class)->ref_relation_set (obj);
radio_menu_item = GTK_RADIO_MENU_ITEM_ACCESSIBLE (obj);
relation_set = ATK_OBJECT_CLASS (gtk_radio_menu_item_accessible_parent_class)->ref_relation_set (obj);
/*
* If the radio menu_item'group has changed remove the relation
*/
/* If the radio menu_item'group has changed remove the relation */
list = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (widget));
if (radio_menu_item->old_group != list)
{
AtkRelation *relation;
......@@ -100,40 +53,50 @@ gail_radio_menu_item_ref_relation_set (AtkObject *obj)
}
if (!atk_relation_set_contains (relation_set, ATK_RELATION_MEMBER_OF))
{
/*
* Get the members of the menu_item group
*/
radio_menu_item->old_group = list;
if (list)
{
AtkObject **accessible_array;
guint list_length;
AtkRelation* relation;
gint i = 0;
list_length = g_slist_length (list);
accessible_array = (AtkObject**) g_malloc (sizeof (AtkObject *) *
list_length);
while (list != NULL)
{
GtkWidget* list_item = list->data;
accessible_array[i++] = gtk_widget_get_accessible (list_item);
list = list->next;
}
relation = atk_relation_new (accessible_array, list_length,
ATK_RELATION_MEMBER_OF);
g_free (accessible_array);
atk_relation_set_add (relation_set, relation);
/*
* Unref the relation so that it is not leaked.
*/
g_object_unref (relation);
/* Get the members of the menu_item group */
radio_menu_item->old_group = list;
if (list)
{
AtkObject **accessible_array;
guint list_length;
AtkRelation* relation;
gint i = 0;
list_length = g_slist_length (list);
accessible_array = g_new (AtkObject *, list_length);
while (list != NULL)
{
GtkWidget* list_item = list->data;
accessible_array[i++] = gtk_widget_get_accessible (list_item);
list = list->next;
}
relation = atk_relation_new (accessible_array, list_length,
ATK_RELATION_MEMBER_OF);
g_free (accessible_array);
atk_relation_set_add (relation_set, relation);
/* Unref the relation so that it is not leaked */
g_object_unref (relation);
}
}
}
return relation_set;
}
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;
}
static void
gtk_radio_menu_item_accessible_init (GtkRadioMenuItemAccessible *radio_menu_item)
{
}
......@@ -17,39 +17,37 @@
* Boston, MA 02111-1307, USA.
*/
#ifndef __GAIL_RADIO_MENU_ITEM_H__
#define __GAIL_RADIO_MENU_ITEM_H__
#ifndef __GTK_RADIO_MENU_ITEM_ACCESSIBLE_H__
#define __GTK_RADIO_MENU_ITEM_ACCESSIBLE_H__
#include "gailcheckmenuitem.h"
G_BEGIN_DECLS
#define GAIL_TYPE_RADIO_MENU_ITEM (gail_radio_menu_item_get_type ())
#define GAIL_RADIO_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_RADIO_MENU_ITEM, GailRadioMenuItem))
#define GAIL_RADIO_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_RADIO_MENU_ITEM, GailRadioMenuItemClass))
#define GAIL_IS_RADIO_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_RADIO_MENU_ITEM))
#define GAIL_IS_RADIO_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_RADIO_MENU_ITEM))
#define GAIL_RADIO_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_RADIO_MENU_ITEM, GailRadioMenuItemClass))
#define GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE (gtk_radio_menu_item_accessible_get_type ())
#define GTK_RADIO_MENU_ITEM_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE, GtkRadioMenuItemAccessible))
#define GTK_RADIO_MENU_ITEM_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE, GtkRadioMenuItemAccessibleClass))
#define GTK_IS_RADIO_MENU_ITEM_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE))
#define GTK_IS_RADIO_MENU_ITEM_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE))
#define GTK_RADIO_MENU_ITEM_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE, GtkRadioMenuItemAccessibleClass))
typedef struct _GailRadioMenuItem GailRadioMenuItem;
typedef struct _GailRadioMenuItemClass GailRadioMenuItemClass;
typedef struct _GtkRadioMenuItemAccessible GtkRadioMenuItemAccessible;
typedef struct _GtkRadioMenuItemAccessibleClass GtkRadioMenuItemAccessibleClass;
struct _GailRadioMenuItem
struct _GtkRadioMenuItemAccessible
{
GailCheckMenuItem parent;
GSList *old_group;
};
GType gail_radio_menu_item_get_type (void);
struct _GailRadioMenuItemClass
struct _GtkRadioMenuItemAccessibleClass
{
GailCheckMenuItemClass parent_class;
};
AtkObject* gail_radio_menu_item_new (GtkWidget *widget);
GType gtk_radio_menu_item_accessible_get_type (void);
G_END_DECLS
#endif /* __GAIL_RADIO_MENU_ITEM_H__ */
#endif /* __GTK_RADIO_MENU_ITEM_ACCESSIBLE_H__ */
......@@ -20,73 +20,31 @@
#include "config.h"
#include <gtk/gtk.h>
#include "gailradiosubmenuitem.h"
#include "gtkradiosubmenuitemaccessible.h"
static void gail_radio_sub_menu_item_class_init (GailRadioSubMenuItemClass *klass);
static void gail_radio_sub_menu_item_init (GailRadioSubMenuItem *radio_menu_item);
static AtkRelationSet* gail_radio_sub_menu_item_ref_relation_set (AtkObject *obj);
G_DEFINE_TYPE (GtkRadioSubmenuItemAccessible, gtk_radio_submenu_item_accessible, GAIL_TYPE_CHECK_SUB_MENU_ITEM)
G_DEFINE_TYPE (GailRadioSubMenuItem, gail_radio_sub_menu_item, GAIL_TYPE_CHECK_SUB_MENU_ITEM)
static void
gail_radio_sub_menu_item_class_init (GailRadioSubMenuItemClass *klass)
{
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
class->ref_relation_set = gail_radio_sub_menu_item_ref_relation_set;
}
AtkObject*
gail_radio_sub_menu_item_new (GtkWidget *widget)
{
GObject *object;
AtkObject *accessible;
g_return_val_if_fail (GTK_IS_RADIO_MENU_ITEM (widget), NULL);
object = g_object_new (GAIL_TYPE_RADIO_SUB_MENU_ITEM, NULL);
accessible = ATK_OBJECT (object);
atk_object_initialize (accessible, widget);
accessible->role = ATK_ROLE_RADIO_MENU_ITEM;
return accessible;
}
static void
gail_radio_sub_menu_item_init (GailRadioSubMenuItem *radio_menu_item)
{
radio_menu_item->old_group = NULL;
}
AtkRelationSet*
gail_radio_sub_menu_item_ref_relation_set (AtkObject *obj)
AtkRelationSet *
gtk_radio_submenu_item_accessible_ref_relation_set (AtkObject *obj)
{
GtkWidget *widget;
AtkRelationSet *relation_set;
GSList *list;
GailRadioSubMenuItem *radio_menu_item;
g_return_val_if_fail (GAIL_IS_RADIO_SUB_MENU_ITEM (obj), NULL);
GtkRadioSubmenuItemAccessible *radio_menu_item;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
if (widget == NULL)
{
/*
* State is defunct
*/
return NULL;
}
radio_menu_item = GAIL_RADIO_SUB_MENU_ITEM (obj);
relation_set = ATK_OBJECT_CLASS (gail_radio_sub_menu_item_parent_class)->ref_relation_set (obj);
radio_menu_item = GTK_RADIO_SUBMENU_ITEM_ACCESSIBLE (obj);
/*
* If the radio menu_item'group has changed remove the relation
*/
relation_set = ATK_OBJECT_CLASS (gtk_radio_submenu_item_accessible_parent_class)->ref_relation_set (obj);
/* If the radio menu_item's group has changed remove the relation */
list = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (widget));
if (radio_menu_item->old_group != list)
{
AtkRelation *relation;
......@@ -96,40 +54,49 @@ gail_radio_sub_menu_item_ref_relation_set (AtkObject *obj)
}
if (!atk_relation_set_contains (relation_set, ATK_RELATION_MEMBER_OF))
{
/*
* Get the members of the menu_item group
*/
radio_menu_item->old_group = list;
if (list)
{
AtkObject **accessible_array;
guint list_length;
AtkRelation* relation;
gint i = 0;
list_length = g_slist_length (list);
accessible_array = (AtkObject**) g_malloc (sizeof (AtkObject *) *
list_length);
while (list != NULL)
{
GtkWidget* list_item = list->data;
accessible_array[i++] = gtk_widget_get_accessible (list_item);
list = list->next;
}
relation = atk_relation_new (accessible_array, list_length,
ATK_RELATION_MEMBER_OF);
g_free (accessible_array);
atk_relation_set_add (relation_set, relation);
/*
* Unref the relation so that it is not leaked.
*/
g_object_unref (relation);
/* Get the members of the menu_item group */
radio_menu_item->old_group = list;
if (list)
{
AtkObject **accessible_array;
guint list_length;
AtkRelation* relation;
gint i = 0;
list_length = g_slist_length (list);
accessible_array = g_new (AtkObject *, list_length);
while (list != NULL)
{
GtkWidget* list_item = list->data;
accessible_array[i++] = gtk_widget_get_accessible (list_item);
list = list->next;
}
relation = atk_relation_new (accessible_array, list_length,
ATK_RELATION_MEMBER_OF);
g_free (accessible_array);
atk_relation_set_add (relation_set, relation);
/* Unref the relation so that it is not leaked */
g_object_unref (relation);
}
}
}
return relation_set;
}
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;
}
static void
gtk_radio_submenu_item_accessible_init (GtkRadioSubmenuItemAccessible *radio_menu_item)
{
radio_menu_item->old_group = NULL;
}
......@@ -17,39 +17,37 @@
* Boston, MA 02111-1307, USA.
*/
#ifndef __GAIL_RADIO_SUB_MENU_ITEM_H__
#define __GAIL_RADIO_SUB_MENU_ITEM_H__
#ifndef __GTK_RADIO_SUBMENU_ITEM_ACCESSIBLE_H__
#define __GTK_RADIO_SUBMENU_ITEM_ACCESSIBLE_H__
#include "gailchecksubmenuitem.h"
G_BEGIN_DECLS
#define GAIL_TYPE_RADIO_SUB_MENU_ITEM (gail_radio_sub_menu_item_get_type ())
#define GAIL_RADIO_SUB_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_RADIO_SUB_MENU_ITEM, GailRadioSubMenuItem))
#define GAIL_RADIO_SUB_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_RADIO_SUB_MENU_ITEM, GailRadioSubMenuItemClass))
#define GAIL_IS_RADIO_SUB_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_RADIO_SUB_MENU_ITEM))
#define GAIL_IS_RADIO_SUB_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_RADIO_SUB_MENU_ITEM))
#define GAIL_RADIO_SUB_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_RADIO_SUB_MENU_ITEM, GailRadioSubMenuItemClass))
#define GTK_TYPE_RADIO_SUBMENU_ITEM_ACCESSIBLE (gtk_radio_submenu_item_accessible_get_type ())
#define GTK_RADIO_SUBMENU_ITEM_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RADIO_SUBMENU_ITEM_ACCESSIBLE, GtkRadioSubmenuItemAccessible))
#define GTK_RADIO_SUBMENU_ITEM_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_RADIO_SUBMENU_ITEM_ACCESSIBLE, GtkRadioSubmenuItemAccessibleClass))
#define GTK_IS_RADIO_SUBMENU_ITEM_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_RADIO_SUBMENU_ITEM_ACCESSIBLE))
#define GTK_IS_RADIO_SUBMENU_ITEM_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RADIO_SUBMENU_ITEM_ACCESSIBLE))
#define GTK_RADIO_SUBMENU_ITEM_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_RADIO_SUBMENU_ITEM_ACCESSIBLE, GtkRadioSubmenuItemAccessibleClass))
typedef struct _GailRadioSubMenuItem GailRadioSubMenuItem;
typedef struct _GailRadioSubMenuItemClass GailRadioSubMenuItemClass;
typedef struct _GtkRadioSubmenuItemAccessible GtkRadioSubmenuItemAccessible;
typedef struct _GtkRadioSubmenuItemAccessibleClass GtkRadioSubmenuItemAccessibleClass;
struct _GailRadioSubMenuItem
struct _GtkRadioSubmenuItemAccessible
{
GailCheckSubMenuItem parent;
GSList *old_group;
};
GType gail_radio_sub_menu_item_get_type (void);
struct _GailRadioSubMenuItemClass
struct _GtkRadioSubmenuItemAccessibleClass
{
GailCheckSubMenuItemClass parent_class;
};
AtkObject* gail_radio_sub_menu_item_new (GtkWidget *widget);
GType gtk_radio_submenu_item_accessible_get_type (void);
G_END_DECLS
#endif /* __GAIL_RADIO_SUB_MENU_ITEM_H__ */
#endif /* __GTK_RADIO_SUBMENU_ITEM_ACCESSIBLE_H__ */
......@@ -31,7 +31,8 @@
#include "gtkactivatable.h"
#include "gtkprivate.h"
#include "gtkintl.h"
#include "a11y/gtkradiomenuitemaccessible.h"
#include "a11y/gtkradiosubmenuitemaccessible.h"
/**
* SECTION:gtkradiomenuitem
......@@ -393,11 +394,30 @@ gtk_radio_menu_item_get_group (GtkRadioMenuItem *radio_menu_item)
return radio_menu_item->priv->group;
}
static AtkObject *
gtk_radio_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_RADIO_SUBMENU_ITEM_ACCESSIBLE, NULL);
else
object = g_object_new (GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE, NULL);
accessible = ATK_OBJECT (object);
atk_object_initialize (accessible, widget);
accessible->role = ATK_ROLE_RADIO_MENU_ITEM;
return accessible;
}
static void
gtk_radio_menu_item_class_init (GtkRadioMenuItemClass *klass)
{
GObjectClass *gobject_class;
GObjectClass *gobject_class;
GtkWidgetClass *widget_class;
GtkMenuItemClass *menu_item_class;
......@@ -409,6 +429,7 @@ gtk_radio_menu_item_class_init (GtkRadioMenuItemClass *klass)
gobject_class->get_property = gtk_radio_menu_item_get_property;
widget_class->destroy = gtk_radio_menu_item_destroy;
widget_class->get_accessible = gtk_radio_menu_item_get_accessible;
menu_item_class->activate = gtk_radio_menu_item_activate;
......
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