Welcome to Zaguan’s documentation!

Zaguan is a Framework to allow the easy creation of hibrid apps.

Zaguan is Free Software! you can check the code at http://github.com/MSA-Argentina/zaguan

Supported toolkits

  • GTK+ (Full support)
  • QT4 No event caching or developer tools

Installation

With easy_install

sudo easy_install zaguan

With pip

sudo pip install zaguan

From source

git clone https://github.com/MSA-Argentina/zaguan.git
sudo python setup.py install

Other requirements

  • python-webkit package (to use with GTK)
  • QT4 (to use with QT)

Table of contents

zaguan

zaguan

Submodules

actions
class zaguan.actions.BaseActionController(controller)

Bases: object

Clase base para las acciones que son enlazadas con los controladores que heredan de WebContainerController

Variables:__controler (zaguan.controller.WebContainerController) – controlador con el cual interactua la clase.
__init__(controller)

Constructor de la clase. Establece el link con un controlador.

Parameters:controller (zaguan.controller.WebContainerController) – el controlador a linkear.
controller

Getter para __controller.

Returns:el controlador
Return type:zaguan.controller.WebContainerController
send_command(*args, **kwargs)

Envía un comando al controlador utilizando el método WebContainerController.send_command() pasando *args y **kwargs

container
zaguan.container.launch_browser(uri, debug=False, user_settings=None, window=None, webkit_version=None, debug_callback=None)

Crea e inicializa el objeto browser.

Parameters:
  • debug (boolean) – indica si se debe mostrar informacion de debug.
  • user_settings (dict) – diccionario que contiene las settings que se deben pasar al webkit.
  • window (Gtk.Window) – objeto al que se le va a injetar el browser.
  • webkit_version (int) – la version de webit a usar. Puede ser 1 o 2.
Returns:
launcher_browser._web_send(msg)

Inyecta javascript de forma asíncrona en la vista. Esta funcion es uno de los valores a devolver por launch_browser().

Parameters:msg (str) – el codigo javascript a correr en el browser
controller
class zaguan.controller.WebContainerController

Bases: object

Clase base para los controladores de contenedores web. Controla la interaccion con el browser en ambas direcciones.

Variables:
  • processors (list) – lista de procesadores.
  • inspector (ZaguanInspector) – se instancia solo cuando se usa WebKit version 1.
__init__()

Constructor de la clase. Inicializa WebContainerController.processors con una lista vacía.

add_processor(url_word, instance=None)

Agrega una instancia de la funcion _inner a la lista de procesadores para que desde el browser se pueda llamar a metodos de Python. Para mas detalles ver la documentacion de _inner().

Parameters:
  • url_word (str) – Clave que linkea una URI con el procesador instance.
  • instance (zaguan.actions.BaseActionController) – Una instancia de BaseActionController que debe tener implementados los metodos que se intentaran ejecutar desde el browser para la URI.
add_processor._inner(uri)

Si alguna parte de la URI coincide con url_word entonces procesa el texto restante y lo divide en dos partes: el nombre del método y los datos (parámetros a pasar al metodo). Busca el método en la instancia de BaseActionController (instance) y si existe lo ejecuta.

Parameters:uri (str) – la URI a parsear.
Raises:NotImplementedError – excepcion que se lanza cuando el método que está llamando el browser no fué implementado en la instancia de BaseActionController.
get_browser(uri, settings=None, debug=False, webkit_version=None, debug_callback=None)

Obtiene el browser, el metodo para inyectar JS y la implementacion del wrapper de WebKit. Conecta el método WebContainerController.on_navigation_requested al evento resource-request-starting del browser, esto es para poder atender a nuevas peticiones de URI.

Parameters:
  • uri (str) – the URI of the HTML to open with the web view.
  • settings (list) – the settings send to webkit.
  • debug (boolean) – to indicate if it should output debug and add context menu and inspector.
  • webkit_version (int) – the webkit gtk version (1 or 2)
Returns:

el objeto WebView

Return type:

WebKit2.WebView

on_navigation_requested(webview, resource, request, *args)

Este es el método que se ejecuta cada vez que en el browser se pide cargar una URI. Llama a WebContainerController.process_uri() con la URI que obtiene de la request que se pasa como parametro.

Los argumentos cambian segun la version de WebKit:

process_uri(uri)

Por cada procesador registrado manda a procesar la URI.

Parameters:uri (str) – la URI a procesar.
send_command(command, data=None)

Inyecta la ejecucion de un comando en el browser.

Parameters:
  • command (str) – el comando a ejecutar en el browser.
  • data (any) – los datos que se envian como parametros del comando.
set_screen(screen, **kwargs)

Envia el comando ‘change_screep’ al broswer.

Parameters:
  • screen (str) – pantalla a la que se quiere cambiar.
  • kargs – otros argumentos
engines
class zaguan.engines.WebKit2Methods

Bases: object

Clase que implementa métodos estaticos para la version 2 de WebKit.

static connect(browser, callback)

Conecta el evento de navegación al browser.

Parameters:
  • browser (WebKit2.WebView) – el objeto WebView destino.
  • callback (function) – la función callback.
static create_browser(debug=False, cache_model=None, process_model=None)

