mutter/clutter/clutter-script.h
Emmanuele Bassi 02b69e4d76 Move header inclusion guard at the top
GCC has some optimization for the inclusion guard, but they only work if
the check is the outermost one.

We're fairly inconsistent because of historical reasons, so we should
ensure that we follow the same pattern in every public header.
2015-07-07 16:03:32 +01:00

221 lines
9.1 KiB
C

/*
* Clutter.
*
* An OpenGL based 'interactive canvas' library.
*
* Authored By Matthew Allum <mallum@openedhand.com>
*
* Copyright (C) 2006 OpenedHand
*
* 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/>.
*/
#ifndef __CLUTTER_SCRIPT_H__
#define __CLUTTER_SCRIPT_H__
#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
#error "Only <clutter/clutter.h> can be included directly."
#endif
#include <clutter/clutter-types.h>
G_BEGIN_DECLS
#define CLUTTER_TYPE_SCRIPT (clutter_script_get_type ())
#define CLUTTER_SCRIPT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_SCRIPT, ClutterScript))
#define CLUTTER_IS_SCRIPT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_SCRIPT))
#define CLUTTER_SCRIPT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_SCRIPT, ClutterScriptClass))
#define CLUTTER_IS_SCRIPT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_SCRIPT))
#define CLUTTER_SCRIPT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_SCRIPT, ClutterScriptClass))
typedef struct _ClutterScript ClutterScript;
typedef struct _ClutterScriptPrivate ClutterScriptPrivate;
typedef struct _ClutterScriptClass ClutterScriptClass;
/**
* ClutterScriptConnectFunc:
* @script: a #ClutterScript
* @object: the object to connect
* @signal_name: the name of the signal
* @handler_name: the name of the signal handler
* @connect_object: the object to connect the signal to, or %NULL
* @flags: signal connection flags
* @user_data: user data to pass to the signal handler
*
* This is the signature of a function used to connect signals. It is used
* by the clutter_script_connect_signals_full() function. It is mainly
* intended for interpreted language bindings, but could be useful where the
* programmer wants more control over the signal connection process.
*
* Since: 0.6
*/
typedef void (* ClutterScriptConnectFunc) (ClutterScript *script,
GObject *object,
const gchar *signal_name,
const gchar *handler_name,
GObject *connect_object,
GConnectFlags flags,
gpointer user_data);
/**
* ClutterScriptError:
* @CLUTTER_SCRIPT_ERROR_INVALID_TYPE_FUNCTION: Type function not found
* or invalid
* @CLUTTER_SCRIPT_ERROR_INVALID_PROPERTY: Property not found or invalid
* @CLUTTER_SCRIPT_ERROR_INVALID_VALUE: Invalid value
*
* #ClutterScript error enumeration.
*
* Since: 0.6
*/
typedef enum {
CLUTTER_SCRIPT_ERROR_INVALID_TYPE_FUNCTION,
CLUTTER_SCRIPT_ERROR_INVALID_PROPERTY,
CLUTTER_SCRIPT_ERROR_INVALID_VALUE
} ClutterScriptError;
/**
* CLUTTER_SCRIPT_ERROR:
*
* Error domain for the #ClutterScript errors
*
* Since: 0.6
*/
#define CLUTTER_SCRIPT_ERROR (clutter_script_error_quark ())
CLUTTER_AVAILABLE_IN_ALL
GQuark clutter_script_error_quark (void);
/**
* ClutterScript:
*
* The #ClutterScript structure contains only private data
* and should be accessed using the provided API
*
* Since: 0.6
*/
struct _ClutterScript
{
/*< private >*/
GObject parent_instance;
ClutterScriptPrivate *priv;
};
/**
* ClutterScriptClass:
* @get_type_from_name: virtual function used to map a type name
* to a #GType. This function should only be overridden by
* language bindings in order to map native types to #GType.
* The default implementation is equivalent to g_type_from_name()
*
* The #ClutterScriptClass structure contains only private data
*
* Since: 0.6
*/
struct _ClutterScriptClass
{
/*< private >*/
GObjectClass parent_class;
/*< public >*/
GType (* get_type_from_name) (ClutterScript *script,
const gchar *type_name);
/*< private >*/
/* padding, for future expansion */
void (*_clutter_reserved1) (void);
void (*_clutter_reserved2) (void);
void (*_clutter_reserved3) (void);
void (*_clutter_reserved4) (void);
void (*_clutter_reserved5) (void);
void (*_clutter_reserved6) (void);
void (*_clutter_reserved7) (void);
void (*_clutter_reserved8) (void);
};
CLUTTER_AVAILABLE_IN_ALL
GType clutter_script_get_type (void) G_GNUC_CONST;
CLUTTER_AVAILABLE_IN_ALL
ClutterScript * clutter_script_new (void);
CLUTTER_AVAILABLE_IN_ALL
guint clutter_script_load_from_file (ClutterScript *script,
const gchar *filename,
GError **error);
CLUTTER_AVAILABLE_IN_ALL
guint clutter_script_load_from_data (ClutterScript *script,
const gchar *data,
gssize length,
GError **error);
CLUTTER_AVAILABLE_IN_1_10
guint clutter_script_load_from_resource (ClutterScript *script,
const gchar *resource_path,
GError **error);
CLUTTER_AVAILABLE_IN_ALL
GObject * clutter_script_get_object (ClutterScript *script,
const gchar *name);
CLUTTER_AVAILABLE_IN_ALL
gint clutter_script_get_objects (ClutterScript *script,
const gchar *first_name,
...) G_GNUC_NULL_TERMINATED;
CLUTTER_AVAILABLE_IN_ALL
GList * clutter_script_list_objects (ClutterScript *script);
CLUTTER_AVAILABLE_IN_ALL
void clutter_script_unmerge_objects (ClutterScript *script,
guint merge_id);
CLUTTER_AVAILABLE_IN_ALL
void clutter_script_ensure_objects (ClutterScript *script);
CLUTTER_DEPRECATED_IN_1_12
void clutter_script_add_states (ClutterScript *script,
const gchar *name,
ClutterState *state);
CLUTTER_DEPRECATED_IN_1_12
ClutterState * clutter_script_get_states (ClutterScript *script,
const gchar *name);
CLUTTER_AVAILABLE_IN_ALL
void clutter_script_connect_signals (ClutterScript *script,
gpointer user_data);
CLUTTER_AVAILABLE_IN_ALL
void clutter_script_connect_signals_full (ClutterScript *script,
ClutterScriptConnectFunc func,
gpointer user_data);
CLUTTER_AVAILABLE_IN_ALL
void clutter_script_add_search_paths (ClutterScript *script,
const gchar * const paths[],
gsize n_paths);
CLUTTER_AVAILABLE_IN_ALL
gchar * clutter_script_lookup_filename (ClutterScript *script,
const gchar *filename) G_GNUC_MALLOC;
CLUTTER_AVAILABLE_IN_ALL
GType clutter_script_get_type_from_name (ClutterScript *script,
const gchar *type_name);
CLUTTER_AVAILABLE_IN_1_10
void clutter_script_set_translation_domain (ClutterScript *script,
const gchar *domain);
CLUTTER_AVAILABLE_IN_1_10
const gchar * clutter_script_get_translation_domain (ClutterScript *script);
CLUTTER_AVAILABLE_IN_ALL
const gchar * clutter_get_script_id (GObject *gobject);
G_END_DECLS
#endif /* __CLUTTER_SCRIPT_H__ */