Rodrigo Moya

Álvaro del Castillo

Diego Sevilla

Roberto Majadas

Gregorio Robles

Yolanda Moreno

Germán Poo-Caamaño

Alejandro Sánchez Acosta

Roberto Pérez Cubero

Carlos Garnacho

Juanan Pereira

Antonio Santiago

Alejandro Valdés

Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation. No hay Secciones Invariantes ni Textos de Portada o Contraportada. Puedes consultar una copia de la licencia en http://www.gnu.org/copyleft/fdl.html.


Tabla de contenidos

Introducción
El proyecto GNOME
Historia de GNOME.
Organización de GNOME: La Fundación GNOME.
Herramientas y servicios de comunicación en el desarrollo.
GNOME Hispano.
Preparación del entorno
Internacionalización (i18n)
GLib
Tipos de datos de GLib
Mensajes de salida.
Trabajar con cadenas.
Jugando con el tiempo.
Miscelánea de funciones.
Bucles de ejecución.
Tratamiento de ficheros y canales de entrada/salida.
Manejo de memoria dinámica.
Estructuras de datos: listas enlazadas, pilas y colas.
Estructuras de datos avanzadas.
GLib avanzado.
Sistema de objetos de GLib.
Gestión dinámica de tipos.
Señales
GObject, la clase base.
Parámetros y valores.
Pango
Caminando hacia Pango
Pango, a modo de introducción
Arquitectura
El API de Pango e Implementación
Pango en GTK+2.0
El futuro de Pango
GTK+
Qué es un widget
Bucle de ejecución y eventos
Ejemplo básico
Contenedores
Ventanas
Visualización y Entrada de información
Botones
Menús y barras de herramientas
Ventanas de selección
Widgets de desplazamiento
Árboles y listas en GTK+
Ejemplos básico
GtkTreeModel: El modelo de datos
GtkTreeView: Visualización
Cortar y pegar en GtkTreeView
Editor de texto multilínea
GTK+ avanzado
El portapapeles GTK
Drag and Drop
Imágenes, botones, menús de stock
Ficheros de recursos
Selecciones
Otros widgets
Accesibilidad en GNOME
Interfaces de usuario con Glade y libglade
Introducción
Diseño de interfaces de usuario con Glade
La biblioteca libglade
Ejemplos más avanzados
El canvas de GNOME
Bases
Objetos por defecto
Ejemplo sobre los objetos
Trabajar con los objetos
Crear objetos propios
Un objeto propio
CORBA
Introducción a CORBA
La Historia de CORBA en el proyecto GNOME
El lenguaje IDL
ORBit, la implementación de CORBA de GNOME
Activación de componentes
libgnorba
Instalación de componentes en el sistema
Activación de Componentes
Bonobo
¿Qué es Bonobo?
CORBA y Bonobo
Implementación de interfaces CORBA con Bonobo
Factorías de componentes
Controles Bonobo
Documentos compuestos
Contenedores (BonoboWindow)
Monikers
XML en GNOME
libxml (o GNOME-XML)
GConf, el sistema de configuración
Almacenes de datos
Clientes GConf
Notificaciones
Gestión de errores
gnome-vfs
URIs (Uniform Resource Identifier)
Operaciones básicas
E/S Asíncrona
Módulos para GNOME-VFS
Acceso a BBDD
libgda
libgnomedb
Documentacin con DocBook
Por qu usar SGML?
El DTD DocBook
Elementos
A. Cómo migrar aplicaciones a la plataforma Gnome 2.0
Introducción
¿Qué significa migración?
Las bibliotecas de la plataforma
Preparación del ambiente
Cambios al entorno de compilación

Lista de figuras

1. Esquema de un nodo y una lista enlazada.
1. Cinco estilos diferentes de colocación
2. Diferencias entre padding y spacing
3. Diferentes layout settings de las cajas de botones
4. Tabla con 3 botones
5. GtkNotebook en acción
6. Ejemplo de Paned Window
7. Ejemplo de GtkFixed
8. GtkAspectFrame: al redimensionar la ventana, el ratio se mantiene
1. Lista de la compra
2. UML de interfaces para modelos de datos
3. Grupos en MrProject
4. Vista Gantt con tareas anidadas
1. Vista general de una sesión de trabajo con Glade
2. Ventana principal
3. Paleta de herramientas
4. Ventana de propiedades
5. Ventana de trabajo
6. Ventana resultante para el ejericicio
7. Construcción paso a paso con cajas
8. Construcción paso a paso con tabla
1. Modo RGB
2. Modo GDK
3. Objetos en el canvas
1. El selector de componentes de Bonobo
1. GnomeDbBrowser en Glade
2. GnomeDbBrowser en el front-end de GNOME-DB
3. Componente de edición GtkHTML
4. El control calculadora en la ventana contenedora
5. Gnumeric con Guppi empotrado
6. Comunicación contenedor y empotrable
7. GUI del contenedor Bonobo
8. Selección de componente Bonobo empotrable
9. Varias vistas de un mismo empotrado
10. Barra de menús sin componente empotrado activo
11. Barra de menús con componente empotrado activo
12. Barra de menús con componente empotrado activo
13. Impresión del contenedor Bonobo
1. logo