Crea la instancia de WebView y la configura correctamente.

Parameters:
  • debug (bool) – indica si se debe abrir herramientas para desarrollador.
  • cache_model (WebKit2.CacheModel) – indica el comportamiento de la cache del browser.
  • process_model – sin uso.
Returns:

la instancia de WebKit2.WebView configurada.

Return type:

WebKit2.WebView

static inject_javascript(browser, script)

Injecta JavaScript en un objeto WebKit2.WebView.

Parameters:
  • browser (WebKit2.WebView) – el objeto WebView destino.
  • script (str) – el script JS a correr.
static open_uri(browser, uri)

Abre una URI en el browser.

Parameters:
  • browser (WebKit2.WebView) – el objeto WebView destino.
  • uri (str) – la URI del contenido a abrir en el browser.
static print_version()

Hace un print con la version de WebKit.

static set_settings(browser, user_settings)

Agrega las settings al browser.

Parameters:
  • browser (WebKit2.WebView) – el objeto WebView destino.
  • user_settings – las settings a agregar al browser.
class zaguan.engines.WebKitMethods

Bases: object

Clase que implementa métodos estaticos para la version 1 de WebKit.

static connect(browser, callback)

Conecta el evento de navegación al browser.

Parameters:
  • browser (WebView) – el objeto WebView destino.
  • callback (function) – la función callback.
static create_browser(debug=False, cache_model=None, process_model=None)

Crea la instancia de WebView y la configura correctamente.

Parameters:
  • debug (bool) – indica si se debe abrir herramientas para desarrollador.
  • cache_model (CacheModel) – indica el comportamiento de la cache del browser.
  • process_model – sin uso.
Returns:

la instancia de WebView configurada.

Return type:

WebView

static get_inspector(browser)

Obtiene el Inspector de la instancia de WebKit.

Parameters:browser (WebView) – el objeto WebView destino.
Returns:el inspector de zaguan.
Return type:Inspector
static inject_javascript(browser, script)

Injecta JavaScript en un objeto WebView.

Parameters:
  • browser (WebView) – el objeto WebView destino.
  • script (str) – el script JS a correr.
static open_uri(browser, uri)

Abre una URI en el browser.

Parameters:
  • browser (WebView) – el objeto WebView destino.
  • uri (str) – la URI del contenido a abrir en el browser.
static print_version()

Hace un print con la version de WebKit.

static set_settings(browser, user_settings)

Agrega las settings al browser.

Parameters:
  • browser (WebView) – el objeto WebView destino.
  • user_settings – las settings a agregar al browser.
zaguan.engines.get_wk_implementation(webkit_version)

Retorna el webkit wrapper de Zaguan segun la version.

Parameters:webkit_version (int) – la version de webkit a usar. Puede ser 1 o 2.
functions
zaguan.functions.asynchronous_gtk_message(fun)

Genera un wrapper de la funcion que se pasa como parametro (fun) para ejecutarla de forma asíncrona usando GLib.idle_add.

Parameters:fun (function) – la funcion a wrappear
Returns:la funcion wrappeada.
Return type:fun2
asynchronous_gtk_message.worker(param)

Ejecuta una funcion con sus *args y **kargs. Obtiene la funcion y sus parámetros de param

Parameters:param (tuple) – tupla que debe contener (funcion_a_ejecutar, *args, **kargs)
asynchronous_gtk_message.fun2(*args, **kargs)

Ejecuta la funcion GLib.idle_add pasándole un asynchronous_gtk_message.worker y como *data la tupla (fun,*args,**kargs)

Module contents

class zaguan.Zaguan(uri, controller=None)

Bases: object

Esta clase administra una ventana y le injecta un browser obtenido desde WebContainerController.get_browser(). El browser muestra la uri.

Variables:
__init__(uri, controller=None)

Constructor de Zaguan

Parameters:
quit(widget, event)

Funcion que se ejecuta al cerrar la ventana. Ejecuta on_close con los parametros.

Parameters:
  • widget – parametro que toma cuando Window llama al callback al salir
  • event – parametro que toma cuando Window llama al callback al salir
run(settings=None, window=None, debug=False, on_close=None)

Si no se pasa una ventana, la crea y la muestra. Obtiene un browser desde controller y lo injecta en la ventana.

Parameters:
  • settings (list) – lista de settings a enviar al webkit.
  • window (Gtk.Window) – la ventana que contiene el browser donde se visualizará el HTML.
  • debug (bool) – indica si se debe abrir las herramientas para desarrollador del browser.
  • on_close (function) – funcion que se ejecutará al cerrar.

examples

Subpackages

colors

Submodules
actions
class zaguan.examples.colors.actions.ColorsControllerActions(controller)

Bases: zaguan.actions.BaseActionController

Thsi are the actions for the colors controller.

document_ready()

Action excecuted when the document is ready.

log(data)

Action excecuted when ‘log’ is called and debug is True.

select_color(data)

Action excecuted when ‘select_color’ is called.

controller
class zaguan.examples.colors.controller.ColorsController

Bases: zaguan.controller.WebContainerController

ready()
run
zaguan.examples.colors.run.load_browser()
zaguan.examples.colors.run.load_window()
settings
web_server
Module contents

Module contents

Indices and tables