summaryrefslogtreecommitdiff
path: root/gtk/gtkcenterlayout.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2020-12-01 14:45:01 +0000
committerEmmanuele Bassi <ebassi@gnome.org>2020-12-01 15:51:52 +0000
commitc13e164f25c71ddcb9d73621acf639018e42b446 (patch)
treeeb2b8e8d37e47f63f76ae9356413430275511787 /gtk/gtkcenterlayout.c
parenteba8f36d4f20c958a68917601e91c27f535f4251 (diff)
downloadgtk+-c13e164f25c71ddcb9d73621acf639018e42b446.tar.gz
Make GtkCenterLayout accessors more idiomatic
Add argument validation, and emit a layout-changed signal whenever the start, center, and end widgets change.
Diffstat (limited to 'gtk/gtkcenterlayout.c')
-rw-r--r--gtk/gtkcenterlayout.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/gtk/gtkcenterlayout.c b/gtk/gtkcenterlayout.c
index f7b77458e5..f9fa988ca7 100644
--- a/gtk/gtkcenterlayout.c
+++ b/gtk/gtkcenterlayout.c
@@ -563,6 +563,8 @@ void
gtk_center_layout_set_orientation (GtkCenterLayout *self,
GtkOrientation orientation)
{
+ g_return_if_fail (GTK_IS_CENTER_LAYOUT (self));
+
if (orientation != self->orientation)
{
self->orientation = orientation;
@@ -581,6 +583,8 @@ gtk_center_layout_set_orientation (GtkCenterLayout *self,
GtkOrientation
gtk_center_layout_get_orientation (GtkCenterLayout *self)
{
+ g_return_val_if_fail (GTK_IS_CENTER_LAYOUT (self), GTK_ORIENTATION_HORIZONTAL);
+
return self->orientation;
}
@@ -595,6 +599,8 @@ void
gtk_center_layout_set_baseline_position (GtkCenterLayout *self,
GtkBaselinePosition baseline_position)
{
+ g_return_if_fail (GTK_IS_CENTER_LAYOUT (self));
+
if (baseline_position != self->baseline_pos)
{
self->baseline_pos = baseline_position;
@@ -631,7 +637,14 @@ void
gtk_center_layout_set_start_widget (GtkCenterLayout *self,
GtkWidget *widget)
{
+ g_return_if_fail (GTK_IS_CENTER_LAYOUT (self));
+ g_return_if_fail (widget == NULL || GTK_IS_WIDGET (widget));
+
+ if (self->start_widget == widget)
+ return;
+
self->start_widget = widget;
+ gtk_layout_manager_layout_changed (GTK_LAYOUT_MANAGER (self));
}
/**
@@ -663,7 +676,14 @@ void
gtk_center_layout_set_center_widget (GtkCenterLayout *self,
GtkWidget *widget)
{
+ g_return_if_fail (GTK_IS_CENTER_LAYOUT (self));
+ g_return_if_fail (widget == NULL || GTK_IS_WIDGET (widget));
+
+ if (self->center_widget == widget)
+ return;
+
self->center_widget = widget;
+ gtk_layout_manager_layout_changed (GTK_LAYOUT_MANAGER (self));
}
/**
@@ -677,6 +697,8 @@ gtk_center_layout_set_center_widget (GtkCenterLayout *self,
GtkWidget *
gtk_center_layout_get_center_widget (GtkCenterLayout *self)
{
+ g_return_val_if_fail (GTK_IS_CENTER_LAYOUT (self), NULL);
+
return self->center_widget;
}
@@ -693,7 +715,14 @@ void
gtk_center_layout_set_end_widget (GtkCenterLayout *self,
GtkWidget *widget)
{
+ g_return_if_fail (GTK_IS_CENTER_LAYOUT (self));
+ g_return_if_fail (widget == NULL || GTK_IS_WIDGET (widget));
+
+ if (self->end_widget == widget)
+ return;
+
self->end_widget = widget;
+ gtk_layout_manager_layout_changed (GTK_LAYOUT_MANAGER (self));
}
/**
@@ -707,5 +736,7 @@ gtk_center_layout_set_end_widget (GtkCenterLayout *self,
GtkWidget *
gtk_center_layout_get_end_widget (GtkCenterLayout *self)
{
+ g_return_val_if_fail (GTK_IS_CENTER_LAYOUT (self), NULL);
+
return self->end_widget;
}