Seminario de Programación GNOME
(page 1)
Objetivos
- Conocer las herramientas que se utilizan para desarrollar
- Conocer las librerías que se utilizan para desarrollar
- Conocer los programas que se utilizan para desarrollar
(page 2)
Herramientas - CVS
- Usada para obtener el código fuente de las aplicaciones
- Autenticación
- cvs -z3 -d :pserver:anonymous@anoncvs.gnome.org:/cvs/gnome login
- Obtener módulos
- cvs checkout modulo1 modulo2 ...
(page 3)
Herramientas - autoconf/automake I
- Usadas para la compilación en distintos sabores de UNIX
- Para aplicaciones GNOME, su uso es OBLIGATORIO
- Directorio macros/
- Incluido en todas las aplicaciones de cvs.gnome.org
- Contiene macros para la gestión de opciones de compilación
- Ficheros
- configure.in, Makefile.am
- README, AUTHORS, MAINTAINERS, HACKING, ChangeLog
(page 4)
Herramientas - autoconf/automake II
- configure.in
- contiene chequeos para buscar librerías/programas, etc
- lista de Makefiles a generar
- Makefile.am
- tiene que haber uno por directorio
- contiene órdenes de compilación de programas
- tambien se usa para generación de documentación
- HACKING, README, MAINTAINERS
- ¡léelos! y pregunta antes de hacer cambios
- contienen instrucciones para "hackers"
(page 5)
Herramientas - Compilación/Instalación
- autogen.sh
- genera el fichero configure y lo ejecuta
- --help muestra la lista de parámetros que acepta configure
- --prefix indica el directorio de instalación
- make
- ejecuta todos los Makefiles generados por configure
- make install
- instala los programas/librerías/documentación
(page 6)
Herramientas - gettext/xml-i18n-tools
- Se usan para la localización/internacionalización
- _("cadena") y N_("cadena")
- se usan para marcar las cadenas a traducir
- en ficheros .c, .glade, .desktop, .oaf, ...
- gettext
- extrae las cadenas de los ficheros .c al directorio po/
- xml-i18n-tools
- extrae las cadenas de los demás ficheros al directorio po
- Directorio po/
- contiene un fichero .po por cada idioma
- POTFILES.in indica los ficheros que contienen cadenas a extraer
(page 7)
Herramientas - gtk-doc
- Genera documentación para las APIs
- la documentación se incluye directamente en el código
- genera ficheros en formato Docbook
(page 8)
Librerías - glib
- Tipos de datos "portables"
- gchar, gint, gdouble, gboolean, etc
- Gestión de memoria
- g_malloc, g_free, g_realloc
- Macros para comprobaciones
- g_return_val_if_fail/g_return_if_fail
- g_assert
- Estructuras dinámicas de datos
- GList, GArray, GPtrArray, GHashTable, GAllocator, etc
- E/S Asíncrona
- GIOChannel, g_io_add_watch, GMainLoop
(page 9)
Librerías - gtk+ I
- Orientación a objetos
- soporta la herencia de objetos
- eventos comunicados a través de señales
- Widgets básicos
- GtkWindow, GtkContainer, GtkButton, GtkLabel
- Widgets de alto nivel
- GtkFileSelector, GtkColorSelection
(page 10)
Librerías - gtk+ II
- GtkSelection
- para intercambio de datos a través del "portapapeles"
- Widgets propios
- el sistema de objetos permite definirnos nuestros propios widgets
- para añadir funcionalidad extra
(page 11)
Libreróas - gnome-libs I
- Inicialización de las aplicaciones
- gnome_init/gnome_init_with_popt_table
- Ficheros de configuración (obsoleto)
- Otros
- ejecución asíncrona (gnome_exec)
- en 2.0: Bonobo, gnome-vfs, GConf, etc
(page 12)
Librerías - gnome-libs II
- GnomeApp
- ventana con barras de menús, herramientas y estado
- GnomeUIInfo mi_menu[] = ...
- GnomeCanvas
- widget para la generación de gráficos
- usado para crear widgets de alto nivel (Gnumeric)
(page 13)
Programas
- Glade
- para generar pantallas y código fuente
- muy útil junto con libglade
- Memprof
- ayuda a la detección de agujeros de memoria
- Bug-buddy
- para enviar informes de error
(page 14)
Librerús - orbit
- 1º Escribir IDL
- definimos nuestros interfaces en el fichero.idl
- 2º Generar plantilla de la implementación
- orbit-idl --skeleton-impl fichero.idl
- 3º Generar cabos y esqueletos
(page 15)
Librerías - oaf
- Sistema de activación de objetos CORBA
- sustituto de libgnorba (¡NO USAR libgnorba!)
- Funcionalidades
- lenguaje de consulta
- activación de objetos remotos
(page 16)
Librerías - bonobo
(page 17)
Librerías - gnome-vfs
(page 18)