]> Pileus Git - ~andy/gtk/blob - modules/other/gail/gailseparator.c
d8fbb7c89d62b5dfe4a640b442f9b9f33d6dd53b
[~andy/gtk] / modules / other / gail / gailseparator.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 "gailseparator.h"
24
25 static void         gail_separator_class_init            (GailSeparatorClass  *klass);
26 static void         gail_separator_init                  (GailSeparator       *accessible);
27 static void         gail_separator_initialize            (AtkObject           *accessible,
28                                                           gpointer             data);
29 static AtkStateSet* gail_separator_ref_state_set         (AtkObject           *accessible);
30
31 G_DEFINE_TYPE (GailSeparator, gail_separator, GAIL_TYPE_WIDGET)
32
33 static void
34 gail_separator_class_init (GailSeparatorClass *klass)
35 {
36   AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
37
38   class->initialize = gail_separator_initialize;
39   class->ref_state_set = gail_separator_ref_state_set;
40 }
41
42 static void
43 gail_separator_init (GailSeparator *accessible)
44 {
45 }
46
47 static void
48 gail_separator_initialize (AtkObject *accessible,
49                            gpointer  data)
50 {
51   ATK_OBJECT_CLASS (gail_separator_parent_class)->initialize (accessible, data);
52
53   accessible->role = ATK_ROLE_SEPARATOR;
54 }
55
56 static AtkStateSet*
57 gail_separator_ref_state_set (AtkObject *accessible)
58 {
59   AtkStateSet *state_set;
60   GtkWidget *widget;
61
62   state_set = ATK_OBJECT_CLASS (gail_separator_parent_class)->ref_state_set (accessible);
63   widget = GTK_ACCESSIBLE (accessible)->widget;
64
65   if (widget == NULL)
66     return state_set;
67
68   if (GTK_IS_VSEPARATOR (widget))
69     atk_state_set_add_state (state_set, ATK_STATE_VERTICAL);
70   else if (GTK_IS_HSEPARATOR (widget))
71     atk_state_set_add_state (state_set, ATK_STATE_HORIZONTAL);
72
73   return state_set;
74 }