summaryrefslogtreecommitdiff
path: root/clutter/clutter-macros.h
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@linux.intel.com>2012-02-27 14:03:57 +0000
committerEmmanuele Bassi <ebassi@linux.intel.com>2012-02-27 14:03:57 +0000
commita6b1972d71b17c813625b72973eefda406306e79 (patch)
treedd1a2da8e649153fa0f3c1009c6bae9203e03928 /clutter/clutter-macros.h
parent4e6ff76a77ab61562891612cd4137b63202bf552 (diff)
downloadclutter-a6b1972d71b17c813625b72973eefda406306e79.tar.gz
Move macros to their own headers
Diffstat (limited to 'clutter/clutter-macros.h')
-rw-r--r--clutter/clutter-macros.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/clutter/clutter-macros.h b/clutter/clutter-macros.h
new file mode 100644
index 000000000..8561ea35c
--- /dev/null
+++ b/clutter/clutter-macros.h
@@ -0,0 +1,56 @@
+/*
+ * Clutter.
+ *
+ * An OpenGL based 'interactive canvas' library.
+ *
+ * Copyright (C) 2012 Intel Corporation
+ *
+ * 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 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/>.
+ */
+
+#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
+#error "Only <clutter/clutter.h> can be included directly."
+#endif
+
+#ifndef __CLUTTER_MACROS_H__
+#define __CLUTTER_MACROS_H__
+
+/* these macros are used to mark deprecated functions, and thus have to be
+ * exposed in a public header.
+ *
+ * do *not* use them in other libraries depending on Clutter: use G_DEPRECATED
+ * and G_DEPRECATED_FOR, or use your own wrappers around them.
+ */
+#ifdef CLUTTER_DISABLE_DEPRECATION_WARNINGS
+#define CLUTTER_DEPRECATED
+#define CLUTTER_DEPRECATED_FOR(f)
+#else
+#define CLUTTER_DEPRECATED G_DEPRECATED
+#define CLUTTER_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f)
+#endif
+
+/* some structures are meant to be opaque and still be allocated on the stack;
+ * in order to avoid people poking at their internals, we use this macro to
+ * ensure that users don't accidentally access a struct private members.
+ *
+ * we use the CLUTTER_COMPILATION define to allow us easier access, though.
+ */
+#ifdef CLUTTER_COMPILATION
+#define CLUTTER_PRIVATE_FIELD(x) x
+#else
+#define CLUTTER_PRIVATE_FIELD(x) clutter_private_ ## x
+#endif
+
+
+#endif /* __CLUTTER_MACROS_H__ */