1 /* gtk-clutter-embed.h: Embeddable ClutterStage
3 * Copyright (C) 2007 OpenedHand
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library. If not see <http://www.fsf.org/licensing>.
19 * Iain Holmes <iain@openedhand.com>
20 * Emmanuele Bassi <ebassi@openedhand.com>
23 #if !defined(__CLUTTER_GTK_H_INSIDE__) && !defined(CLUTTER_GTK_COMPILATION)
24 #error "Only <clutter-gtk/clutter-gtk.h> can be included directly."
27 #ifndef __GTK_CLUTTER_EMBED_H__
28 #define __GTK_CLUTTER_EMBED_H__
31 #include <clutter/clutter.h>
35 #define GTK_TYPE_CLUTTER_EMBED (gtk_clutter_embed_get_type ())
36 #define GTK_CLUTTER_EMBED(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_CLUTTER_EMBED, GtkClutterEmbed))
37 #define GTK_IS_CLUTTER_EMBED(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_CLUTTER_EMBED))
38 #define GTK_CLUTTER_EMBED_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GTK_TYPE_CLUTTER_EMBED, GtkClutterEmbedClass))
39 #define GTK_IS_CLUTTER_EMBED_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GTK_TYPE_CLUTTER_EMBED))
40 #define GTK_CLUTTER_EMBED_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTK_TYPE_CLUTTER_EMBED, GtkClutterEmbedClass))
42 typedef struct _GtkClutterEmbed GtkClutterEmbed;
43 typedef struct _GtkClutterEmbedPrivate GtkClutterEmbedPrivate;
44 typedef struct _GtkClutterEmbedClass GtkClutterEmbedClass;
47 * ClutterGtkInitError:
48 * @CLUTTER_INIT_ERROR_LAST: Placeholder
49 * @CLUTTER_INIT_ERROR_GTK: Unable to initialize GTK+
51 * Extension of the #ClutterInitError enumeration for the integration
57 CLUTTER_INIT_ERROR_LAST = CLUTTER_INIT_ERROR_INTERNAL,
59 CLUTTER_INIT_ERROR_GTK = (CLUTTER_INIT_ERROR_LAST - 1)
60 } ClutterGtkInitError;
65 * A #GtkWidget containing the default Clutter stage.
69 struct _GtkClutterEmbed
72 GtkWidget parent_instance;
74 GtkClutterEmbedPrivate *priv;
78 * GtkClutterEmbedClass:
80 * Base class for #GtkClutterEmbed.
84 struct _GtkClutterEmbedClass
87 GtkWidgetClass parent_class;
89 /* padding for future expansion */
90 void (*_clutter_gtk_reserved1) (void);
91 void (*_clutter_gtk_reserved2) (void);
92 void (*_clutter_gtk_reserved3) (void);
93 void (*_clutter_gtk_reserved4) (void);
94 void (*_clutter_gtk_reserved5) (void);
95 void (*_clutter_gtk_reserved6) (void);
98 GType gtk_clutter_embed_get_type (void) G_GNUC_CONST;
99 GtkWidget * gtk_clutter_embed_new (void);
100 ClutterActor *gtk_clutter_embed_get_stage (GtkClutterEmbed *embed);
102 ClutterInitError gtk_clutter_init (gint *argc,
107 #endif /* __GTK_CLUTTER_EMBED_H__ */