P. 1
ponencias-JASL2

ponencias-JASL2

Ratings: (0)|Views: 53|Likes:
Published by manuel_palomo1018
Ponencias de las II Jornadas Andaluzas de Software Libre (JASL2)
Ponencias de las II Jornadas Andaluzas de Software Libre (JASL2)

More info:

Published by: manuel_palomo1018 on Jan 31, 2012
Copyright:Traditional Copyright: All rights reserved

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/03/2014

pdf

text

original

 
Asociaci
ó
n para la Difusi
ó
n y el Avance del Software Libre en Andaluc
í 
a (ADALA)Linux Malaga (LiMA)Ponencias de lasII Jornadas Andaluzas de Software LibreM
á
laga, viernes 18 y s
á
bado 19 de octubre de 2002
 El comit 
é 
organizador est 
á
compuesto por:
Antonio Buiza Calero (buiza at adala.org)
Elena Gonz
á
lez Jurado (leni at adala.org)
Javier Linares S
á
nchez (javier at javierlinares.com), Responsable Tecnolog
í 
as de laInformaci
ó
n
Te
ó
filo Ruiz Su
á
rez (teo at adala.org), Secretario T
é
cnico
Juan Isidoro Serrano Garc
í 
a (juan at adala.org)
Jos
é
Alberto Su
á
rez L
ó
pez (bass at adala.org), Portavoz del comit
é
Fernando Usero Fuentes (fusero at wanadoo.es)
Comit 
é 
de programa:
Antonio Luque Estepa (aluque at esi.us.es), Universidad de SevillaDaniel Carri
ó
n Reinoso (daniel at yacoi.com), Yaco S.L.Alfonso Cepeda Caballos (cepeda at cartuja.us.es), Universidad de SevillaLuis Mar
í 
a Cruz (luismc at linux-malaga.org), Asociaci
ó
n de usuarios de Linux de M
á
lagaJuan J. Merelo (jmerelo at geneura.ugr.es), Universidad de Granada
 Responsable sesiones especiales:
Javier Vi
ñ
uales Guti
é
rrez (vigu at yacoi.com), Yaco S.L.
 Í 
ndice de contenidos:
Desarrollo multiplataforma con wxWindowsIntroducci
ó
n a herramientas de dise
ñ
o en LinuxGesti
ó
n libre. Una oportunidad para todosEl software libre como impulsor de la innovaci
ó
n tecnol
ó
gicaUso del lenguaje XML para el desarrollo del software libreEl proyecto de cluster SSI OpenMosixDesarrollo r
á
pido de videojuegosHerramientas b
á
sicas de desarrolloJAMES: una alternativa libre para la coordinaci
ó
n de grupos de trabajoIngenier
í 
a del software libre. Una visi
ó
n alternativa de la ingenier
í 
a del software tradicional
 
DESARROLLO MULTIPLATAFORMA CON WXWINDOWS
 Israel Herraiz Tabernero
