diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2019-04-09 15:33:52 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2019-06-30 23:42:44 +0100 |
commit | cdf80f1d652114a6bb7c9a3d38adec61f8dbcabb (patch) | |
tree | c1cd3872541d8c1e27bc2e6cb5dd28b24697ae7d /gtk/gtkconstraint.h | |
parent | e7b2c530c512523242270caaaa8e0a15bf99e492 (diff) | |
download | gtk+-cdf80f1d652114a6bb7c9a3d38adec61f8dbcabb.tar.gz |
Add GtkConstraintLayout
A layout manager using GtkConstraintSolver to measure and allocate
children.
Diffstat (limited to 'gtk/gtkconstraint.h')
-rw-r--r-- | gtk/gtkconstraint.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/gtk/gtkconstraint.h b/gtk/gtkconstraint.h new file mode 100644 index 0000000000..1ca9fd7f5e --- /dev/null +++ b/gtk/gtkconstraint.h @@ -0,0 +1,85 @@ +/* gtkconstraint.h: Constraint between two widgets + * Copyright 2019 GNOME Foundation + * + * 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/>. + * + * Author: Emmanuele Bassi + */ + +#pragma once + +#include <gtk/gtktypes.h> +#include <gtk/gtkenums.h> + +G_BEGIN_DECLS + +#define GTK_TYPE_CONSTRAINT (gtk_constraint_get_type ()) + +/** + * GtkConstraint: + * + * An object describing the relation between two widget attributes. + * + * All relations are in the form: + * + * |[<!-- language=plain --> + * target.attr_name = source.attr_name × multiplier + constant + * ]| + * + * A #GtkConstraint is immutable once it's created. + */ +GDK_AVAILABLE_IN_ALL +G_DECLARE_FINAL_TYPE (GtkConstraint, gtk_constraint, GTK, CONSTRAINT, GObject) + +GDK_AVAILABLE_IN_ALL +GtkConstraint * gtk_constraint_new (GtkWidget *target_widget, + GtkConstraintAttribute target_attribute, + GtkConstraintRelation relation, + GtkWidget *source_widget, + GtkConstraintAttribute source_attribute, + double multiplier, + double constant, + int strength); +GDK_AVAILABLE_IN_ALL +GtkConstraint * gtk_constraint_new_constant (GtkWidget *target_widget, + GtkConstraintAttribute target_attribute, + GtkConstraintRelation relation, + double constant, + int strength); + +GDK_AVAILABLE_IN_ALL +GtkWidget * gtk_constraint_get_target_widget (GtkConstraint *constraint); +GDK_AVAILABLE_IN_ALL +GtkConstraintAttribute gtk_constraint_get_target_attribute (GtkConstraint *constraint); +GDK_AVAILABLE_IN_ALL +GtkWidget * gtk_constraint_get_source_widget (GtkConstraint *constraint); +GDK_AVAILABLE_IN_ALL +GtkConstraintAttribute gtk_constraint_get_source_attribute (GtkConstraint *constraint); +GDK_AVAILABLE_IN_ALL +GtkConstraintRelation gtk_constraint_get_relation (GtkConstraint *constraint); +GDK_AVAILABLE_IN_ALL +double gtk_constraint_get_multiplier (GtkConstraint *constraint); +GDK_AVAILABLE_IN_ALL +double gtk_constraint_get_constant (GtkConstraint *constraint); +GDK_AVAILABLE_IN_ALL +int gtk_constraint_get_strength (GtkConstraint *constraint); + +GDK_AVAILABLE_IN_ALL +gboolean gtk_constraint_is_required (GtkConstraint *constraint); +GDK_AVAILABLE_IN_ALL +gboolean gtk_constraint_is_attached (GtkConstraint *constraint); +GDK_AVAILABLE_IN_ALL +gboolean gtk_constraint_is_constant (GtkConstraint *constraint); + +G_END_DECLS |