gtkbitmaskprivate.h 3.54 KB
Newer Older
Benjamin Otte's avatar
Benjamin Otte committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/*
 * Copyright © 2011 Red Hat Inc.
 *
 * 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
Javier Jardón's avatar
Javier Jardón committed
15
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
Benjamin Otte's avatar
Benjamin Otte committed
16 17 18 19 20 21 22 23
 *
 * Authors: Benjamin Otte <otte@gnome.org>
 */

#ifndef __GTK_BITMASK_PRIVATE_H__
#define __GTK_BITMASK_PRIVATE_H__

#include <glib.h>
24
#include "gtkallocatedbitmaskprivate.h"
Benjamin Otte's avatar
Benjamin Otte committed
25 26 27

G_BEGIN_DECLS

28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
static inline GtkBitmask *      _gtk_bitmask_new                  (void);
static inline GtkBitmask *      _gtk_bitmask_copy                 (const GtkBitmask  *mask);
static inline void              _gtk_bitmask_free                 (GtkBitmask        *mask);

static inline char *            _gtk_bitmask_to_string            (const GtkBitmask  *mask);
static inline void              _gtk_bitmask_print                (const GtkBitmask  *mask,
                                                                   GString           *string);

static inline GtkBitmask *      _gtk_bitmask_intersect            (GtkBitmask        *mask,
                                                                   const GtkBitmask  *other) G_GNUC_WARN_UNUSED_RESULT;
static inline GtkBitmask *      _gtk_bitmask_union                (GtkBitmask        *mask,
                                                                   const GtkBitmask  *other) G_GNUC_WARN_UNUSED_RESULT;
static inline GtkBitmask *      _gtk_bitmask_subtract             (GtkBitmask        *mask,
                                                                   const GtkBitmask  *other) G_GNUC_WARN_UNUSED_RESULT;

static inline gboolean          _gtk_bitmask_get                  (const GtkBitmask  *mask,
                                                                   guint              index_);
static inline GtkBitmask *      _gtk_bitmask_set                  (GtkBitmask        *mask,
                                                                   guint              index_,
                                                                   gboolean           value) G_GNUC_WARN_UNUSED_RESULT;

static inline GtkBitmask *      _gtk_bitmask_invert_range         (GtkBitmask        *mask,
                                                                   guint              start,
                                                                   guint              end) G_GNUC_WARN_UNUSED_RESULT;

static inline gboolean          _gtk_bitmask_is_empty             (const GtkBitmask  *mask);
static inline gboolean          _gtk_bitmask_equals               (const GtkBitmask  *mask,
                                                                   const GtkBitmask  *other);
static inline gboolean          _gtk_bitmask_intersects           (const GtkBitmask  *mask,
                                                                   const GtkBitmask  *other);


/* This is the actual implementation of the functions declared above.
61
 * We put it in a separate file so people don’t get scared from looking at this
62 63 64 65
 * file when reading source code.
 */
#include "gtkbitmaskprivateimpl.h"

Benjamin Otte's avatar
Benjamin Otte committed
66 67 68 69

G_END_DECLS

#endif /* __GTK_BITMASK_PRIVATE_H__ */