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: - browser (
WebKit2.WebView
) – la instancia deWebView
. - _web_send (
launcher_browser._web_send()
) – la funcion para ejecutar JS en el browser. - implementation (
WebKitMethods
oWebKit2Methods
) – instancia del wrapper Zaguan segun la version elegida de WebKit.
-
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 deBaseActionController
(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
.
- url_word (str) – Clave que linkea una URI con el procesador
-
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 eventoresource-request-starting
del browser, esto es para poder atender a nuevas peticiones de URI.Parameters: Returns: el objeto
WebView
Return type:
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:
- Version 1: no existe documentacion.
- Version 2: http://lazka.github.io/pgi-docs/WebKit2-4.0/classes/WebView.html#WebKit2.WebView.signals.resource_load_started
-
process_uri
(uri)¶ Por cada procesador registrado manda a procesar la URI.
Parameters: uri (str) – la URI a procesar.
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.
- browser (WebKit2.WebView) – el objeto
-
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:
-
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.
- browser (WebKit2.WebView) – el objeto
-
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.
- browser (WebKit2.WebView) – el objeto
-
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.
- browser (WebKit2.WebView) – el objeto
-
static
-
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.
- browser (WebView) – el objeto
-
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.
- browser (WebView) – el objeto
-
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.
- browser (WebView) – el objeto
-
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.
- browser (WebView) – el objeto
-
static
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 usandoGLib.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 deparam
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 unasynchronous_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 lauri
.Variables: - controller (zaguan.controller.WebContainerController) – se usa para crear el browser.
- uri (str) – indica los recursos que se requieren mostrar en el browser.
- on_close – funcion que se ejecuta al cerrar.
-
__init__
(uri, controller=None)¶ Constructor de Zaguan
Parameters: - uri (str) – la URI del HTML a visualizar en el browser.
- controller (zaguan.controller.WebContainerController) – el controlador.
-
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
()¶
-