Lista de tablas

1. Tipos de GLib que se corresponden con los del estándar C.
2. Tipos de GLib que facilitan el uso de tipos del estándar C.
3. Tipos de GLib que aseguran el tamaño del dato entre plataformas.
4. Tipos de GLib nuevos que no están en el estándar de C.
5. Funciones de verificación de caracteres.
6. Operadores de inserción en listas enlazadas.
7. Operadores de eliminación en listas enlazadas.
8. Operadores de búsqueda en listas enlazadas.
9. Operador para vaciar la lista.
10. Operadores de inserción en listas doblemente enlazadas.
11. Operadores de eliminación en listas doblemente enlazadas.
12. Operadores de búsqueda en listas doblemente enlazadas.
13. Operador para vaciar la lista
14. Operadores asociados al TDA Cola.
15. Operadores asociados al TDA Pila.
1. Acciones que se pueden tomar
2. Posibles valores para flags
3. Acciones cuando se suelta
1. Principales widgets
1. Parámetros de GnomeCanvasRect y GnomeCanvasEllipse
2. Parámetros de GnomeCanvasPolygon
3. Parámetros GnomeCanvasText
4. Parámetros de GnomeCanvasLine
5. Parámetros GnomeCanvasPixbuf
6. Parámetros de GnomeCanvasWidget
1. Tabla de ejemplo
A.1. Módulos de bibliotecas de plataforma GNOME 2
A.2. Paquetes requeridos para compilar la plataforma GNOME 2
A.3. Paquetes extra requeridos para ejecutar GNOME 2

Lista de ejemplos

1. Mensajes de salida.
2. Personalización de mensajes de salida.
3. Depuración de programas con g_assert.
4. Depuración de programas con g_return_if_fail y g_return_val_if_fail.
5. Uso de mensajes de bitácora.
6. Crear una cadena con GString.
7. Añadir cadena a un GString.
8. Insertar una cadena a un GString.
9. Borrar una cadena a un GString.
10. Crear texto preformateado con GString.
11. Añadir texto preformateado con GString.
12. Añadir e insertar caracteres a un GString.
13. Ejemplo de uso de GTimer
14. Insertar un nuevo dato en una posición determinada.
15. Parámetro GCompareFunc para insertar en orden creciente.
16. Insertar elementos en orden creciente.
17. Elimina un elemento de la lista.
18. Función que imprime una lista.
19. Insertar un nuevo dato en una posición determinada.
20. Insertar elementos en orden creciente.
21. Eliminar un elemento de la lista.
22. Busca un valor dado en la lista.
23. Creando una nueva cola.
24. Función que comprueba si una cola está vacía.
25. Función que consulta el frente de la cola.
26. Función que consulta el final de la cola.
27. Introducir un nuevo elemento en la cola.
28. Saca un elemento de la cola.
29. Vacía la cola.
30. Creando una nueva pila.
31. Función que comprueba si una pila está vacía.
32. Función que consulta la cima de la pila.
33. Introducir un nuevo elemento en la pila.
34. Saca un elemento de la pila.
35. Vacía la pila
36. Ejemplo de Makefile para usar GModule
37. Cabecera del Módulo
38. Código del Módulo
39. Ejemplo de plugin
1. Primer ejemplo con GTK
2. Un ejemplo más elaborado con GTK
1. Canvas Básico
2. Cambiar el zoom
3. GnomeCanvas y GtkScrolledWindow
4. Uso de GnomeCanvasPoints
5. Objetos en el canvas
6. Capturando eventos
7. Objeto propio
8. Crear un evento point
9. realize y unrealize
10. Verificar is_buf y is_bg
11. Cabecera para usar GnomeCanvasShape
12. Funciones para usar GnomeCanvasShape
13. MyItem
1. Uso de Etiquetas
2. Elemento raiz de un documento
3. Encabezado de un archivo XML
4. Ejemplo de un Articulo
5. Ejemplo de un Libro
6. Un libro creado con varios archivos
A.1. Fichero autogen.sh de ejemplo
A.2. fichero de ejemplo gobject.pc.in