                             
                         Clip-Glade 0.0
                       Sergio Zayas - 2.005
                     sergio_zayas@yahoo.com.ar
     

Aviso
-----
       Esta es una versin preliminar, incompleta y no plenamente 
depurada.

     
Introduccin
------------
       Clip-Glade es un mdulo de enlace (binding) entre el compilar Clip
y la librera libGlade.
       Permite, a partir de los archivos xml generados por Glade (.glade),
mostrar el interfaz grfico y enlazar las seales generadas dentro de una
aplicacin Clip (.prg).
       Al contrario que hace Clip en su implementacin de GTK, aqu se ha
usado el mismo nombre de las funciones que utiliza el API de libGlade para C.



Ms informacin
---------------
       Es de gran ayuda consultar la documentacin disponible de libglade.

       
       
Referencia de funciones
-----------------------
       Las funciones que aparecen a continuacin se corresponden con el API
de libglade 2.4.2, algunas se han omitido por no ser de inters para el 
usuario y otras an no estn implementadas.


NOTA: En los parmetros, (obl) significa que es obligatorio y (opc) opcional.


glade_init ()
=============

glade_init() => nil
       
       Se usa para iniciar el entorno del procesador de archivos '.glade'.
       En libglade-2 no es necesario porque la inicializacin es automtica,
de todas formas no provoca ningn problema realizar la llamada.




glade_require()
===============

glade_require( clibrary ) => nil 
   clibrary (obl): Nombre de librera requerida.

       Asegura que una librera requerida por el archivo que se va a procesar
est disponible.




clip_glade_xml_new()
====================

glade_xml_new ( fname, root, domain) => hxml  nil
   fname  (obl): Nombre del archivo '.glade'(xml) a procesar.
   root   (opc): Nombre de la ventana que se quiere cargar.
   domain (opc): Nombre del dominio de traduccin de cadenas de texto.
   
   hxml: Identificador del archivo procesado, necesario para otras 
         funciones.
 
       Procesa un archivo .glade y crea todos los 'widgets' contenidos en l.
       Si root='nombrewidget' entonces solo se crea ese widget y sus hijos.
       Si domain='nombre_dominio' entonces las cadenas de texto se traducen
al dominio indicado, para mas informacin consultar la documentacin de gettext.
       



glade_xml_new_from_buffer()
===========================

glade_xml_new_from_buffer( buffer, size, root, domain) => hxml  nil
   buffer (obl): Cadena conteniendo el cdigo xml a procesar.
   size   (obl):   Longitud de la cadena.
   root   (opc):   Nombre de la ventana que se quiere cargar.
   domain (opc): Nombre del dominio de traduccin de cadenas de texto.
   
   hxml: Identificador del archivo procesado, necesario para otras 
         funciones.

       Es igual que la anterior funcin pero la fuente del cdigo xml
es un bfer en memoria en lugar de un archivo.




glade_xml_get_widget ()
=======================

glade_xml_get_widget( hxml, name) => oWidget  nil
   hxml (obl): Identificador vlido devuelto por glade_xml_new()
   name (obl): Nombre del widget que se quiere recuperar.

       Esta funcin devuelve el 'widget' cuyo nombre se corresponda con 'name'
o nil si no encuentra ninguno. El 'widget' puede ser 'root' (una ventana) o 
cualquier hijo.



   
glade_get_widget_name()
=======================

glade_get_widget_name( widget ) => cNombreWidget
    widget (obl): 'widget' (no el nombre del widget) vlido

    cNombreWidget: Nombre del widget.
    
       Devuelve el nombre del 'widget' dado como parmetro. El 'widget'
debe ser vlido, esto es, obtenido previamente con glade_xml_get_widget().




glade_xml_get_widget_prefix() 
=============================

glade_xml_get_widget_prefix( hxml, name) => aWidgets
   hxml (obl): Identificador vlido devuelto por glade_xml_new()
   name (obl): Cadena inicial del nombre de los 'widgets' que se quieren
               recuperar. Es sensible a maysculas/minsculas.

   aWidgets  : Matriz.
    
       Devuelve una matriz con los widgets cuyo nombre comienza por la cadena 
dada en 'name'; si no se encuentra ninguno devuelve una matriz vaca.




glade_get_widget_tree() - Pendiente de implementar
=======================

glade_get_widget_tree( widget ) => hxml
   widget (obl): Widget vlido, no su nombre.
   
   hxml : Identificador xml.
   
       Esta funcin devuelve un identificador xml que define la estructura
para crear el 'widget' vlido dado en el parmetro. El 'widget'
debe ser vlido, esto es, obtenido previamente con glade_xml_get_widget().




glade_xml_signal_connect()
========================== 

glade_xml_signal_connect( hxml, handlername, block ) => nil
   hxml        (obl): Identificador vlido devuelto por glade_xml_new().
   handlername (obl): Nombre del gestor de seal.
   block       (obl): Codeblock que recibir la seal.
   
        En la descripcin del interfaz glade los manejadores de seal para 
los widgets se especifican mediante un nombre. Esta funcin permite conectar
una funcin Clip con todas las seales cuyo nombre especificado coincida con
el dado en 'handlername'.




glade_xml_signal_connect_data() - No implementada
===============================

glade_xml_signal_connect_data( hxml, handlername, block, user_data) => nil

       Esta funcin se diferencia de la anterior en que permite enviar al 
codeblock un parmetro extra; puesto que en el lenguaje Clipper a un codeblock
se le puede suministrar parmetros extra no tiene mucho sentido el uso de
esta funcin.




glade_xml_signal_autoconnect ()
===============================

glade_xml_signal_autoconnect( hxml) => nil
   hxml (obl): Identificador vlido devuelto por glade_xml_new()

       Esta funcin es una variante de glade_xml_signal_connect() que 
permite la conexin automtica de seales con funciones Clip.
       Cuando se llama busca entre las funciones de la aplicacin aquellas
cuyo nombre coincida con el nombre del gestor de seal (handlername) y 
establece el enlace.
       Las funciones que se quieran enlazar con esta llamada no pueden ser
privadas a un mdulo, es decir, no pueden definirse como 'static'.

 



Contacto
--------
       Para cualquier sugerencia o correccin enviar los mensajes a
sergio_zayas@yahoo.com.ar.


