diff --git a/modules/other/gail/gailbox.c b/modules/other/gail/gailbox.c index c4a045bc2b..f9d05b18df 100644 --- a/modules/other/gail/gailbox.c +++ b/modules/other/gail/gailbox.c @@ -26,7 +26,6 @@ static void gail_box_class_init (GailBoxClass *klass); static void gail_box_init (GailBox *box); static void gail_box_initialize (AtkObject *accessible, gpointer data); -static AtkStateSet* gail_box_ref_state_set (AtkObject *accessible); G_DEFINE_TYPE (GailBox, gail_box, GAIL_TYPE_CONTAINER) @@ -36,7 +35,6 @@ gail_box_class_init (GailBoxClass *klass) AtkObjectClass *class = ATK_OBJECT_CLASS (klass); class->initialize = gail_box_initialize; - class->ref_state_set = gail_box_ref_state_set; } static void @@ -52,23 +50,3 @@ gail_box_initialize (AtkObject *accessible, accessible->role = ATK_ROLE_FILLER; } - -static AtkStateSet* -gail_box_ref_state_set (AtkObject *accessible) -{ - AtkStateSet *state_set; - GtkWidget *widget; - - state_set = ATK_OBJECT_CLASS (gail_box_parent_class)->ref_state_set (accessible); - widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible)); - - if (widget == NULL) - return state_set; - - if (GTK_IS_VBOX (widget) || GTK_IS_VBUTTON_BOX (widget)) - atk_state_set_add_state (state_set, ATK_STATE_VERTICAL); - else if (GTK_IS_HBOX (widget) || GTK_IS_HBUTTON_BOX (widget)) - atk_state_set_add_state (state_set, ATK_STATE_HORIZONTAL); - - return state_set; -} diff --git a/modules/other/gail/gailpaned.c b/modules/other/gail/gailpaned.c index 1e1404bf14..7f91f13b05 100644 --- a/modules/other/gail/gailpaned.c +++ b/modules/other/gail/gailpaned.c @@ -31,9 +31,6 @@ static void gail_paned_real_initialize (AtkObject *obj, gpointer data); static void gail_paned_size_allocate_gtk (GtkWidget *widget, GtkAllocation *allocation); - -static AtkStateSet* gail_paned_ref_state_set (AtkObject *accessible); - static void atk_value_interface_init (AtkValueIface *iface); static void gail_paned_get_current_value (AtkValue *obj, GValue *value); @@ -52,7 +49,6 @@ gail_paned_class_init (GailPanedClass *klass) { AtkObjectClass *class = ATK_OBJECT_CLASS (klass); - class->ref_state_set = gail_paned_ref_state_set; class->initialize = gail_paned_real_initialize; } @@ -61,26 +57,6 @@ gail_paned_init (GailPaned *paned) { } -static AtkStateSet* -gail_paned_ref_state_set (AtkObject *accessible) -{ - AtkStateSet *state_set; - GtkWidget *widget; - - state_set = ATK_OBJECT_CLASS (gail_paned_parent_class)->ref_state_set (accessible); - widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible)); - - if (widget == NULL) - return state_set; - - if (GTK_IS_VPANED (widget)) - atk_state_set_add_state (state_set, ATK_STATE_VERTICAL); - else if (GTK_IS_HPANED (widget)) - atk_state_set_add_state (state_set, ATK_STATE_HORIZONTAL); - - return state_set; -} - static void gail_paned_real_initialize (AtkObject *obj, gpointer data) diff --git a/modules/other/gail/gailrange.c b/modules/other/gail/gailrange.c index 07b6d75f7f..d708567c7f 100644 --- a/modules/other/gail/gailrange.c +++ b/modules/other/gail/gailrange.c @@ -35,9 +35,6 @@ static void gail_range_real_initialize (AtkObject *obj, static void gail_range_finalize (GObject *object); -static AtkStateSet* gail_range_ref_state_set (AtkObject *obj); - - static void gail_range_real_notify_gtk (GObject *obj, GParamSpec *pspec); @@ -85,7 +82,6 @@ gail_range_class_init (GailRangeClass *klass) widget_class->notify_gtk = gail_range_real_notify_gtk; - class->ref_state_set = gail_range_ref_state_set; class->initialize = gail_range_real_initialize; gobject_class->finalize = gail_range_finalize; @@ -130,34 +126,7 @@ gail_range_real_initialize (AtkObject *obj, obj->role = ATK_ROLE_SLIDER; } -static AtkStateSet* -gail_range_ref_state_set (AtkObject *obj) -{ - AtkStateSet *state_set; - GtkWidget *widget; - GtkRange *range; - - state_set = ATK_OBJECT_CLASS (gail_range_parent_class)->ref_state_set (obj); - widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj)); - - if (widget == NULL) - return state_set; - - range = GTK_RANGE (widget); - - /* - * We do not generate property change for orientation change as there - * is no interface to change the orientation which emits a notification - */ - if (gtk_orientable_get_orientation (GTK_ORIENTABLE (range)) == GTK_ORIENTATION_HORIZONTAL) - atk_state_set_add_state (state_set, ATK_STATE_HORIZONTAL); - else - atk_state_set_add_state (state_set, ATK_STATE_VERTICAL); - - return state_set; -} - -static void +static void atk_value_interface_init (AtkValueIface *iface) { iface->get_current_value = gail_range_get_current_value; @@ -167,7 +136,7 @@ atk_value_interface_init (AtkValueIface *iface) iface->set_current_value = gail_range_set_current_value; } -static void +static void gail_range_get_current_value (AtkValue *obj, GValue *value) { diff --git a/modules/other/gail/gailseparator.c b/modules/other/gail/gailseparator.c index 6aaa01017e..22e9146899 100644 --- a/modules/other/gail/gailseparator.c +++ b/modules/other/gail/gailseparator.c @@ -26,7 +26,6 @@ static void gail_separator_class_init (GailSeparatorClass *k static void gail_separator_init (GailSeparator *accessible); static void gail_separator_initialize (AtkObject *accessible, gpointer data); -static AtkStateSet* gail_separator_ref_state_set (AtkObject *accessible); G_DEFINE_TYPE (GailSeparator, gail_separator, GAIL_TYPE_WIDGET) @@ -36,7 +35,6 @@ gail_separator_class_init (GailSeparatorClass *klass) AtkObjectClass *class = ATK_OBJECT_CLASS (klass); class->initialize = gail_separator_initialize; - class->ref_state_set = gail_separator_ref_state_set; } static void @@ -52,23 +50,3 @@ gail_separator_initialize (AtkObject *accessible, accessible->role = ATK_ROLE_SEPARATOR; } - -static AtkStateSet* -gail_separator_ref_state_set (AtkObject *accessible) -{ - AtkStateSet *state_set; - GtkWidget *widget; - - state_set = ATK_OBJECT_CLASS (gail_separator_parent_class)->ref_state_set (accessible); - widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible)); - - if (widget == NULL) - return state_set; - - if (GTK_IS_VSEPARATOR (widget)) - atk_state_set_add_state (state_set, ATK_STATE_VERTICAL); - else if (GTK_IS_HSEPARATOR (widget)) - atk_state_set_add_state (state_set, ATK_STATE_HORIZONTAL); - - return state_set; -} diff --git a/modules/other/gail/gailwidget.c b/modules/other/gail/gailwidget.c index 89a27db97c..922673d9db 100644 --- a/modules/other/gail/gailwidget.c +++ b/modules/other/gail/gailwidget.c @@ -511,6 +511,18 @@ gail_widget_ref_state_set (AtkObject *accessible) { atk_state_set_add_state (state_set, ATK_STATE_DEFAULT); } + + if (GTK_IS_ORIENTABLE(widget)) + switch (gtk_orientable_get_orientation (GTK_ORIENTABLE (widget))) + { + case GTK_ORIENTATION_HORIZONTAL: + atk_state_set_add_state (state_set, ATK_STATE_HORIZONTAL); + break; + + case GTK_ORIENTATION_VERTICAL: + atk_state_set_add_state (state_set, ATK_STATE_VERTICAL); + break; + } } return state_set; } @@ -976,6 +988,15 @@ gail_widget_real_notify_gtk (GObject *obj, state = ATK_STATE_SENSITIVE; value = gtk_widget_get_sensitive (widget); } + else if (strcmp (pspec->name, "orientation") == 0) + { + GtkOrientable *orientable; + + orientable = GTK_ORIENTABLE (widget); + + state = ATK_STATE_HORIZONTAL; + value = (gtk_orientable_get_orientation (orientable) == GTK_ORIENTATION_HORIZONTAL); + } else return; @@ -983,6 +1004,8 @@ gail_widget_real_notify_gtk (GObject *obj, if (state == ATK_STATE_SENSITIVE) atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, value); + if (state == ATK_STATE_HORIZONTAL) + atk_object_notify_state_change (atk_obj, ATK_STATE_VERTICAL, !value); } static void