israel.herraiz@hispalinux.es
RESUMEN
wxWindows
es una biblioteca de clases para C++ y
Python
,quepermiteeldesarrollodeaplicacionesconinterfacesgr´afi-cas de usuario de una manera r´apida y sencilla. Su princi-pal caracter´ıstica es que es multiplataforma. Desde su con-cepci´on se procur´o que fuera completamente independientedel sistema operativo y del compilador. En la actualidad, lasversiones para
Windows
y para
Linux
son completamenteestables, y la versi´on para
MacOS
8/9 y
MacOS
X est´a enuna fase muy avanzada de desarrollo. Todas estas versionesse pueden conseguir en
www.wxwindows.org
. En esteart´ıculo crearemos un ejemplo “¡Hola mundo!” con la bi-blioteca para C++, y lo compilaremos en
Windows
y
Linux
.
1. INTRODUCCI´ON
Julian Smart comenz´o a desarrollar
wxWindows
en 1992en el
Artificial Intelligence Applications Institute
, de la Uni-versidad de Edimburgo.
wxWindows
se distribuye bajo li-cencia
wxWindows LibraryLicense
, que es similarala
GNU  Library General Public License
pero que adem´as permiteusar la biblioteca para desarrollos comerciales (ya sean apli-caciones o modificaciones de la propia biblioteca), siemprey cuando estos desarrollo comerciales no usen ning´un c´odi-go distribuido bajo alguna licencia GNU.Una caracter´ıstica importante de
wxWindows
es que in-tenta usar los controles nativos en cada plataforma. Si noexisten controles de alg´un tipo en alguna plataforma, losemula(porejemplo,elcontrol
wxSpinCtrl
en
 Linux
+
GTK+
).De este modo, se logra un aspecto homog´eneo en cada pla-taforma (al contrario, por ejemplo, de lo que ocurre con lasaplicaciones desarrolladas con
GTK 
en
Windows
). En la ac-tualidad, est´a soportadas las siguientes plataformas:
Windows
3.1,
Windows
95/98/NT/2000/XPLa mayor´ıa de las variantes de
UNIX 
que usen
Motif 
La mayor´ıa de las variantes de
UNIX 
que usen
GTK+
MacAdem´as de las clases para el desarrollo de
GUI’s
,
wx-Windows
consta de una parte denominada
wxBase
que in-cluye clases como
wxString
, clases para el manejo de ar-chivos y directorios de manera independiente del sistemaoperativo, tipos de datos independientes de la arquitectura(32´o 16 bits), etc.A la hora de compilar
wxWindows
podemos elegir quese enlace de manera est´atica con las aplicaciones,´o crearuna biblioteca de enlace din´amico. Adem´as, podemos com-pilar en modo
FINAL
, o en modo
DEBUG
. En cualquiera delos casos, los ejecutables obtenidos tienen un tama˜no relati-vamente peque˜no (que podemos disminuir hasta en un 70%si usamos un compresor de ejecutables como
UPX 
, disponi-ble en
upx.sourceforge.net
).
2. WXHTML. UN MOTOR HTML PARAWXWINDOWS
Otra caracter´ıstica destacable de
wxWindows
es que in-cluye clases para visualizar archivos HTML. Por el momen-to, no implementa el est´andar completo de HTML, pero encualquier caso tiene una funcionalidad suficiente como pa-ra poder mostrar archivos sencillos, usarlo como editor detextos con coloreado de sintaxis, visor de archivos de ayuda(existen clases espec´ıficas para ello), etc.Las clases
wxHTML
permiten adem´as extender el con- junto de
tags
mediante etiquetas personalizadas, que el mo-tor se encarga de interpretar y visualizar. Esta caracter´ısticava m´as all´a de simplemente mostrar texto o im´agenes de una manera personalizada, sino que nos permite interactuarcon el archivo HTML que se est´a mostrando. En definiti-va, podemos implementar una aplicaci´on cuya interfaz conel usuario sea un archivo HTML.
wxHTML
se encargan degenerar los eventos necesarios para interacci´on del usuariocon el archivo mostrado.
3. CREACI´ON Y VISUALIZACI´ON DE IM´AGENES
La clase
wxImage
puede cargar y crear varios formatosde imagen diferentes. Incluso, se puede extender la funcio-nalidad de esta clase si creamos el
handler 
para un formatonuevo. En este momento, existen
handlers
para los forma-tos:TIFF, usando libTIFFJPEG,usandolabibliotecadel
 IndependentJPEGGroup
 
