Add GtkGridLayout

Layout manager for grid-like widgets.
This commit is contained in:
Emmanuele Bassi 2019-04-03 19:03:58 +01:00
parent 56b42a2ee9
commit 6e0f1800c8
5 changed files with 1976 additions and 0 deletions

View File

@ -86,6 +86,8 @@ gtk_gesture_swipe_get_type
gtk_gesture_zoom_get_type
gtk_gl_area_get_type
gtk_grid_get_type
gtk_grid_layout_child_get_type
gtk_grid_layout_get_type
gtk_header_bar_get_type
gtk_icon_theme_get_type
gtk_icon_view_get_type

View File

@ -128,6 +128,7 @@
#include <gtk/gtkgesturezoom.h>
#include <gtk/gtkglarea.h>
#include <gtk/gtkgrid.h>
#include <gtk/gtkgridlayout.h>
#include <gtk/gtkheaderbar.h>
#include <gtk/gtkicontheme.h>
#include <gtk/gtkiconview.h>

1870
gtk/gtkgridlayout.c Normal file

File diff suppressed because it is too large Load Diff

101
gtk/gtkgridlayout.h Normal file
View File

@ -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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <gtk/gtklayoutmanager.h>
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

View File

@ -248,6 +248,7 @@ gtk_public_sources = files([
'gtkgesturezoom.c',
'gtkglarea.c',
'gtkgrid.c',
'gtkgridlayout.c',
'gtkheaderbar.c',
'gtkicontheme.c',
'gtkiconview.c',
@ -505,6 +506,7 @@ gtk_public_headers = files([
'gtkgesturezoom.h',
'gtkglarea.h',
'gtkgrid.h',
'gtkgridlayout.h',
'gtkheaderbar.h',
'gtkicontheme.h',
'gtkiconview.h',