summaryrefslogtreecommitdiff
path: root/gtk/gtkbitset.h
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2020-06-10 08:14:02 +0200
committerBenjamin Otte <otte@redhat.com>2020-06-26 07:13:32 +0200
commitdb452f0c458a68431374185ada5abd8624f4a815 (patch)
treed146deab1d31f051b872939ff14e0d30a0b0f1ce /gtk/gtkbitset.h
parentd830724d4fb221056c2c278507f7550cdd076e7b (diff)
downloadgtk+-db452f0c458a68431374185ada5abd8624f4a815.tar.gz
Add GtkBitset
Diffstat (limited to 'gtk/gtkbitset.h')
-rw-r--r--gtk/gtkbitset.h151
1 files changed, 151 insertions, 0 deletions
diff --git a/gtk/gtkbitset.h b/gtk/gtkbitset.h
new file mode 100644
index 0000000000..fc26e0d7de
--- /dev/null
+++ b/gtk/gtkbitset.h
@@ -0,0 +1,151 @@
+/*
+ * Copyright © 2020 Benjamin Otte
+ *
+ * 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/>.
+ *
+ * Authors: Benjamin Otte <otte@gnome.org>
+ */
+
+
+#ifndef __GTK_BITSET_H__
+#define __GTK_BITSET_H__
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gtk/gtktypes.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_BITSET (gtk_bitset_get_type ())
+
+GDK_AVAILABLE_IN_ALL
+GType gtk_bitset_get_type (void) G_GNUC_CONST;
+
+GDK_AVAILABLE_IN_ALL
+GtkBitset * gtk_bitset_ref (GtkBitset *self);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_unref (GtkBitset *self);
+
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_contains (const GtkBitset *self,
+ guint value);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_is_empty (const GtkBitset *self);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_equals (const GtkBitset *self,
+ const GtkBitset *other);
+GDK_AVAILABLE_IN_ALL
+guint gtk_bitset_get_minimum (const GtkBitset *self);
+GDK_AVAILABLE_IN_ALL
+guint gtk_bitset_get_maximum (const GtkBitset *self);
+
+GDK_AVAILABLE_IN_ALL
+GtkBitset * gtk_bitset_new_empty (void);
+GDK_AVAILABLE_IN_ALL
+GtkBitset * gtk_bitset_copy (const GtkBitset *self);
+
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_remove_all (GtkBitset *self);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_add (GtkBitset *self,
+ guint value);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_remove (GtkBitset *self,
+ guint value);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_add_range (GtkBitset *self,
+ guint start,
+ guint n_items);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_remove_range (GtkBitset *self,
+ guint start,
+ guint n_items);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_add_range_closed (GtkBitset *self,
+ guint first,
+ guint last);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_remove_range_closed (GtkBitset *self,
+ guint first,
+ guint last);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_add_rectangle (GtkBitset *self,
+ guint start,
+ guint width,
+ guint height,
+ guint stride);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_remove_rectangle (GtkBitset *self,
+ guint start,
+ guint width,
+ guint height,
+ guint stride);
+
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_union (GtkBitset *self,
+ const GtkBitset *other);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_intersect (GtkBitset *self,
+ const GtkBitset *other);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_subtract (GtkBitset *self,
+ const GtkBitset *other);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_difference (GtkBitset *self,
+ const GtkBitset *other);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_shift_left (GtkBitset *self,
+ guint amount);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_shift_right (GtkBitset *self,
+ guint amount);
+GDK_AVAILABLE_IN_ALL
+void gtk_bitset_slice (GtkBitset *self,
+ guint position,
+ guint removed,
+ guint added);
+
+typedef struct {gpointer private_data[10]; } GtkBitsetIter;
+
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_iter_init_first (GtkBitsetIter *iter,
+ const GtkBitset *set,
+ guint *value);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_iter_init_last (GtkBitsetIter *iter,
+ const GtkBitset *set,
+ guint *value);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_iter_init_at (GtkBitsetIter *iter,
+ const GtkBitset *set,
+ guint target,
+ guint *value);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_iter_next (GtkBitsetIter *iter,
+ guint *value);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_iter_previous (GtkBitsetIter *iter,
+ guint *value);
+GDK_AVAILABLE_IN_ALL
+guint gtk_bitset_iter_get_value (const GtkBitsetIter *iter);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_bitset_iter_is_valid (const GtkBitsetIter *iter);
+
+
+
+G_END_DECLS
+
+#endif /* __GTK_BITSET_H__ */