'''~+Señales+~''' == == Las señales constituyen la forma que tienen las clases en GLib de informar de determinados cambios de estado o de requerir la ejecución de determinadas acciones. Pero antes de entrar en detalle sobre qué son y para qué sirven las señales, es necesario el estudio de una serie de conceptos, que se detallan a continuación. === GValue === GValue representa una forma única de contener un valor de cualquier tipo. Viendo su definición se comprueba mejor qué significa esto: {{{ #!cplusplus struct _GValue { GType g_type; /* public for GTypeValueTable methods */ union { gint v_int; guint v_uint; glong v_long; gulong v_ulong; gint64 v_int64; guint64 v_uint64; gfloat v_float; gdouble v_double; gpointerv_pointer; } data[2]; }; GValue* g_value_init (GValue *value, GType g_type); void g_value_unset (GValue *value); }}} Como puede observarse, GValue permite albergar valores de distintos tipos, todo ello en una unión de C. Lo interesante es que, a partir de esta simple organización (una estructura que contiene el tipo del valor almacenado y el valor), se pueden pasar valores de distintos tipos de un sitio a otro, usando un método común entre todas las partes involucradas. Existen multitud de funciones relacionados con GValue, que permiten desde copiarlo (''g_value_copy'') a alterar su contenido fácilmente (''g_value_get/_set''). ---- '''''Volver a:''''' [[Documentacion/Desarrollo/SistemaDeObjetosDeGlib|Sistema de objetos de GLib]]