BMPGIF (s´olo para visualizar, no para crear)PNGPCXPNMAdem´as tambi´en se pueden cargar iconos en formato
ICO
o en formato
XPM 
. Es importante se˜nalar que todos losformatos de imagen y todos los de iconos se pueden usaren cualquier sistema operativo. Por ejemplo, perfectamentepuedes usar iconos en
XPM 
para la barra de herramientas deuna aplicaci´on
Windows
.
4. CONTEXTUALIZACI´ON (LOCALIZACI´ON)
wxWindows
incluye macros que permiten la traducci´onautom´aticadeunaaplicaci´onadiferentesidiomas.Loscat´alo- gos de traducci´on necesarios se crean con
GNU GetText 
apartir del c´odigo fuente de la aplicaci´on. Para que una ca-dena sea traducida, debe crearse con la macro
(
cadena
)
.Por ejemplo:
wxMessageBox( _("Este texto se podr´a traducir"),"Este no");
Para generar el cat´alogo, hay que usar la siguiente instruc-ci´on:
xgettext -C -k_ *.h *.cpp -o mi_cat´alogo.po
Para poder usar el cat´alogo de traducci´on, primero hayque compilarlo (generar el binario
mo
), con la instrucci´on(por supuesto, despu´es de haber realizado las traducciones):
msgfmt mi_cat´alogo.po -o salida.mo
Despu´es, en el c´odigo de nuestra aplicaci´on, creamos unobjeto
wxLocale
antes de crear la ventana principal:
wxLocale m_traductor;m_traductor.Init("Espa˜nol","es","C");m_traductor.AddCatalog("mi_cat´alogo");
El primer par´ametro del m´etodo
Init()
es una mera eti-queta que se usar´a en los mensajes de
wxWindows
que lorequieran (por ejemplo, los mensajes de error si no encuen-tra el cat´alogo). El segundo par´ametro es la identificaci´on del idioma que vamos a usar. Es muy importante, ya que elcat´alogo debe encontrarse en un subdirectorio que se llamecomo esta identificaci´on. La tercera cadena indica las carac-ter´ısticas culturales que se deben aplicar en la localizaci´on(es igual que el par´ametro de la funci´on
setlocale()
dela biblioteca est´andar de C[1]).Nuestraaplicaci´onbuscar´aelarchivo
mi cat´alogo.mo
dentro del subdirectorio
es
(en relaci´on al directorio dondeest´a el ejecutable). Tambi´en buscar´a el directorio
es
en otrosdirectorios predeterminados (los contenidos en la variablede entorno
PATH 
,
Mis documentos
en
Windows
y nuestrodirectorio
home
en
UNIX 
). Adem´as de nuestro cat´alogo, tambi´en buscar´a uno llamado
wxstd.mo
, que contiene lastraducciones de todos los mensajes que emite la biblioteca.
5. BIBLIOTECA EST´ANDAR DE C++
wxWindows
no emplea ninguna clase de la bibliotecaest´andar de plantillas, ni
namespaces
ni plantillas. La raz´ones que si emplearan se reducir´ıa dr´asticamente el n´umero de compiladores que se podr´ıan usar con wxWindows, ya queno todos los compiladores soportan perfectamente estas ca-racter´ısticas (e incluso, no todos tienen el mismo API parala biblioteca est´andar de plantillas).
6. DOCUMENTACI´ON6.1. Nuevos usuarios
El principal inconveniente de la documentaci´on de
wx-Windows
es que no incluye ning´un tutorial para principian-tes. Se ha concebido m´as como una documentaci´on de re-ferencia (eso s´ı, muy´util para el trabajo diario con
wxWin-dows
) que como una introducci´on a la biblioteca.Si se han tenido contactos con otras bibliotecas de cla-ses como
Qt 
´o
MFC 
, es f ´acil adaptarse a
wxWindows
, pe-ro si no se tiene ninguna experiencia con alguna bibliotecasimilar, puede ser algo sufrido comenzar a programar con
wxWindows
. Por el momento, la mejor alternativa es plan-tearse una aplicaci´on, e intentar desarrollarla con
wxWin-dows
. Cuando no sepamos c´omo implementar exactamenteuna caracter´ıstica, podemos recurrir a la extensa colecci´onde ejemplos, o incluso al propio c´odigo fuente de la biblio-teca.Est´a previsto el desarrollo de un libro de
wxWindows
por parte de los autores de la biblioteca. Por ahora, el libroest´a algo avanzado, pero todav´ıa quedan bastantes puntospor escribir.
6.2. Usuarios experimentados
Una vez que ya tengamos experiencia con
wxWindows
,la documentaci´on ser´a una valiosa ayuda para el desarrollode nuestras aplicaciones.La referencia alfab´etica incluye la documentaci´on de to- dos los m´etodos de cada clase, de los eventos que genera (yde c´omo capturarlos), una breve descripci´on de cada clase y enlaces a otros puntos de inter´es dentro de la misma biblio-teca (art´ıculos u otras clases relacionadas).Adem´as, se incluyen una serie de art´ıculos que ilustransobre determinadas caracter´ısticas de la biblioteca. Estosart´ıculos incluyen explicaciones detalladas, c´odigo de ejem-plo y enlaces a otros art´ıculos relacionados y a la documen-taci´on de las clases implicadas.Todaladocumentaci´onest´adisponibleenformatoHTML, WinHelp, MS HTML Help, PDF, PS y c´odigo fuente L
A
TEX.El ´unicoinconvenienteesqueladocumentaci´ons´oloesadis- ponible en ingl´es.

Activity (2)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->