1/* gtkgridlayout.h: Layout manager for grid-like widgets
2 * Copyright 2019 GNOME Foundation
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
18 */
19#pragma once
20
21#include <gtk/gtklayoutmanager.h>
22
23G_BEGIN_DECLS
24
25#define GTK_TYPE_GRID_LAYOUT (gtk_grid_layout_get_type ())
26#define GTK_TYPE_GRID_LAYOUT_CHILD (gtk_grid_layout_child_get_type ())
27
28GDK_AVAILABLE_IN_ALL
29G_DECLARE_FINAL_TYPE (GtkGridLayout, gtk_grid_layout, GTK, GRID_LAYOUT, GtkLayoutManager)
30
31GDK_AVAILABLE_IN_ALL
32GtkLayoutManager * gtk_grid_layout_new (void);
33
34GDK_AVAILABLE_IN_ALL
35void gtk_grid_layout_set_row_homogeneous (GtkGridLayout *grid,
36 gboolean homogeneous);
37GDK_AVAILABLE_IN_ALL
38gboolean gtk_grid_layout_get_row_homogeneous (GtkGridLayout *grid);
39GDK_AVAILABLE_IN_ALL
40void gtk_grid_layout_set_row_spacing (GtkGridLayout *grid,
41 guint spacing);
42GDK_AVAILABLE_IN_ALL
43guint gtk_grid_layout_get_row_spacing (GtkGridLayout *grid);
44GDK_AVAILABLE_IN_ALL
45void gtk_grid_layout_set_column_homogeneous (GtkGridLayout *grid,
46 gboolean homogeneous);
47GDK_AVAILABLE_IN_ALL
48gboolean gtk_grid_layout_get_column_homogeneous (GtkGridLayout *grid);
49GDK_AVAILABLE_IN_ALL
50void gtk_grid_layout_set_column_spacing (GtkGridLayout *grid,
51 guint spacing);
52GDK_AVAILABLE_IN_ALL
53guint gtk_grid_layout_get_column_spacing (GtkGridLayout *grid);
54GDK_AVAILABLE_IN_ALL
55void gtk_grid_layout_set_row_baseline_position (GtkGridLayout *grid,
56 int row,
57 GtkBaselinePosition pos);
58GDK_AVAILABLE_IN_ALL
59GtkBaselinePosition gtk_grid_layout_get_row_baseline_position (GtkGridLayout *grid,
60 int row);
61GDK_AVAILABLE_IN_ALL
62void gtk_grid_layout_set_baseline_row (GtkGridLayout *grid,
63 int row);
64GDK_AVAILABLE_IN_ALL
65int gtk_grid_layout_get_baseline_row (GtkGridLayout *grid);
66
67GDK_AVAILABLE_IN_ALL
68G_DECLARE_FINAL_TYPE (GtkGridLayoutChild, gtk_grid_layout_child, GTK, GRID_LAYOUT_CHILD, GtkLayoutChild)
69
70GDK_AVAILABLE_IN_ALL
71void gtk_grid_layout_child_set_row (GtkGridLayoutChild *child,
72 int row);
73GDK_AVAILABLE_IN_ALL
74int gtk_grid_layout_child_get_row (GtkGridLayoutChild *child);
75GDK_AVAILABLE_IN_ALL
76void gtk_grid_layout_child_set_column (GtkGridLayoutChild *child,
77 int column);
78GDK_AVAILABLE_IN_ALL
79int gtk_grid_layout_child_get_column (GtkGridLayoutChild *child);
80GDK_AVAILABLE_IN_ALL
81void gtk_grid_layout_child_set_column_span (GtkGridLayoutChild *child,
82 int span);
83GDK_AVAILABLE_IN_ALL
84int gtk_grid_layout_child_get_column_span (GtkGridLayoutChild *child);
85GDK_AVAILABLE_IN_ALL
86void gtk_grid_layout_child_set_row_span (GtkGridLayoutChild *child,
87 int span);
88GDK_AVAILABLE_IN_ALL
89int gtk_grid_layout_child_get_row_span (GtkGridLayoutChild *child);
90
91G_END_DECLS
92

source code of gtk/gtk/gtkgridlayout.h