diff --git a/clutter/Makefile.am b/clutter/Makefile.am index d9bd0a470..fd058e132 100644 --- a/clutter/Makefile.am +++ b/clutter/Makefile.am @@ -93,6 +93,7 @@ source_h = \ $(srcdir)/clutter-layout-manager.h \ $(srcdir)/clutter-layout-meta.h \ $(srcdir)/clutter-list-model.h \ + $(srcdir)/clutter-macros.h \ $(srcdir)/clutter-main.h \ $(srcdir)/clutter-media.h \ $(srcdir)/clutter-model.h \ 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 . + */ + +#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION) +#error "Only 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__ */ diff --git a/clutter/clutter-types.h b/clutter/clutter-types.h index 0ec28afa4..90e9261fb 100644 --- a/clutter/clutter-types.h +++ b/clutter/clutter-types.h @@ -30,36 +30,11 @@ #include +#include #include G_BEGIN_DECLS -/* 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 - #define CLUTTER_TYPE_ACTOR_BOX (clutter_actor_box_get_type ()) #define CLUTTER_TYPE_FOG (clutter_fog_get_type ()) #define CLUTTER_TYPE_GEOMETRY (clutter_geometry_get_type ()) diff --git a/clutter/clutter-version.h.in b/clutter/clutter-version.h.in index a08d768aa..13d9bdfc8 100644 --- a/clutter/clutter-version.h.in +++ b/clutter/clutter-version.h.in @@ -23,6 +23,10 @@ * */ +#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION) +#error "Only can be included directly." +#endif + /** * SECTION:clutter-version * @short_description: Versioning utility macros diff --git a/clutter/clutter.h b/clutter/clutter.h index 47b5a34d1..7f5d51737 100644 --- a/clutter/clutter.h +++ b/clutter/clutter.h @@ -73,6 +73,7 @@ #include "clutter-layout-manager.h" #include "clutter-layout-meta.h" #include "clutter-list-model.h" +#include "clutter-macros.h" #include "clutter-main.h" #include "clutter-media.h" #include "clutter-model.h"