1 /* GTK - The GIMP Toolkit
2  * Copyright (C) 2010 Red Hat, Inc.
3  * Author: Matthias Clasen
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 #ifndef __GTK_GRID_H__
20 #define __GTK_GRID_H__
21 
22 
23 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
24 #error "Only <gtk/gtk.h> can be included directly."
25 #endif
26 
27 #include <gtk/gtkwidget.h>
28 
29 
30 G_BEGIN_DECLS
31 
32 #define GTK_TYPE_GRID                   (gtk_grid_get_type ())
33 #define GTK_GRID(obj)                   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_GRID, GtkGrid))
34 #define GTK_GRID_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_GRID, GtkGridClass))
35 #define GTK_IS_GRID(obj)                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_GRID))
36 #define GTK_IS_GRID_CLASS(klass)        (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_GRID))
37 #define GTK_GRID_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_GRID, GtkGridClass))
38 
39 
40 typedef struct _GtkGrid              GtkGrid;
41 typedef struct _GtkGridClass         GtkGridClass;
42 
43 struct _GtkGrid
44 {
45   /*< private >*/
46   GtkWidget parent_instance;
47 };
48 
49 /**
50  * GtkGridClass:
51  * @parent_class: The parent class.
52  */
53 struct _GtkGridClass
54 {
55   GtkWidgetClass parent_class;
56 
57   /*< private >*/
58 
59   gpointer padding[8];
60 };
61 
62 GDK_AVAILABLE_IN_ALL
63 GType      gtk_grid_get_type               (void) G_GNUC_CONST;
64 GDK_AVAILABLE_IN_ALL
65 GtkWidget* gtk_grid_new                    (void);
66 GDK_AVAILABLE_IN_ALL
67 void       gtk_grid_attach                 (GtkGrid         *grid,
68                                             GtkWidget       *child,
69                                             int              column,
70                                             int              row,
71                                             int              width,
72                                             int              height);
73 GDK_AVAILABLE_IN_ALL
74 void       gtk_grid_attach_next_to         (GtkGrid         *grid,
75                                             GtkWidget       *child,
76                                             GtkWidget       *sibling,
77                                             GtkPositionType  side,
78                                             int              width,
79                                             int              height);
80 GDK_AVAILABLE_IN_ALL
81 GtkWidget *gtk_grid_get_child_at           (GtkGrid         *grid,
82                                             int              column,
83                                             int              row);
84 GDK_AVAILABLE_IN_ALL
85 void       gtk_grid_remove                 (GtkGrid         *grid,
86                                             GtkWidget       *child);
87 
88 GDK_AVAILABLE_IN_ALL
89 void       gtk_grid_insert_row             (GtkGrid         *grid,
90                                             int              position);
91 GDK_AVAILABLE_IN_ALL
92 void       gtk_grid_insert_column          (GtkGrid         *grid,
93                                             int              position);
94 GDK_AVAILABLE_IN_ALL
95 void       gtk_grid_remove_row             (GtkGrid         *grid,
96                                             int              position);
97 GDK_AVAILABLE_IN_ALL
98 void       gtk_grid_remove_column          (GtkGrid         *grid,
99                                             int              position);
100 GDK_AVAILABLE_IN_ALL
101 void       gtk_grid_insert_next_to         (GtkGrid         *grid,
102                                             GtkWidget       *sibling,
103                                             GtkPositionType  side);
104 GDK_AVAILABLE_IN_ALL
105 void       gtk_grid_set_row_homogeneous    (GtkGrid         *grid,
106                                             gboolean         homogeneous);
107 GDK_AVAILABLE_IN_ALL
108 gboolean   gtk_grid_get_row_homogeneous    (GtkGrid         *grid);
109 GDK_AVAILABLE_IN_ALL
110 void       gtk_grid_set_row_spacing        (GtkGrid         *grid,
111                                             guint            spacing);
112 GDK_AVAILABLE_IN_ALL
113 guint      gtk_grid_get_row_spacing        (GtkGrid         *grid);
114 GDK_AVAILABLE_IN_ALL
115 void       gtk_grid_set_column_homogeneous (GtkGrid         *grid,
116                                             gboolean         homogeneous);
117 GDK_AVAILABLE_IN_ALL
118 gboolean   gtk_grid_get_column_homogeneous (GtkGrid         *grid);
119 GDK_AVAILABLE_IN_ALL
120 void       gtk_grid_set_column_spacing     (GtkGrid         *grid,
121                                             guint            spacing);
122 GDK_AVAILABLE_IN_ALL
123 guint      gtk_grid_get_column_spacing     (GtkGrid         *grid);
124 GDK_AVAILABLE_IN_ALL
125 void       gtk_grid_set_row_baseline_position (GtkGrid      *grid,
126                                                int           row,
127                                                GtkBaselinePosition pos);
128 GDK_AVAILABLE_IN_ALL
129 GtkBaselinePosition gtk_grid_get_row_baseline_position (GtkGrid      *grid,
130                                                         int           row);
131 GDK_AVAILABLE_IN_ALL
132 void       gtk_grid_set_baseline_row       (GtkGrid         *grid,
133                                             int              row);
134 GDK_AVAILABLE_IN_ALL
135 int        gtk_grid_get_baseline_row       (GtkGrid         *grid);
136 
137 GDK_AVAILABLE_IN_ALL
138 void       gtk_grid_query_child            (GtkGrid         *grid,
139                                             GtkWidget       *child,
140                                             int             *column,
141                                             int             *row,
142                                             int             *width,
143                                             int             *height);
144 
145 G_END_DECLS
146 
147 #endif /* __GTK_GRID_H__ */
148