1 /* GAIL - The GNOME Accessibility Enabling Library
2 * Copyright 2001 Sun Microsystems Inc.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
25 static void gail_box_class_init (GailBoxClass *klass);
26 static void gail_box_init (GailBox *box);
27 static AtkStateSet* gail_box_ref_state_set (AtkObject *accessible);
29 G_DEFINE_TYPE (GailBox, gail_box, GAIL_TYPE_CONTAINER)
32 gail_box_class_init (GailBoxClass *klass)
34 AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
36 class->ref_state_set = gail_box_ref_state_set;
40 gail_box_init (GailBox *box)
45 gail_box_new (GtkWidget *widget)
48 AtkObject *accessible;
50 g_return_val_if_fail (GTK_IS_BOX (widget), NULL);
52 object = g_object_new (GAIL_TYPE_BOX, NULL);
54 accessible = ATK_OBJECT (object);
55 atk_object_initialize (accessible, widget);
57 accessible->role = ATK_ROLE_FILLER;
63 gail_box_ref_state_set (AtkObject *accessible)
65 AtkStateSet *state_set;
68 state_set = ATK_OBJECT_CLASS (gail_box_parent_class)->ref_state_set (accessible);
69 widget = GTK_ACCESSIBLE (accessible)->widget;
74 if (GTK_IS_VBOX (widget) || GTK_IS_VBUTTON_BOX (widget))
75 atk_state_set_add_state (state_set, ATK_STATE_VERTICAL);
76 else if (GTK_IS_HBOX (widget) || GTK_IS_HBUTTON_BOX (widget))
77 atk_state_set_add_state (state_set, ATK_STATE_HORIZONTAL);