Personalización avanzada<indexterm><primary>Panel Frontal</primary><secondary>personalización</secondary></indexterm> del Panel Frontal Los usuarios pueden personalizar el Panel Frontal utilizando los menús emergentes y los controles de Instalar Icono de los subpaneles. Este capítulo trata sobre la personalización del Panel Frontal mediante la creación y edición de archivos de configuración. Consultas adicionales Para obtener información de consulta sobre los controles y la configuración del Panel Frontal, consulte la página de manual dtfpfile(4X). Para obtener información de consulta sobre el Gestor de espacios de trabajo, consulte las páginas de manual dtwm(1) y dtwmrc(4). Archivos de configuración del Panel Frontal<indexterm> <primary>archivos de configuración</primary><secondary>Panel Frontal</secondary></indexterm><indexterm><primary>Panel Frontal</primary><secondary>archivos de configuración</secondary></indexterm> El Panel Frontal se define en una base de datos de archivos de configuración. Los archivos de configuración proporcionan un procedimiento para personalizar el Panel Frontal. Ciertas modificaciones, entre las que se incluyen las siguientes, sólo se pueden realizar editando un archivo de configuración: Añadir una nueva posición de control en el Panel Frontal. Añadir tipos especiales de controles, tales como ventanas de clientes. Cambiar determinados comportamientos predeterminados: por ejemplo, si los controles del Panel Frontal responden a una pulsación o a una doble pulsación. Para proporcionar la máxima flexibilidad en la configuración del panel, estos archivos pueden ser personales, accesibles en el sistema o ubicados en otros sistemas. El Panel Frontal lo crea y lo gestiona el Gestor de espacios de trabajo. Archivo de configuración del Panel Frontal predeterminado El Panel Frontal predeterminado está definido en el archivo de configuración del Panel Frontal /usr/dt/appconfig/types/idioma/dtwm.fp. dtwm.fp, archivo Este archivo no debe modificarse. Ruta de búsqueda para los archivos de configuración del Panel Frontal<indexterm><primary>rutas de búsqueda</primary><secondary>definiciones del Panel Frontal</secondary></indexterm><indexterm><primary>Panel Frontal</primary><secondary>ruta de búsqueda</secondary></indexterm> La definición del Panel Frontal puede distribuirse entre cualquier número de archivos ubicados localmente o en sistemas remotos. Panel Frontalconvenio de denominación para archivosLos archivos utilizados para definir el Panel Frontal deben cumplir estos requisitos: El nombre de archivo debe terminar por .fp; por ejemplo, mail.fp. El archivo debe estar ubicado en la ruta de búsqueda de la base de datos de acciones. La ruta de búsqueda de base de datos de acciones predeterminada incluye estos directorios, en los que se realiza la búsqueda en este orden: DirectorioInicio/.dt/types Personalizaciones personales /etc/dt/appconfig/types/idioma Personalizaciones accesibles en el sistema /usr/dt/appconfig/types/idioma Panel y controles incorporados Se utiliza un directorio adicional, DirectorioInicio/.dt/types/fp_dynamicfp_dynamic, directorioPanel Frontal personalizaciones dinámicas fp_dynamic, directorio Panel Frontalpersonalizaciones dinámicas , para las personalizaciones personales efectuadas con la interfaz de usuario. No utilice este directorio para las personalizaciones manuales. La ruta de búsqueda de la base de datos de acciones puede incluir directorios adicionales añadidos para configurar el sistema para la función de red. En concreto, las ubicaciones remotas adicionales se añaden cuando se configura el sistema para acceder a un servidor de aplicaciones. Para obtener más información, consulte la sección . Cómo se ensambla el Panel Frontal: Reglas de prioridad<indexterm><primary>Panel Frontal</primary><secondary>prioridad en el ensamblaje</secondary></indexterm><indexterm><primary>prioridad</primary> <secondary>ensamblaje del Panel Frontal</secondary></indexterm> El Panel Frontal se ensambla a partir de todos los archivos de configuración ubicados en la ruta de búsqueda de la base de datos de acciones. Cuando existe un conflicto entre los componentes de la definición, las reglas de prioridad determinan la definición que se debe utilizar. Dos componentes están en conflicto entre sí cuando: Tienen el mismo nombre de control, CONTAINER_NAME, y CONTAINER_TYPE. O compiten por la misma posición (tienen nombres diferentes pero los mismos CONTAINER_NAME, CONTAINER_TYPE y POSITION_HINTS). El Panel Frontal utiliza estas reglas de prioridad: Si los componentes tienen el mismo nombre de control y los mismos nombres y tipos de contenedor, se utiliza el componente que se lee primero. Por ejemplo, si un control accesible en el sistema y un control incorporado contienen estos campos, pero en cambio son diferentes: CONTROL TextEditor { CONTAINER_TYPE BOX CONTAINER_NAME Top … } el control accesible en el sistema tiene prioridad. Si dos componentes compiten por la misma posición, se ponen en el orden en que se leen. Por ejemplo, si un usuario crea un nuevo control personal para el Panel Principal (CONTAINER_TYPE BOX y CONTAINER_NAME Top) y le asigna POSITION_HINTS 5, el control personal desplazará el control incorporado y el restode controles con números de posición más altos una posición a la derecha. Cuando modifique un control creando una nueva versión del mismo accesible en el sistema o personal, la nueva definición de control debe especificar el mismo nombre de control CONTAINER_NAME y CONTAINER_TYPE. De lo contrario, además del control existente aparecerá el nuevo control. <indexterm><primary>Panel Frontal</primary><secondary>personalizaciones dinámicas</secondary></indexterm>Archivos del Panel Frontal creados dinámicamente Cuando el usuario personaliza el Panel Frontal utilizando el control Instalar Icono y los menús emergentes, los archivos se graban en el directorio DirectorioInicio/.dt/types/fp_dynamic. El Panel Frontal crea un archivo adicional, DirectorioInicio/.dt/sessions/dtwmfp.session dtwmfp.session, archivo, que se utiliza para guardar y restaurar en cada sesión el estado del Panel Frontal personalizado. Administración de las personalizaciones de la interfaz de usuario Los usuarios pueden utilizar los menús emergentes de los controles y los controles de Instalar Iconos para personalizar ampliamente el Panel Frontal. Esta sección describe cómo: Impedir determinadas personalizaciones personales. Por ejemplo, tal vez le convenga imposibilitar que un usuario suprima un control. Deshacer personalizaciones personales. Por ejemplo, puede que un usuario le solicite que restaure un control individual suprimido accidentalmente. Impedir personalizaciones personales<indexterm><primary>Panel Frontal</primary><secondary>controlar las personalizaciones personales</secondary> </indexterm><indexterm><primary>Panel Frontal</primary><secondary>control, Vea control<$nopage></secondary></indexterm> Si el control es un control incorporado, copie su definición de /usr/dt/appconfig/types/idioma/dtwm.fp a /etc/dt/appconfig/types/idioma/nombre.fp. Añada la siguiente línea a la definición del control: LOCKED True Restaurar un Panel Frontal modificado o un control suprimido o un subpanel<indexterm> <primary>subpanel</primary><secondary>suprimido, restaurar</secondary></indexterm><indexterm> <primary>control</primary><secondary>restaurar</secondary></indexterm> Si desea eliminarRestaurar Panel Frontal todas las personalizaciones del Panel Frontal y restablecer las definiciones predeterminadas, utilice la acción Restaurar Panel Frontal del grupo de aplicaciones Herramientas_Escritorio.controlbloquearLOCKED, campo Esta acción elimina todas las personalizaciones efectuadas con los menús emergentes del Panel Frontal por el usuario. Para restaurar un control individual que ha sido suprimido, utilice el siguiente procedimiento. En el directorio DirectorioInicio/.dt/types/fp_dynamic, elimine el archivo que se ha creado cuando el usuario ha suprimido el control. El control tendrá el mismo nombre que el control original suprimido. Por ejemplo, si el usuario ha suprimido el control Editor de iconos, un archivo del directorio fp_dynamic contendrá: CONTROL IconEditor { … DELETE True } DELETE, campo Cuando el usuario suprime un subpanel, se crea un archivo dinámico independiente para el subpanel y para cada control del subpanel. Para obtener más información, consulte. Organización de la definición del Panel Frontal<indexterm><primary>Panel Frontal</primary><secondary>organización de la definición</secondary></indexterm> En Panel Frontal se crea ensamblando definiciones para sus componentes. Cada uno de estos componentes tiene una sintaxis necesaria que define en qué lugar del Panel Frontal se coloca el componente, el aspecto del componente y el comportamiento del mismo. Componentes del Panel Frontal<indexterm><primary>Panel Frontal</primary><secondary>componentes</secondary></indexterm>
Componentes del Panel Frontal
El Panel Frontal se ensambla de fuera hacia dentro: El PANEL, definición PANEL es el contenedor de nivel superior, o padre, de todo el Panel Frontal. El PANEL es un contenedor para uno o más BOX (recuadros). Un BOX, definición BOX es un contenedor para uno o más CONTROL (controles). Existen dos tipos especiales de contenedores: Un SUBPANEL, definiciónSUBPANEL está asociado con un control determinado (el control es el contenedor del subpanel). Los subpaneles “surgen” del control con el que están asociados. Elconmutador de espacio de trabajo definición SWITCH (conmutador) contiene los botones para cambiar los espacios de trabajo más controles adicionales.
Sintaxis general de la definición del Panel Frontal<indexterm><primary>Panel Frontal</primary><secondary>sintaxis</secondary> </indexterm> Cada componente del Panel Frontal se define por separado utilizando la sintaxis: COMPONENT nombre { KEYWORD valor KEYWORD valor … } Algunas palabras clave son necesarias, otras son opcionales. Para obtener más información, consulte la página de manual dtfpfile(4X). <indexterm><primary>PANEL, definición</primary><secondary>sintaxis</secondary></indexterm>Definición de PANEL El PANEL es el componente de nivel superior. Su definición incluye: El nombre del Panel Frontal Campos que describen el aspecto y el comportamiento generales de todo el Panel Frontal PANEL nombre_panel_frontal { KEYWORD valor KEYWORD valor … } El nombre_panel_frontal es un nombre exclusivo para el Panel Frontal. El nombre predeterminado es “FrontPanel”. <indexterm><primary>BOX, definición</primary><secondary>sintaxis</secondary></indexterm>Definiciones de BOX Una definición de BOX describe: El nombre del BOX El PANEL en que se encuentra el recuadro (CONTAINER_NAME, campoCONTAINER_NAME) La posición del recuadro en el PANEL (POSITION_HINTS) Campos que describen el aspecto y el comportamiento aplicables a todo el recuadro BOX nombre_recuadro { CONTAINER_NAME nombre_panel_frontal POSITION_HINTS posición KEYWORD valor KEYWORD valor … } <indexterm><primary>CONTROL, definición</primary><secondary>sintaxis</secondary></indexterm>Definiciones de CONTROL Una definición de CONTROL describe: El nombre del CONTROL Si el control está en un recuadro, un subpanel o un conmutador (CONTAINER_TYPE, campo CONTAINER_TYPE) El recuadro, subpanel o conmutador en que se encuentra el control (CONTAINER_NAME, campoCONTAINER_NAME ) La posición del CONTROL en el BOX (POSITION_HINTS). Campos que describen el aspecto y el comportamiento del control CONTROL nombre_control { CONTAINER_TYPE BOX o SUBPANEL o SWITCH CONTAINER_NAME nombre_recuadro o nombre_subpanel o nombre_conmutador TYPE tipo_control POSITION_HINTS posición KEYWORD valor KEYWORD valor … subpaneldefinición sintaxis } <indexterm><primary>subpanel</primary><secondary>sintaxis</secondary> </indexterm>Definiciones de SUBPANEL Una definición de SUBPANEL describe: El nombre del SUBPANEL El nombre del control al que está conectado el subpanel subpanelcontenedor ( CONTAINER_NAME, campoCONTAINER_NAME) Campos que describen el aspecto y el comportamiento específico del subpanel SUBPANEL nombre_subpanel { CONTAINER_NAME nombre_control KEYWORD valor KEYWORD valor … } <indexterm><primary>SWITCH, definición</primary></indexterm><indexterm> <primary>conmutador de espacio de trabajo</primary><secondary>sintaxis de la definición</secondary></indexterm>Definición de SWITCH La definición de SWITCH describe: El nombre del SWITCH El BOX en que se encuentra el SWITCH (CONTAINER_NAME, campo CONTAINER_NAME) La posición del SWITCH dentro del BOX (POSITION_HINTS) Campos que describen el aspecto y el comportamiento del SWITCH SWITCH nombre_conmutador { CONTAINER_NAME nombre_recuadro POSITION_HINTS posición KEYWORD valor KEYWORD valor … }
Modificación del Panel Principal<indexterm> <primary>Panel Frontal</primary><secondary>modificar</secondary></indexterm> El Panel Principal es la ventana Panel Frontal, excluidos los subpaneles.
Contenedores del Panel Principal
Las modificaciones que se pueden realizar incluyen: Añadir o eliminar controles Intercambiar las posiciones de los controles Añadir un control al Panel Principal<indexterm> <primary>control</primary><secondary>añadir al Panel Principal</secondary> </indexterm> Cree un archivo de configuración del Panel Frontal: Accesible en el sistema: /etc/dt/appconfig/types/idioma/*.fp Personal: DirectorioInicio/.dt/types/*.fp Defina el control en el archivo. Utilice los campos CONTAINER_NAME y CONTAINER_TYPE para especificar el contenedor del control: CONTAINER_NAME Superior CONTAINER_TYPE BOX Utilice POSITION_HINTS para especificar la colocación del control de izquierda a derecha. Dado que las personalizaciones tienen prioridad sobre los controles incorporados, el nuevo control “desplazará” el control existente que tiene dicha posición hasta la siguiente posición de la derecha. Guarde el archivo de configuración. Cree un icono para el control del Panel Frontal. Consulte la sección . Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo. Por ejemplo, la siguiente definición de control colocada en el archivo /etc/dt/appconfig/types/idioma/audio.fp inserta un control de aplicación de audio entre los controles Reloj y Agenda. CONTROL AudioApplication { TYPE icon CONTAINER_NAME Superior CONTAINER_TYPE BOX ICON AplAudio POSITION_HINTS 2 PUSH_ACTION StartAudioApplication PUSH_RECALL true } Eliminar un control<indexterm><primary>control</primary><secondary>eliminar del Panel Frontal</secondary></indexterm> Cree un archivo de configuración del Panel Frontal: Accesible en el sistema: /etc/dt/appconfig/types/idioma/nombre.fp Personal: DirectorioInicio/.dt/types/nombre.fp Copie en el nuevo archivo la definición del control que desea suprimir. Si el control es incorporado, su definición está en /usr/dt/appconfig/types/idioma/dtwm.fp. No es necesario que copie la definición entera. Sin embargo, la parte que copie debe incluir los campos CONTAINER_NAME y CONTAINER_TYPE. Añada el campo DELETE a la definición: DELETE True Guarde el archivo de configuración. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo. Por ejemplo, la siguiente definición de control colocada en el archivo /etc/dt/appconfig/types/idioma/TrashCan.fp elimina el control Papelera del Panel Frontal. CONTROL Trash { CONTAINER_NAME Superior CONTAINER_TYPE BOX DELETE True } Modificar un control<indexterm><primary>control</primary><secondary>modificar</secondary></indexterm> Utilice este procedimiento cuando necesite modificar una definición de control—por ejemplo, cambiar su imagen de icono. Copie la definición de control entera de /usr/dt/appconfig/types/idioma/dtwm.fp a: Accesible en el sistema: /etc/dt/appconfig/types/idioma/nombre.fp Personal: DirectorioInicio/.dt/types/nombre.fp. Edite el campo que desee cambiar. También puede añadir campos adicionales. Guarde el archivo. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo. Intercambiar la posición de los controles<indexterm><primary>control</primary><secondary>intercambiar con otro control</secondary></indexterm> Copie las definiciones de los controles cuyas posiciones desea cambiar de /usr/dt/appconfig/types/idioma/dtwm.fpa: Accesible en el sistema:/etc/dt/appconfig/types/idioma/nombre.fp Personal: DirectorioInicio/.dt/types/nombre.fp. Deberá copiar la definición de control entera para cada control que se deba mover. Intercambie los valores de los campos POSITION_HINTS, campoPOSITION_HINTS de las definiciones de control. Guarde el archivo. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo. Por ejemplo, las siguientes definiciones colocadas en un archivo /etc/dt/appconfig/types/C/AyudaCorreo.fp intercambian las posiciones de los controles Correo y Gestor de ayudas y bloquea estos controles para los cambios personales. CONTROL Mail { POSITION_HINTS 12 LOCKED True …resto de la definición decontrol } CONTROL Help { POSITION_HINTS 5 LOCKED True …resto de la definición de control } Sustituir un control del Panel Frontal<indexterm><primary>control</primary><secondary>sustituir</secondary></indexterm> Cree otra definición de control con el mismo: nombre_control CONTAINER_NAME, campo valor de CONTAINER_NAME Por ejemplo, los dos controles siguientes están definidos en dos archivos de configuración diferentes. Los controles tienen el mismo nombre de control y el mismo nombre de contenedor y, por consiguiente, se les considera como el mismo control. Definición en /etc/dt/appconfig/types/C/SysControls.fp: Control AplicaciónImportante { CONTAINER_NAME Superior CONTAINER_TYPE BOX POSITION_HINTS 2 … } Definición en DirectorioInicio/.dt/types/MyControls.fp: Control AplicaciónImportante { CONTAINER_NAME Superior CONTAINER_TYPE BOX POSITION_HINTS 6 … } El control personal tiene prioridad, por lo tanto el control se ubicará en la posición 6. Especificación del icono utilizado por un control<indexterm><primary>control</primary><secondary>aspecto</secondary> </indexterm><indexterm><primary>control</primary><secondary>icono</secondary> </indexterm><indexterm><primary>iconos</primary><secondary>Panel Frontal</secondary></indexterm> El campo ICON, campoen el Panel FrontalICON de la definición de control define la imagen de icono utilizada para el control. El valor del campo ICON puede ser: Un nombre de archivo base. El nombre de archivo base es el nombre del archivo que contiene la imagen de icono menos los sufijos de nombre de archivo para el tamaño (m y t) y el tipo de imagen (bm y pm). Por ejemplo, si los archivos se llaman MiJuego.l.pm yMiJuego.m.pm, utilice MiJuego. Si utiliza el nombre de archivo base, los archivos de iconos deben ponerse en un directorio de la ruta de búsqueda de iconos: Iconos personales: DirectorioInicio/.dt/icons Iconos accesibles en el sistema: /etc/dt/appconfig/icons/idioma Una ruta absoluta al archivo de iconos, incluido el nombre de archivo completo. Sólo deberá utilizar la ruta absoluta si el archivo de iconos no está ubicado en la ruta de búsqueda de iconos. El tamaño de icono necesario depende de la ubicación del control: Ubicación Tamaño Panel Principal 48 por 48 pixels (nombre.l.pm o nombre .l.bm) Subpanel 32 por 32 pixels (nombre.m.pm o nombre .m.bm) Ponga el archivo de iconos en una de estas ubicaciones: Iconos personales: DirectorioInicio/.dt/icons Iconos accesibles en el sistema: /etc/dt/appconfig/icons/idioma
Creación y modificación de subpaneles<indexterm> <primary>subpanel</primary><secondary>crear</secondary></indexterm><indexterm> <primary>subpanel</primary><secondary>modificar</secondary></indexterm> Los usuarios pueden crear y modificar los subpaneles utilizando los menús emergentes del Panel Frontal. Esta sección describe cómo proporcionar una personalización accesible en el sistema, que requiere modificar los archivos de configuración del Panel Frontal. Un subpanel está “conectado” a un control del Panel Principal.
El contenedor de un subpanel es el control al que está conectado
subpanelasociación con el Panel PrincipalLa conexión se realiza en la definición del subpanel. El campo CONTAINER_NAME especifica el control al que está conectado el subpanel: CONTROL nombre_control { … } SUBPANEL nombre_subpanel { CONTAINER_NAME nombre_control … } Crear un nuevo subpanel accesible en el sistema<indexterm><primary>subpanel</primary><secondary>personalización accesible en el sistema</secondary></indexterm><indexterm><primary>subpanel</primary><secondary>nuevo</secondary></indexterm> Localice el nombre_control del control del Panel Principal al que desea conectar el subpanel. Si el control es uno de los controles incorporados, su definición está en /usr/dt/appconfig/types/idioma/dtwm.fp. Cree un nuevo archivo /etc/dt/appconfig/types/idioma/*.fp. Defina el subpanel: SUBPANEL nombre_subpanel { CONTAINER_NAME nombre_control TITLE valor KEYWORD valor … } Guarde el nuevo archivo de configuración. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo. Personalización de los subpaneles incorporados<indexterm><primary>subpanel</primary><secondary>personalizar panel incorporado</secondary></indexterm> Se pueden modificar las propiedades generales (como por ejemplo, el título) y el contenido de los subpaneles incorporados. Modificar las propiedades generales de un subpanel incorporado Cree un nuevo archivo de configuración del Panel Frontal: Accesible en el sistema: /etc/dt/appconfig/types/idioma/nombre.fp Personal: DirectorioInicio/.dt/types/nombre.fp. Copie toda la definición predeterminada SUBPANEL de /usr/dt/appconfig/types/idioma/dtwm.fp en el nuevo archivo: SUBPANEL nombre_subpanel { … } Modifique la definición del subpanel. Guarde el nuevo archivo de configuración. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo. Por ejemplo, la siguiente definición, que se encuentra en el archivo /users/juana/.dt/types/AplsPers.fp, cambia el nombre del subpanel Aplicaciones personales: SUBPANEL PersAppsSubpanel { CONTAINER_NAME TextEditor TITLE Aplicaciones de Juana } Añadir un control accesible en el sistema a un subpanel incorporado Cree un archivo de configuración del Panel Frontal /etc/dt/appconfig/types/idioma/nombre.fp. Defina en el archivo el control accesible en el sistema. Utilice los campos CONTAINER_NAME y CONTAINER_TYPE para especificar el contenedor para el control: CONTROL nombre_control { CONTAINER_NAME nombre_subpanel CONTAINER_TYPE SUBPANEL … } Consulte la sección . Guarde el archivo de configuración. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo. Por ejemplo, el siguiente control definido en un nuevo archivo /etc/dt/appconfig/types/idioma/RelojDigital.fp añade el RelojDigital (en el grupo de aplicaciones Herramientas_Escritorio) al subpanel Aplicaciones Personales para todos los usuarios. CONTROL DigitalClockControl { TYPE icon CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL ICON Dtdgclk PUSH_ACTION DigitalClock PUSH_RECALL True } Eliminar un control de un subpanel incorporado Utilice el mismo procedimiento que para eliminar un control del Panel Principal. Consulte la sección . Eliminar el<indexterm><primary>Instalar icono, control</primary><secondary>eliminar</secondary></indexterm> control Instalar icono Añada el siguiente campo a la definición del subpanel: CONTROL_INSTALL False Cambiar el comportamiento de cierre automático de los subpaneles<indexterm> <primary>subpanel</primary><secondary>cambiar el comportamiento de cierre automático</secondary></indexterm> El comportamiento predeterminado de los subpaneles consiste en cerrarse cuando el usuario elige un control, a no ser que el usuario haya movido el subpanel respecto a su posición original. El Panel Frontal puede configurarse para que los subpaneles se conserven abiertos hasta que el usuario los cierre explícitamente. Cree un nuevo archivo de configuración del Panel Frontal en: Accesible en el sistema: /etc/dt/appconfig/types/idioma/*.fp Personal: DirectorioInicio/.dt/types/*.fp Copie la definición PANEL predeterminada de /usr/dt/appconfig/types/idioma/dtwm.fp en el nuevo archivo: PANEL FrontPanel { … } Añada el siguiente campo a la definición de PANEL: SUBPANEL_UNPOST False Guarde el nuevo archivo de configuración. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo.
Definición de los controles del Panel Frontal<indexterm> <primary>control</primary><secondary>definir</secondary></indexterm> El usuario puede crear controles personales soltando iconos en los controles Instalar Icono. A pesar de que esta acción facilita la personalización, las funciones que proporciona constituyen sólo una parte de las posibilidades ofrecidas por los controles del Panel Frontal. Por ejemplo, un control creado utilizando el control Instalar Icono no puede: Proporcionar animación Mostrar una ventana del cliente Cambiar de aspecto cuando se produce un suceso (por ejemplo, al recibir correo nuevo) Esta sección describe cómo crear manualmente los controles del Panel Frontal. Para obtener información de consulta sobre la sintaxis de los controles del Panel Frontal, consulte la página de manual dtfpfile(4X). Definiciones de controles del Panel Frontal La estructura de una definición de control del Panel Frontal es: CONTROL nombre_control { TYPE tipo_control CONTAINER_NAME valor CONTAINER_TYPE valor otros campos que definen el aspecto y el comportamiento } <indexterm><primary>control</primary><secondary>tipos</secondary></indexterm>Tipos de control El campo TYPE, campoTYPE de la definición de control especifica el comportamiento básico del control. TIPO control Comportamiento del control icon, control del Panel Frontalicon (Valor predeterminado). El control ejecutará una acción especificada cuando el usuario pulse el control o suelte un archivo sobre él. blank, tipo de controlblank Espacio reservado para ajustar el espaciado de los controles. busy, tipo de controlbusy Indicador luminoso de espera. El control parpadea (conmuta imágenes) cuando se invoca una acción. client, tipo de controlclient Una ventana de cliente del Panel Frontal. clock, tipo de controlclock Reloj. date, tipo de controldate Muestra la fecha actual. file, tipo de controlfile Representa un archivo. Al elegir el control se ejecuta la acción predeterminada para el archivo. Crear un nuevo control<indexterm><primary>control</primary><secondary>crear</secondary></indexterm> Esta sección describe los pasos generales para definir un control y describe cómo crear diversos tipos de controles. Si el control ha de tener PUSH_ACTION y/o DROP_ACTION, cree las definiciones de acción. Éstas son las acciones que se ejecutan cuando el usuario pulsa sobre el control o suelta un archivo sobre él. Cree los archivos de imágenes de iconos para el control. Para obtener información sobre los tamaños, nombres y ubicaciones de los iconos, consulte la sección . Cree un nuevo archivo de configuración del Panel Frontal en: Accesible en el sistema: /etc/dt/appconfig/types/idioma/*.fp Personal: DirectorioInicio/.dt/types/*.fp Añada la definición de control al archivo. Guarde el archivo. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo. Creación de un control que ejecuta una acción cuando se pulsa Utilice estos campos para definir el comportamiento del control: TYPE: Establecido en icon PUSH_ACTION, campo PUSH_ACTION: Especifica el nombre de la acción a ejecutar Por ejemplo, el siguiente control, que se pondrá en el subpanel Aplicaciones personales, ejecuta un juego que el usuario ha adquirido: CONTROL Ball { TYPE icon CONTAINER_NAME PersAppsSubpanel CONTAINER_TYPE SUBPANEL ICON ball PUSH_ACTION RunBallGame HELP_STRING Elija este control para jugar a Ball. } El siguiente control se ubicará en la esquina superior izquierda del conmutador. Inicia una acción llamada CutDisp. CONTROL StartCutDisp { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS first ICON cutdisp HELP_STRING Elija este control para ejecutar cutdisp. PUSH_ACTION CutDisp } <indexterm><primary>control</primary><secondary>que abre un archivo</secondary></indexterm>Creación de un control que abre un archivo Utilice estos campos para definir el comportamiento del control: TYPE: Establecido en file FILE_NAME, campoFILE_NAME: Especifica la ruta del archivo que se debe abrir PUSH_ACTION: Establecido en Abrir Se tiene que haber definido una acción Abrir para el tipo de datos del archivo. Por ejemplo, el siguiente control se ubicará en el extremo derecho del Panel Principal. Inicia el Editor de Textos con el archivo de datos /users/elena/ListaTeléfonos.txt. La acción Abrir para los archivos *.txt forma parte de la base de datos de acciones predeterminada. CONTROL EditPhoneList { TYPE file FILE_NAME /users/ellen/PhoneList.txt CONTAINER_NAME Superior CONTAINER_TYPE BOX POSITION_HINTS last ICON PhoneBook HELP_STRING Este control muestra la lista de teléfonos de Elena. PUSH_ACTION Abrir } Creación de un control que se comporta como una zona de soltar<indexterm><primary>zona de soltar</primary><secondary>control del Panel Frontal</secondary></indexterm><indexterm><primary>Panel Frontal</primary><secondary>control de zona de soltar</secondary></indexterm><indexterm> <primary>control</primary><secondary>zona de soltar</secondary></indexterm> Utilice el campo DROP_ACTION, campo DROP_ACTION para especificar la acción que se ejecuta cuando el usuario suelta un archivo sobre el control. La acción tiene que poder aceptar un argumento de archivo. Normalmente, una definición de control incluye un campo PUSH_ACTION y un campo DROP_ACTION. Se puede utilizar la misma acción para la acción de pulsar y de soltar. Por ejemplo, el siguiente control ubicado en el subpanel Aplicaciones personales ejecuta el cliente de X xwud, que toma un argumento de archivo. CONTROL Run_xwud { CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL POSITION_HINTS 2 ICON XwudImage PUSH_ACTION RunXwud DROP_ACTION RunXwud } Creación de un control que supervisa un archivo<indexterm><primary>control</primary><secondary>supervisar</secondary> </indexterm> Utilice estos campos para definir el comportamiento del control: TYPE: Especifique uno de los siguientes valores: icon, tipo de controlicon Utilice este tipo si desea especificar PUSH_ACTION y/o DROP_ACTION para el control. file, tipo de controlfile Utilice este tipo si desea que al elegir el control, éste se comporte igual que el archivo cuando se pulsa dos veces el icono del archivo en el Gestor de archivos. ICON y ALTERNATE_ICON, campoALTERNATE_ICON:Describen las imágenes utilizadas para indicar el estado no modificado y modificado del archivo supervisado. MONITOR_TYPE, campo MONITOR_TYPE: Describe las condiciones que hacen cambiar la imagen. Utilice uno de los siguientes valores: monitor, tipos de controlesmail, tipo de control mail El control cambiará de aspecto cuando se añada información al archivo. file El control cambiará cuando el archivo especificado no quede vacío. FILE_NAMEFILE_NAME, campo : Especifica el archivo que se debe supervisar. Por ejemplo, el siguiente control busca si existe un archivo llamado meetings que espera transferir al sistema utilizando un ftp anónimo. El control se coloca en la parte superior del subpanel Aplicaciones personales. CONTROL MonitorCalendar { TYPE file CONTAINER_NAME PersonalApps CONTAINER_TYPE SUBPANEL POSITION_HINTS first FILE_NAME /users/ftp/meetings MONITOR_TYPE file ICON meetingsno ALTERNATE_ICON meetingsyes } Creación de un control (de conmutación) de un caso<indexterm><primary>control</primary><secondary>conmutar</secondary> </indexterm><indexterm><primary>control</primary><secondary>un caso</secondary> </indexterm> Un control de un caso comprueba si el proceso iniciado por PUSH_ACTION ya se está ejecutando. Si el proceso no se está ejecutando, se ejecuta PUSH_ACTION. Si el proceso ya se está ejecutando, la ventana se mueve a la parte superior de la pila de ventanas del espacio de trabajo actual. Utilice estos campos para definir el comportamiento del control: PUSH_RECALL: Establecido en True. CLIENT_NAME, campo CLIENT_NAME: Especifica el nombre del cliente al control. El valor de CLIENT_NAME debe coincidir con la primera cadena (nombre_rec) de la propiedad WM_CLASS de la ventana de nivel superior de la aplicación. Para obtener más información, consulte la página de manual xprop(1). PUSH_ACTION: Describe la acción ejecutada cuando el usuario pulsa el control. Por ejemplo, el siguiente control ejecuta un caso de una aplicación cuya acción se llama MiEditor. CONTROL MyEditor { TYPE icon CONTAINER_NAME Superior CONTAINER_TYPE BOX POSITION_HINTS 15 PUSH_RECALL True CLIENT_NAME BestEditor PUSH_ACTION StartMyEditor ICON MyEd } Crear un control de ventana de cliente<indexterm><primary>Panel Frontal</primary><secondary>cliente en</secondary></indexterm><indexterm><primary>clientes</primary><secondary>ventana del Panel Frontal</secondary></indexterm><indexterm> <primary>control</primary><secondary>cliente</secondary></indexterm> Un control de ventana de cliente es una ventana de aplicación incorporada al Panel Frontal. Por ejemplo, se puede poner un medidor de carga del sistema en el Panel Frontal creando un control de ventana de cliente xload. Defina el control. Utilice estos campos para definir el comportamiento del control: TYPE: Establecido en client. CLIENT_NAME, campo CLIENT_NAME: Especifica el cliente que se debe iniciar. El valor de CLIENT_NAME debe coincidir con la primera cadena (nombre_rec) de la propiedad WM_CLASS de la ventana de nivel superior de la aplicación. Para obtener más información, consulte la página de manual xprop(1). CLIENT_GEOMETRY, campo CLIENT_GEOMETRY: Especifica el tamaño, en pixels, necesario para la ventana Panel Frontal del cliente. La página de manual xwininfo(1) describe cómo averiguar el tamaño de una ventana en pixels. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo. Inicie el cliente desde una línea de mandatos del emulador de terminal. Por ejemplo, el siguiente control muestra un medidor de carga de 30 x 20 pixels. CONTROL LoadMeter { TYPE client CONTAINER_NAME Superior CONTAINER_TYPE BOX CLIENT_NAME xload CLIENT_GEOMETRY 30x20 } Si el cliente no se guarda y se restaura entre sesiones, es aconsejable configurar el control para que inicie el cliente cuando el usuario lo pulse. Por ejemplo, puede configurar el control LoadMeter para iniciar xload añadiendo la siguiente línea a la definición: PUSH_ACTION StartXload y creando la acción: ACTION StartXload { WINDOW_TYPE NO_STDIO EXEC_STRING /usr/contrib/bin/X11/xload } Animación de un control<indexterm><primary>control</primary><secondary>animación</secondary></indexterm><indexterm> <primary>animación para el Panel Frontal</primary></indexterm><indexterm> <primary>Panel Frontal</primary><secondary>animación</secondary></indexterm> Se puede conectar una secuencia de animación para utilizarla cuando el usuario elija el control o suelte un objeto sobre él. Para tener una secuencia de animación, un control debe: Ser del tipo icon Tener PUSH_ACTION o DROP_ACTION Especifique la secuencia de animación utilizando el componente ANIMATION, definición ANIMATION: ANIMATION nombre_animación { ANIMATION imagen_icono [retardo] ANIMATION imagen_icono [retardo] … } donde retardo es el tiempo de retardo entre iconos de animación, en milisegundos. Añada los campos PUSH_ANIMATION, campoPUSH_ANIMATION y/o DROP_ANIMATION, campoDROP_ANIMATION a la definición de control. El valor es el nombre de la secuencia ANIMATION. Por ejemplo, las líneas siguientes dotan de animación un control que inicia la aplicación MejorEditor. El tiempo de retardo entre iconos es de 300 milisegundos. En el ejemplo se supone que se han creado los archivos de iconos frame1, frame2, etc. CONTROL BestEditor { … PUSH_ANIMATION BestEdAnimation … } ANIMATION BestEdAnimation { ANIMATION frame1 300 ANIMATION frame2 … } Cómo proporcionar Ayuda sobre el tema para los controles del Panel Frontal<indexterm><primary>ayuda</primary><secondary>Panel Frontal</secondary></indexterm><indexterm><primary>Panel Frontal</primary> <secondary>ayuda</secondary></indexterm><indexterm><primary>control</primary> <secondary>Ayuda sobre el tema</secondary></indexterm> Existen dos procedimientos para proporcionar ayuda para un control: Proporcionar una cadena de ayuda en la definición del control. La cadena de ayuda se muestra en el visor de ayuda cuando el usuario invoca la ayuda sobre el tema para el control. La cadena de ayuda no puede incluir formato (como por ejemplo, cabeceras) ni enlaces. Para proporcionar una cadena de ayuda, especifíquela en la definición del control: HELP_STRING, campo HELP_STRING cadena_ayuda Especificar un tema de ayuda en un volumen de ayudas registrado. Un tema de ayuda es información creada utilizando todas las posibilidades del sistema de ayudas. Para crear un tema de ayuda es necesario utilizar el Help Developer's Kit del escritorio. Para proporcionar un tema de ayuda, especifique el volumen de ayudas y el ID de tema en la definición del control: HELP_VOLUME, campoHELP_TOPIC, campo HELP_VOLUME nombre_volumen_ayudas HELP_TOPIC id_tema Personalización del conmutador de espacios de trabajo<indexterm><primary>conmutador de espacios de trabajo</primary> <secondary>personalizar</secondary></indexterm><indexterm><primary>conmutar, Vea conmutador de espacios de trabajo</primary></indexterm> Existen varios procedimientos para personalizar el conmutador de espacios de trabajo: Cambiar el número de espacios de trabajo Cambiar el diseño del conmutador Cambiar los controles del conmutador Cambiar el número predeterminado de espacios de trabajo<indexterm><primary>espacios de trabajo</primary><secondary>cambiar el número predeterminado</secondary></indexterm><indexterm><primary>conmutador de espacios de trabajo</primary><secondary>número de espacios de trabajo</secondary></indexterm> Modifique el siguiente recurso del Gestor de espacios de trabajo: Dtwm*workspaceCount: n Para obtener más información, consulte la sección . Cambiar el número de filas de conmutadores<indexterm> <primary>conmutador de espacios de trabajo</primary><secondary>número de filas</secondary></indexterm> Modifique el campo NUMBER_OF_ROWS, campoNUMBER_OF_ROWS en la definición de SWITCH. Por ejemplo, la siguiente definición define un conmutador de tres filas. SWITCH Switch { CONTAINER_NAME nombre_recuadro NUMBER_OF_ROWS 3 … } Cambiar o añadir controles en el conmutador de espacios de trabajo<indexterm> <primary>conmutador de espacios de trabajo</primary><secondary>añadir controles</secondary></indexterm><indexterm><primary>control</primary><secondary>en conmutador de espacios de trabajo</secondary></indexterm> Cree un archivo de configuración del Panel Frontal con la definición del control. Especifique que el control esté dentro del conmutador: CONTAINER_NAME Switch CONTAINER_TYPE SWITCH Especifique la posición en el conmutador: POSITION_HINTS n donde n es un entero. Las posiciones se numeran secuencialmente de izquierda a derecha y de arriba a abajo. (Para el conmutador de dos filas predeterminado, las posiciones son de 1 a 4.) Cree el icono para el control. Se recomienda un tamaño de 16 por 16 pixels. Por ejemplo, el siguiente control pone un control Terminal en el conmutador. CONTROL SwitchTerminal { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS 3 ICON Fpterm LABEL Terminal PUSH_ACTION Dtterm HELP_TOPIC FPOnItemTerm HELP_VOLUME FPanel } El control utiliza un icono incorporado y el mismo tema de ayuda utilizado por el control Terminal del subpanel Aplicaciones personales. Configuración del Panel Frontal general La sintaxis PANEL del Panel Frontal permite: Cambiar la ubicación del Panel Frontal Cambiar los accesorios de la ventana Establecer un aspecto y un comportamiento generales de los controles La descripción PANEL predeterminada se encuentra en /usr/dt/appconfig/types/idioma/dtwm.fp. Para obtener información adicional, consulte la página de manual dtfpfile(4X). Pasos generales Cree un nuevo archivo de configuración del Panel Frontal en /etc/dt/appconfig/types/idioma o DirectorioInicio/.dt/types. Copie la descripción PANEL predeterminada de /usr/dt/types/idioma/dtwm.fp en el nuevo archivo. Edite la descripción PANEL. La nueva descripción PANEL tiene prioridad sobre la predeterminada. Cambiar la ubicación predeterminada del Panel Frontal<indexterm><primary>Panel Frontal</primary><secondary>ubicación en la pantalla</secondary></indexterm> Utilice el campo PANEL_GEOMETRY, campoPANEL_GEOMETRY de la definición PANEL para especificar la ubicación. Por ejemplo, el siguiente panel se encuentra en la esquina superior derecha. PANEL SpecialFrontPanel { PANEL_GEOMETRY -1+1 … } Etiquetar los controles del Panel Principal<indexterm> <primary>etiquetas</primary><secondary>controles del Panel Frontal</secondary> </indexterm><indexterm><primary>Panel Frontal</primary></indexterm><indexterm> <primary>etiquetar controles</primary></indexterm><indexterm><primary>control</primary><secondary>etiquetar</secondary></indexterm> Añada la línea siguiente a la definición PANEL: DISPLAY_CONTROL_LABELS True Añada un campo LABEL a cada control. nombre_control se utilizará si no se especifica LABEL. Cambiar el comportamiento de pulsación de los controles<indexterm><primary>control</primary><secondary>pulsación frente a doble pulsación</secondary></indexterm> Utilice el campo CONTROL_BEHAVIOR, campoCONTROL_BEHAVIOR en la definición PANEL para especificar el modo en que el usuario ejecuta PUSH_ACTION en un control. Los valores para el campo son: single_click El usuario pulsa el control para ejecutar PUSH_ACTION double_click El usuario pulsa dos veces el control para ejecutar PUSH_ACTION Crear un Panel Frontal completamente nuevo<indexterm> <primary>Panel Frontal</primary><secondary>nuevo</secondary></indexterm> Es preferible crear un Panel Frontal nuevo cuando se quieren realizar muchos cambios. Para evitar conflictos con los componentes del Panel Frontal incorporado, un Panel Frontal nuevo deberá utilizar nombres nuevos para PANEL y para otros contenedores. Cree el componente PANEL para el nuevo Panel Frontal. Déle un nombre exclusivo: PANEL nombre_panel_frontal { … } Cree los recuadros y los controles nuevos, utilizando los nuevos nombres de contenedor. Si desea utilizar componentes existentes, deberá copiar sus definiciones y cambiar el valor CONTAINER_NAME. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo. Ejemplo de creación de un Panel Frontal personal con tres filas<indexterm> <primary>Panel Frontal</primary><secondary>añadir filas</secondary> </indexterm> El ejemplo siguiente cambia el Panel Frontal predeterminado de forma que sus controles estén ordenados en tres filas. Copie /usr/dt/appconfig/types/idioma/dtwm.fp en DirectorioInicio/.dt/types/MyFrontPanel.fp. Proporcione el permiso de escritura del archivo. Éste es el archivo que se editará para proporcionar el nuevo Panel Frontal. Cambie el nombre del Panel Frontal: PANEL NewFrontPanel Cambie el nombre del recuadro llamado Superior y edite el nombre de su contenedor: BOX NewFrontPanelTop { CONTAINER_NAME NewFrontPanel POSITION_HINTS first … } Añade las definiciones de recuadro para las filas del centro e inferior: BOX NewFrontPanelMiddle { CONTAINER_NAME NewFrontPanel POSITION_HINTS second } BOX NewFrontPanelBottom { CONTAINER_NAME NewFrontPanel POSITION_HINTS second } Cambie el CONTAINER_NAME de los siguientes controles por NewFrontPanelTop: Clock Date Home TextEditor Mail Cambie el CONTAINER_NAME de los siguientes controles por NewFrontPanelBottom: Printer Style Applications Help Trash Cambie el CONTAINER_NAME del conmutador por NewFrontPanelMiddle. Establezca el recurso: Dtwm*frontPanel*name: NewFrontPanel Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo.