Volver al índice ; Próximo: Comunicación entre clientes. Gestor de Ventanas ; Previo: Eventos

Recursos

Especificación de recursos

El modelo actual de recursos en Xlib está basado en el que se desarrolló originalmente para Xt. Así, las definiciones de recursos no deben interpretarse como:

      aplicación.variable:   valor
sino usando un modelo orientado a objetos:
      objeto.subobjeto...subobjeto.recurso:   valor

Esta jerarquía de objetos refleja la jerarquía de ventanas de la aplicación. Cada componente de la jerarquía de objetos puede ser un nombre de instancia (por convención empieza por una letra minúscula) o el nombre de una clase (por convención empieza por mayúscula).

Además de por el carácter . los componentes pueden separarse usando * que representa que entre dichos componentes puede haber cualquier número de componentes. Adicionalmente se puede usar como componente el carácter ? que indica un componente con cualquier nombre.

Los recursos en Xlib son una convención entre la aplicación y el usuario. Por ejemplo, una aplicación llamada editor para determina el color de fondo de la segunda opción del menú principal decide consultar un recurso usando:

    XrmGetResource (base_datos_recursos,
        "editor.principal.opcion1.background",
        "Editor.Menu.Opcion.Background", ...)
Esta petición puede resolverse con cualquiera de las siguientes definiciones (escritas en orden de preferencia):
      editor.principal.opcion1.background: green
      Editor.Menu.Opcion.Background: black
      editor.?.?.background: magenta
      Editor*background: cyan
      *background: red
La documentación de cada aplicación debe especificar qué recursos utiliza.

Base de datos de recursos

Para facilitar la configuración de la aplicación, se permite que el usuario especifique recursos en diferentes lugares. La mezcla de todas estas definiciones da lugar a la base de datos de recursos. Por convención las programas que usan Xlib deben buscar en el siguiente orden:

  1. Un fichero cuyo nombre sea igual que la clase de la aplicación almacenado normalmente en el directorio /usr/lib/X11/app_defaults.
  2. El mismo fichero pero en el directorio especificado por las variables de entorno XUSERFILESEARCHPATH o XAPPLRESDIR.
  3. Recursos cargados en la propiedad RESOURCE_MANAGER (usando el comando xrdb) o, si está vacía, el fichero .Xdefaults en el directorio home del usuario.
  4. Fichero especificado por la variable de entorno XENVIRONMENT o, si no existe, el fichero .Xdefaults-host en el directorio home del usuario.
  5. Recursos definidos en la línea del comando.

Existen funciones para interpretar la línea de comandos, leer recursos de un fichero, mezclar bases de datos, etc.

Recuperación de recursos

A diferencia de una base de datos comercial, la base de datos de recursos puede contener definiciones incompletas pero siempre se accede con peticiones completamente especificadas.

Para recuperar un recurso la aplicación usa generalmente la función XrmGetResource. El algoritmo de resolución selecciona entre las definiciones que cumplen la petición áquella que esté más especificada. Así, el . tiene preferencia sobre ? y éste sobre *, y las definiciones de instancias sobre las de clases.


Volver al índice ; Próximo: Comunicación entre clientes. Gestor de Ventanas ; Previo: Eventos