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 #ifndef __GTK_CLUTTER_EMBED_H__
24 #define __GTK_CLUTTER_EMBED_H__
26 #include <gtk/gtkwidget.h>
27 #include <clutter/clutter-main.h>
28 #include <clutter/clutter-actor.h>
32 #define GTK_TYPE_CLUTTER_EMBED (gtk_clutter_embed_get_type ())
33 #define GTK_CLUTTER_EMBED(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_CLUTTER_EMBED, GtkClutterEmbed))
34 #define GTK_IS_CLUTTER_EMBED(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_CLUTTER_EMBED))
35 #define GTK_CLUTTER_EMBED_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GTK_TYPE_CLUTTER_EMBED, GtkClutterEmbedClass))
36 #define GTK_IS_CLUTTER_EMBED_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GTK_TYPE_CLUTTER_EMBED))
37 #define GTK_CLUTTER_EMBED_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTK_TYPE_CLUTTER_EMBED, GtkClutterEmbedClass))
39 typedef struct _GtkClutterEmbed GtkClutterEmbed;
40 typedef struct _GtkClutterEmbedPrivate GtkClutterEmbedPrivate;
41 typedef struct _GtkClutterEmbedClass GtkClutterEmbedClass;
44 * ClutterGtkInitError:
45 * @CLUTTER_INIT_ERROR_LAST: Placeholder
46 * @CLUTTER_INIT_ERROR_GTK: Unable to initialize GTK+
48 * Extension of the #ClutterInitError enumeration for the integration
54 CLUTTER_INIT_ERROR_LAST = CLUTTER_INIT_ERROR_INTERNAL,
56 CLUTTER_INIT_ERROR_GTK = (CLUTTER_INIT_ERROR_LAST - 1)
57 } ClutterGtkInitError;
62 * A #GtkWidget containing the default Clutter stage.
66 struct _GtkClutterEmbed
69 GtkWidget parent_instance;
71 GtkClutterEmbedPrivate *priv;
75 * GtkClutterEmbedClass:
77 * Base class for #GtkClutterEmbed.
81 struct _GtkClutterEmbedClass
84 GtkWidgetClass parent_class;
86 /* padding for future expansion */
87 void (*_clutter_gtk_reserved1) (void);
88 void (*_clutter_gtk_reserved2) (void);
89 void (*_clutter_gtk_reserved3) (void);
90 void (*_clutter_gtk_reserved4) (void);
91 void (*_clutter_gtk_reserved5) (void);
92 void (*_clutter_gtk_reserved6) (void);
95 GType gtk_clutter_embed_get_type (void) G_GNUC_CONST;
96 GtkWidget * gtk_clutter_embed_new (void);
97 ClutterActor *gtk_clutter_embed_get_stage (GtkClutterEmbed *embed);
99 ClutterInitError gtk_clutter_init (gint *argc,
104 #endif /* __GTK_CLUTTER_EMBED_H__ */