Diferencias entre las revisiones 1 y 2
Versión 1 con fecha 2007-12-18 02:38:12
Tamaño: 1579
Editor: JuanPizarro
Comentario:
Versión 2 con fecha 2008-12-04 08:49:13
Tamaño: 1580
Editor: localhost
Comentario: converted to 1.6 markup
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 43: Línea 43:
 '''''Volver a:''''' [:Documentacion/Desarrollo/SistemaDeObjetosDeGlib:Sistema de objetos de GLib]  '''''Volver a:''''' [[Documentacion/Desarrollo/SistemaDeObjetosDeGlib|Sistema de objetos de GLib]]

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:

   1 struct _GValue
   2 {
   3         GType   g_type;
   4 
   5         /* public for GTypeValueTable methods */
   6         union {
   7                 gint    v_int;
   8                 guint   v_uint;
   9                 glong   v_long;
  10                 gulong  v_ulong;
  11                 gint64      v_int64;
  12                 guint64     v_uint64;
  13                 gfloat  v_float;
  14                 gdouble v_double;
  15                 gpointerv_pointer;
  16         } data[2];
  17 };
  18 
  19 GValue* g_value_init (GValue *value,
  20                         GType g_type);
  21 
  22 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).


Documentacion/Desarrollo/SistemaDeObjetosDeGlib/Senales (última edición 2008-12-04 08:49:13 efectuada por localhost)