From 6e0f1800c84dc1c1790406c3355619117a0170e3 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Wed, 3 Apr 2019 19:03:58 +0100 Subject: Add GtkGridLayout Layout manager for grid-like widgets. --- gtk/gtkgridlayout.h | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 gtk/gtkgridlayout.h (limited to 'gtk/gtkgridlayout.h') diff --git a/gtk/gtkgridlayout.h b/gtk/gtkgridlayout.h new file mode 100644 index 0000000000..a0bd9e4717 --- /dev/null +++ b/gtk/gtkgridlayout.h @@ -0,0 +1,101 @@ +/* gtkgridlayout.h: Layout manager for grid-like widgets + * Copyright 2019 GNOME Foundation + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + */ +#pragma once + +#include + +G_BEGIN_DECLS + +#define GTK_TYPE_GRID_LAYOUT (gtk_grid_layout_get_type ()) +#define GTK_TYPE_GRID_LAYOUT_CHILD (gtk_grid_layout_child_get_type ()) + +/** + * GtkGridLayout: + * + * Layout manager for grid-like widgets. + */ +GDK_AVAILABLE_IN_ALL +G_DECLARE_FINAL_TYPE (GtkGridLayout, gtk_grid_layout, GTK, GRID_LAYOUT, GtkLayoutManager) + +GDK_AVAILABLE_IN_ALL +GtkLayoutManager * gtk_grid_layout_new (void); + +GDK_AVAILABLE_IN_ALL +void gtk_grid_layout_set_row_homogeneous (GtkGridLayout *grid, + gboolean homogeneous); +GDK_AVAILABLE_IN_ALL +gboolean gtk_grid_layout_get_row_homogeneous (GtkGridLayout *grid); +GDK_AVAILABLE_IN_ALL +void gtk_grid_layout_set_row_spacing (GtkGridLayout *grid, + guint spacing); +GDK_AVAILABLE_IN_ALL +guint gtk_grid_layout_get_row_spacing (GtkGridLayout *grid); +GDK_AVAILABLE_IN_ALL +void gtk_grid_layout_set_column_homogeneous (GtkGridLayout *grid, + gboolean homogeneous); +GDK_AVAILABLE_IN_ALL +gboolean gtk_grid_layout_get_column_homogeneous (GtkGridLayout *grid); +GDK_AVAILABLE_IN_ALL +void gtk_grid_layout_set_column_spacing (GtkGridLayout *grid, + guint spacing); +GDK_AVAILABLE_IN_ALL +guint gtk_grid_layout_get_column_spacing (GtkGridLayout *grid); +GDK_AVAILABLE_IN_ALL +void gtk_grid_layout_set_row_baseline_position (GtkGridLayout *grid, + int row, + GtkBaselinePosition pos); +GDK_AVAILABLE_IN_ALL +GtkBaselinePosition gtk_grid_layout_get_row_baseline_position (GtkGridLayout *grid, + int row); +GDK_AVAILABLE_IN_ALL +void gtk_grid_layout_set_baseline_row (GtkGridLayout *grid, + int row); +GDK_AVAILABLE_IN_ALL +int gtk_grid_layout_get_baseline_row (GtkGridLayout *grid); + +/** + * GtkGridLayoutChild: + * + * Layout properties for children of #GtkGridLayout. + */ +GDK_AVAILABLE_IN_ALL +G_DECLARE_FINAL_TYPE (GtkGridLayoutChild, gtk_grid_layout_child, GTK, GRID_LAYOUT_CHILD, GtkLayoutChild) + +GDK_AVAILABLE_IN_ALL +void gtk_grid_layout_child_set_top_attach (GtkGridLayoutChild *child, + int attach); +GDK_AVAILABLE_IN_ALL +int gtk_grid_layout_child_get_top_attach (GtkGridLayoutChild *child); +GDK_AVAILABLE_IN_ALL +void gtk_grid_layout_child_set_left_attach (GtkGridLayoutChild *child, + int attach); +GDK_AVAILABLE_IN_ALL +int gtk_grid_layout_child_get_left_attach (GtkGridLayoutChild *child); +GDK_AVAILABLE_IN_ALL +void gtk_grid_layout_child_set_column_span (GtkGridLayoutChild *child, + int span); +GDK_AVAILABLE_IN_ALL +int gtk_grid_layout_child_get_column_span (GtkGridLayoutChild *child); +GDK_AVAILABLE_IN_ALL +void gtk_grid_layout_child_set_row_span (GtkGridLayoutChild *child, + int span); +GDK_AVAILABLE_IN_ALL +int gtk_grid_layout_child_get_row_span (GtkGridLayoutChild *child); + +G_END_DECLS -- cgit v1.2.1