GeckoPort/es

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

English (en) español (es)

Nueva versión disponible

   Esta información está basada en la versión 1 de GeckoPort. Para la versión actual ver aquí.

En breve

   GeckoPort es una versión para Lazarus/Free Pascal de Takanori Ito's Gecko SDK for Delphi, incluyendo el componente TGeckoBrowser. El código original para Delphi está disponible aquí:

Pantallazo

Aplicación de ejemplo GBrowser usando la interfaz Win32

Descarga

   Puedes descargar el código convertido usando Subversion:

 svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/geckoport/version1 [ruta_al_directorio_local]

   Hay también disponible un archivo zip con los fuentes de la adaptación:

 http://web.me.com/macpgmr/GeckoPort/

Licencia

   MPL 1.1

Instalación

   Para instalar el paquete GeckoComponents en Lazarus:

  • Seleccionar Paquete | Abrir archivo de paquete (.lpk) ..., buscar y marcar GeckoComponents.lpk (si lo hemos dejado en el directorio Components del directorio de instalación de Lazarus).
  • Pulsar Compilar para compilar el paquete.
  • Pulsar Instalar para reconstruir y relanzar el IDE de Lazarus.

   Cómo compilar una aplicación de ejemplo:

  • Seleccionar Archivo | Abrir, marcar ChromeWin.lpi o GBrowser.lpi (ambos en el directorio SampleApps).
  • Seleccionar Ejecutar | Ejecutar para compilar y ejecutar la aplicación de ejemplo.

   Nota: es necesario tener instaladas las librerias de Gecko antes de lanzar una de las aplicaciones de ejemplo. Aquí está el instalador por si lo necesitas:

Para Hacer (To Do)

Win32

   Las aplicaciones de ejemplo ChromeWin y GBrowser funcionan igual que las de Delphi.

   Actualmente, el código presupone que la carpeta xulrunner está por debajo de la carpeta donde se encuentra el archivo ejecutable de la aplicación.

Carbon

   Una ventana nativa debe ser pasada al iniciar el componente navegador. En OS X, esta debe ser una ventana de Cocoa, por que Carbon no funciona.

Cocoa widgetset

   Aunque Cocoa actualmente sólo cuenta con TForm y uno o dos controles, la aplicación de ejemplo ChromeWin se puede ejecutar con Cocoa ya que utiliza sólo TForm.

   Resaltar que el paquete GeckoPort ahora usa Cocoa ObjC en lugar del antiguo PasCocoa. Para compilar Cocoa ObjC, se necesita una versión de FPC, que incluya soporte para ObjC (por ejemplo, compilado a partir de la rama de la SVN FPC, que es actualmente la versión 2.5.1)

   También habrá que establecer Cocoa como interfz de la aplicación, ya que el valor por defecto es Carbon. O se puede compilar ChromeWin.lpi con lazbuild y especificar la opción --ws=cocoa. Ver lb-cw-cocoa.sh para un ejemplo.

   Para ejecutar la aplicación de ejemplo ChromeWin, es necesario establecer DYLD_LIBRARY_PATH para que la librería XUL pueda cargar las otras librerías Gecko de las que depende. Una forma fácil de hacerlo es lanzar ChromeWin.app mediante mac.sh. Ten en cuenta que este lote de ordenes presupone que tiene la XUL.framework instalada.

   La aplicación de ejemplo GBrowser fallará por el incompleto estado de la interfaz Cocoa.

GTK2

   En Linux, asegúrate de establecer la variable de entorno LD_LIBRARY_PATH al directorio de xulrunner antes de ejecutar una de las aplicaciones de ejemplo. Por ejemplo:

 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/xulrunner-1.9.1.4

   Ahora el código presupones que libxul.so se encuentra en /usr/lib/xulrunner-1.9.1.4. Podemos editar el código para cambiarlo.

   Actualmente las aplicaciones de ejemplo no funcionan en Linux, fallan en la llamada a libmozjs.so desde XRE_InitEmbedding de nsXRE.pas

   No se sabe cómo trabaja la interfaz GTK2 con Gecko, ya que las aplicaciones de ejemplo no dan los suficientes datos como para determinarlo. Por favor, informe de pruebas de éxito o fracaso en la solución de este problema en Linux sólo al responsable de GeckoPort:

 MacPgmr (at) fastermac (dot) net