[gtk/matthiasc/for-master: 11/12] set: Add a few useful functions



commit 2f1028ed795e2984b41583391e4ba145e5c0c689
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Jun 4 21:35:53 2020 -0400

    set: Add a few useful functions
    
    Allow to find out if a set is empty, and its
    min and max.

 gtk/gtkset.c | 32 ++++++++++++++++++++++++++++++++
 gtk/gtkset.h |  4 ++++
 2 files changed, 36 insertions(+)
---
diff --git a/gtk/gtkset.c b/gtk/gtkset.c
index 69f1dea72e..18fab23c56 100644
--- a/gtk/gtkset.c
+++ b/gtk/gtkset.c
@@ -335,6 +335,38 @@ next_range:
   return TRUE;
 }
 
+gboolean
+gtk_set_is_empty (GtkSet *set)
+{
+  return set->ranges->len == 0;
+}
+
+guint
+gtk_set_get_min (GtkSet *set)
+{
+  Range *r;
+
+  if (gtk_set_is_empty (set))
+    return 0;
+
+  r = &g_array_index (set->ranges, Range, 0);
+
+  return r->first;
+}
+
+guint
+gtk_set_get_max (GtkSet *set)
+{
+  Range *r;
+
+  if (gtk_set_is_empty (set))
+    return 0;
+
+  r = &g_array_index (set->ranges, Range, set->ranges->len - 1);
+
+  return r->first + r->n_items - 1;
+}
+
 #if 0
 void
 gtk_set_dump (GtkSet *set)
diff --git a/gtk/gtkset.h b/gtk/gtkset.h
index d0ba4e1a96..1ab6c6d1a2 100644
--- a/gtk/gtkset.h
+++ b/gtk/gtkset.h
@@ -67,4 +67,8 @@ void      gtk_set_iter_init    (GtkSetIter *iter,
 gboolean  gtk_set_iter_next    (GtkSetIter *iter,
                                 guint      *item);
 
+gboolean  gtk_set_is_empty     (GtkSet *set);
+guint     gtk_set_get_min      (GtkSet *set);
+guint     gtk_set_get_max      (GtkSet *set);
+
 #endif  /* __GTK_SET_H__ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]