[gedit/wip/adjustment-checks] utils: add gedit_utils_check_adjustment_invariants()
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/wip/adjustment-checks] utils: add gedit_utils_check_adjustment_invariants()
- Date: Mon, 25 Jul 2022 00:19:09 +0000 (UTC)
commit e9eff29545f3c8b5c5647e3d0b0043b4e4f7920d
Author: Sébastien Wilmet <swilmet informatique-libre be>
Date: Mon Jul 25 02:17:35 2022 +0200
utils: add gedit_utils_check_adjustment_invariants()
gedit/gedit-utils.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++
gedit/gedit-utils.h | 2 ++
2 files changed, 69 insertions(+)
---
diff --git a/gedit/gedit-utils.c b/gedit/gedit-utils.c
index 9fc9e4fb0..1ea5a1aa0 100644
--- a/gedit/gedit-utils.c
+++ b/gedit/gedit-utils.c
@@ -539,4 +539,71 @@ gedit_utils_newline_type_to_string (GtkSourceNewlineType newline_type)
return NULL;
}
+gboolean
+gedit_utils_check_adjustment_invariants (GtkAdjustment *adjustment)
+{
+ gdouble value;
+ gdouble lower;
+ gdouble upper;
+ gdouble page_size;
+ gdouble page_increment;
+ gdouble step_increment;
+
+ g_return_val_if_fail (GTK_IS_ADJUSTMENT (adjustment), FALSE);
+
+ value = gtk_adjustment_get_value (adjustment);
+ lower = gtk_adjustment_get_lower (adjustment);
+ upper = gtk_adjustment_get_upper (adjustment);
+ page_size = gtk_adjustment_get_page_size (adjustment);
+ page_increment = gtk_adjustment_get_page_increment (adjustment);
+ step_increment = gtk_adjustment_get_step_increment (adjustment);
+
+ if (lower > upper)
+ {
+ return FALSE;
+ }
+
+ if (value < lower)
+ {
+ return FALSE;
+ }
+
+ if (value > upper)
+ {
+ return FALSE;
+ }
+
+ if (page_size < 0.0)
+ {
+ return FALSE;
+ }
+
+ if (page_increment < 0.0)
+ {
+ return FALSE;
+ }
+
+ if (step_increment < 0.0)
+ {
+ return FALSE;
+ }
+
+ if (page_size != 0.0)
+ {
+ gdouble real_upper = upper - page_size;
+
+ if (lower > real_upper)
+ {
+ return FALSE;
+ }
+
+ if (value > real_upper)
+ {
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
/* ex:set ts=8 noet: */
diff --git a/gedit/gedit-utils.h b/gedit/gedit-utils.h
index a6b423db0..f400f0e34 100644
--- a/gedit/gedit-utils.h
+++ b/gedit/gedit-utils.h
@@ -49,6 +49,8 @@ GtkSourceCompressionType gedit_utils_get_compression_type_from_content_type (c
const gchar *gedit_utils_newline_type_to_string (GtkSourceNewlineType
newline_type);
+gboolean gedit_utils_check_adjustment_invariants (GtkAdjustment *adjustment);
+
G_END_DECLS
#endif /* GEDIT_UTILS_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]