2 * Copyright © 2011 Red Hat Inc.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 * Authors: Benjamin Otte <otte@gnome.org>
21 #ifndef __GTK_ALLOCATED_BITMASK_PRIVATE_H__
22 #define __GTK_ALLOCATED_BITMASK_PRIVATE_H__
28 typedef struct _GtkBitmask GtkBitmask;
30 #define _gtk_bitmask_to_bits(mask) \
31 (GPOINTER_TO_SIZE (mask) >> ((gsize) 1))
33 #define _gtk_bitmask_from_bits(bits) \
34 GSIZE_TO_POINTER ((((gsize) (bits)) << 1) | 1)
36 #define _gtk_bitmask_is_allocated(mask) \
37 (!(GPOINTER_TO_SIZE (mask) & 1))
39 #define GTK_BITMASK_N_DIRECT_BITS (sizeof (gsize) * 8 - 1)
42 GtkBitmask * _gtk_allocated_bitmask_copy (const GtkBitmask *mask);
43 void _gtk_allocated_bitmask_free (GtkBitmask *mask);
45 void _gtk_allocated_bitmask_print (const GtkBitmask *mask,
48 GtkBitmask * _gtk_allocated_bitmask_intersect (GtkBitmask *mask,
49 const GtkBitmask *other) G_GNUC_WARN_UNUSED_RESULT;
50 GtkBitmask * _gtk_allocated_bitmask_union (GtkBitmask *mask,
51 const GtkBitmask *other) G_GNUC_WARN_UNUSED_RESULT;
52 GtkBitmask * _gtk_allocated_bitmask_subtract (GtkBitmask *mask,
53 const GtkBitmask *other) G_GNUC_WARN_UNUSED_RESULT;
55 gboolean _gtk_allocated_bitmask_get (const GtkBitmask *mask,
57 GtkBitmask * _gtk_allocated_bitmask_set (GtkBitmask *mask,
59 gboolean value) G_GNUC_WARN_UNUSED_RESULT;
61 GtkBitmask * _gtk_allocated_bitmask_invert_range (GtkBitmask *mask,
63 guint end) G_GNUC_WARN_UNUSED_RESULT;
65 gboolean _gtk_allocated_bitmask_equals (const GtkBitmask *mask,
66 const GtkBitmask *other);
67 gboolean _gtk_allocated_bitmask_intersects (const GtkBitmask *mask,
68 const GtkBitmask *other);
72 #endif /* __GTK_ALLOCATED_BITMASK_PRIVATE_H__ */