]> Pileus Git - ~andy/gtk/blob - modules/other/gail/gailbox.c
Include <config.h>. Bug #504720.
[~andy/gtk] / modules / other / gail / gailbox.c
1 /* GAIL - The GNOME Accessibility Enabling Library
2  * Copyright 2001 Sun Microsystems Inc.
3  *
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.
8  *
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.
13  *
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.
18  */
19
20 #include <config.h>
21
22 #include <gtk/gtk.h>
23 #include "gailbox.h"
24
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);
28
29 G_DEFINE_TYPE (GailBox, gail_box, GAIL_TYPE_CONTAINER)
30
31 static void
32 gail_box_class_init (GailBoxClass *klass)
33 {
34   AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
35
36   class->ref_state_set = gail_box_ref_state_set;
37 }
38
39 static void
40 gail_box_init (GailBox *box)
41 {
42 }
43
44 AtkObject* 
45 gail_box_new (GtkWidget *widget)
46 {
47   GObject *object;
48   AtkObject *accessible;
49
50   g_return_val_if_fail (GTK_IS_BOX (widget), NULL);
51
52   object = g_object_new (GAIL_TYPE_BOX, NULL);
53
54   accessible = ATK_OBJECT (object);
55   atk_object_initialize (accessible, widget);
56
57   accessible->role = ATK_ROLE_FILLER;
58
59   return accessible;
60 }
61
62 static AtkStateSet*
63 gail_box_ref_state_set (AtkObject *accessible)
64 {
65   AtkStateSet *state_set;
66   GtkWidget *widget;
67
68   state_set = ATK_OBJECT_CLASS (gail_box_parent_class)->ref_state_set (accessible);
69   widget = GTK_ACCESSIBLE (accessible)->widget;
70
71   if (widget == NULL)
72     return state_set;
73
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);
78
79   return state_set;
80 }