Los usuarios pueden personalizar el Panel frontal mediante los menús emergentes y los controles Instalar icono de los subpaneles.
Este capítulo trata acerca de la personalización del Panel frontal mediante la creación y edición de sus archivos de configuración.
Para obtener información de referencia acerca de los controles y configuración del Panel frontal, véase la página de comando man dtfpfile(4X).
Para obtener información de referencia acerca del Gestor de área de trabajo, véase las páginas de comando man dtwm(1) y dtwmrc(4).
El Panel frontal se define en una base de datos de archivos de configuración.
Éstos ofrecen una manera de personalizar el Panel frontal. Algunas modificaciones, sólo pueden realizarse editando un archivo de configuración, éstas son:
Agregar una nueva posición de control al Panel principal.
Agregar tipos especiales de controles, como ventanas de clientes.
Modificar ciertos comportamientos predeterminados, por ejemplo, si los controles del Panel frontal responden a un clic o un doble clic.
Para proporcionar la máxima versatilidad en la configuración del panel, estos archivos pueden ser personales, accesibles en el sistema o ubicados en otros sistemas.
El Gestor de área de trabajo crea y gestiona el Panel frontal.
El Panel frontal predeterminado se define en el archivo de configuración /usr/dt/appconfig/types/idioma/dtwm.fp.
Este archivo no debe modificarse.
La definición del Panel frontal puede distribuirse entre cualquier número de archivos ubicados localmente o en sistemas remotos.
Los archivos utilizados para definir el Panel frontal deben cumplir los siguientes requisitos:
El nombre de archivo debe terminar en la extensión .fp; por ejemplo, mail.fp.
El archivo debe estar ubicado en la ruta de búsqueda de bases de datos de acciones.
La ruta de búsqueda de bases de datos de acciones predeterminada incluye los siguientes directorios, por orden de búsqueda:
Personalizaciones personales:DirectorioInicio/.dt/types
Personalizaciones accesibles en el sistema: /etc/dt/appconfig/types/idioma
Panel y controles incorporados: /usr/dt/appconfig/types/idioma
Se utiliza un directorio adicional, DirectorioInicio/.dt/types/fp_dynamic, para personalizaciones personales realizadas mediante la interfaz de usuario. No utilice este directorio para las personalizaciones manuales.
La ruta de búsqueda de bases de datos de acciones puede incluir directorios adicionales agregados para configurar el sistema para trabajar en red. En concreto, las ubicaciones remotas adicionales se agregan cuando el sistema se configura para acceder al servidor de aplicaciones. Para obtener más información, véase Ruta de búsqueda de bases de datos (acciones/tipos de datos).
El Panel frontal se ensambla a partir de todos los archivos de configuración ubicados en la ruta de búsqueda de bases de datos de acciones.
En caso de conflicto entre los componentes de la definición, las reglas de prioridad determinan la definición que se debe utilizar. Dos componentes entran en conflicto cuando:
Tienen el mismo nombre de control, CONTAINER_NAME
y CONTAINER_TYPE
.
O bien compiten por la misma posición (tienen nombres
diferentes pero los mismos CONTAINER_NAME
, CONTAINER_TYPE
y POSITION_HINTS
).
El Panel frontal utiliza las normas de precedencia siguientes:
Si los componentes tienen los mismos nombres de control y nombre y tipo 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 son diferentes en otros sentidos:
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 colocan en el orden en que son leídos.
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 todos los otros 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 de
él accesible en el sistema o personal, la nueva definición del
control debe especificar el mismo nombre de control, CONTAINER_NAME
y CONTAINER_TYPE
. De lo contrario, el nuevo control aparecerá junto con
el control existente.
Cuando el usuario personaliza el Panel frontal mediante el control Instalar icono y los menús emergentes, los archivos se guardan en el directorio DirectorioInicio/.dt/types/fp_dynamic.
El Panel frontal crea un archivo adicional, DirectorioInicio/.dt/sessions/dtwmfp.session, que se utiliza para guardar y restaurar en cada sesión el Panel frontal personalizado.
Los usuarios pueden utilizar los menús emergentes y los controles Instalar icono del Panel frontal para personalizar como quieran el Panel frontal.
Esta sección describe cómo:
Impedir determinadas personalizaciones personales. Por ejemplo, que un usuario pueda elimine un control.
Deshacer personalizaciones personales. Por ejemplo, un usuario puede solicitar que se restaure un control individual eliminado accidentalmente.
Si el control es un control incorporado, copie la definición de /usr/dt/appconfig/types/idioma/dtwm.fp a /etc/dt/appconfig/types/idioma /nombre.fp.
Agregue la siguiente línea a la definición del control:
LOCKED True
La acción Restaurar Panel frontal del grupo de aplicaciones Herramientas_Escritorio elimina todas las personalizaciones realizadas mediante la interfaz de usuario. Éste puede utilizar esta acción para eliminar todas las personalizaciones personales realizadas mediante los menús emergentes del Panel frontal.
Para restaurar un control individual, utilice el siguiente procedimiento:
En el directorio DirectorioInicio/.dt/types/fp_dynamic, elimine el archivo que se creó cuando el usuario eliminó el control. El control tendrá el mismo nombre que el control original suprimido.
Por ejemplo, si el usuario eliminó el control Editor de iconos, uno de los archivos del directorio fp_dynamic contendrá:
CONTROL IconEditor { … DELETE True }
Cuando el usuario elimina un subpanel, se crea un archivo dinámico individual para el subpanel y para cada uno de los controles de éste.
El Panel frontal se construye ensamblando las definiciones de sus componentes. Cada uno de estos componentes requiere una sintaxis que define dónde se coloca el componente en el Panel frontal, cuál es su aspecto y cómo se comporta.
El Panel frontal se ensambla de fuera hacia dentro.
El PANEL es el contenedor de nivel superior, o principal, de todo el Panel frontal.
El PANEL contiene un CUADRO o más.
Un CUADRO contiene un CONTROL o más.
Existen dos tipos especiales de contenedores:
Un SUBPANEL está asociado con un control determinado (el control es el contenedor del subpanel). Los subpaneles “surgen” del control al cual están asociados.
El CONMUTADOR contiene los botones para cambiar las áreas de trabajo, además de controles adicionales.
Cada componente del Panel frontal se define por separado mediante la sintaxis:
COMPONENT nombre { KEYWORD valor KEYWORD valor … }
Algunas palabras clave (keywords) son obligatorias, otras son opcionales. Para obtener más información, véase la página de comando man dtfpfile(4X).
El PANEL es el componente de nivel superior. Su definición incluye:
El nombre del Panel frontal
Campos que describen el aspecto y comportamiento generales de todo el Panel frontal
PANEL nombre_panel_frontal { KEYWORD valor KEYWORD valor … }
nombre_panel_frontal es un nombre exclusivo para el Panel frontal. El nombre predeterminado es “FrontPanel”.
Una definición de CUADRO describe:
El nombre del CUADRO
La posición del cuadro en el PANEL (POSITION_HINTS)
Campos que describen el aspecto y comportamiento generales aplicables a todo el cuadro
BOX nombre_cuadro { CONTAINER_NAME nombre_panel_frontal POSITION_HINTS posición KEYWORD valor KEYWORD valor … }
Una definición de CONTROL describe:
El nombre del CONTROL
Si el control está en un cuadro, un subpanel o un conmutador (CONTAINER_TYPE)
En qué cuadro, subpanel o conmutador se encuentra el control (CONTAINER_NAME)
La posición del CONTROL en el CUADRO (POSITION_HINTS).
Campos que describen el aspecto y comportamiento del control
CONTROL nombre_control { CONTAINER_TYPE BOX o SUBPANEL o SWITCH CONTAINER_NAME nombre_cuadro o nombre_subpanel o nombre_conmutador TYPE tipo_control POSITION_HINTS posición KEYWORD valor KEYWORD valor … }
Una definición de SUBPANEL describe:
El nombre del SUBPANEL
El nombre del control al que está conectado el subpanel (CONTAINER_NAME)
Campos que describen el aspecto y comportamiento concretos del subpanel
SUBPANEL nombre_subpanel { CONTAINER_NAME nombre_control KEYWORD valor KEYWORD valor … }
Una definición de CONMUTADOR describe:
El nombre del CONMUTADOR
La posición de CONMUTADOR dentro del CUADRO (POSITION_HINTS)
Campos que describen el aspecto y el comportamiento del CONMUTADOR
SWITCH nombre_conmutador { CONTAINER_NAME nombre_cuadro POSITION_HINTS posición KEYWORD valor KEYWORD valor … }
El Panel principal es la ventana del Panel frontal, excluidos los subpaneles.
Las modificaciones que se pueden realizar incluyen:
Para agregar o eliminar controles
Intercambiar las posiciones de los controles
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 Top CONTAINER_TYPE BOX
Utilice POSITION_HINTS para especificar la colocación del control de izquierda a derecha. Puesto que las personalizaciones tienen prioridad sobre los controles incorporados, el nuevo control “desplazará” el control existente que ocupaba dicha posición una posición a la derecha.
Guarde el archivo de configuración.
Cree un icono para el control del Panel frontal.
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.
Por ejemplo, la siguiente definición de control ubicada en el archivo /etc/dt/appconfig/types/idioma/audio.fp inserta un control para una aplicación de audio entre los controles de Reloj y Calendario.
CONTROL AudioApplication { TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX ICON AudioApp POSITION_HINTS 2 PUSH_ACTION StartAudioApplication PUSH_RECALL true }
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 eliminar.
Si se trata de un control incorporado, su definición se encuentra en /usr/dt/appconfig/types/idioma/dtwm.fp.
No es necesario que copie toda la definición. No obstante, la parte que copie debe incluir los campos CONTAINER_NAME y CONTAINER_TYPE.
Agregue el campo DELETE a la definición:
DELETE True
Guarde el archivo de configuración.
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.
Por ejemplo, la siguiente definición de control ubicada en el archivo /etc/dt/appconfig/types/idioma/TrashCan.fp elimina el control Papelera del Panel frontal.
CONTROL Trash { CONTAINER_NAME Top CONTAINER_TYPE BOX DELETE True }
Utilice este procedimiento si necesita modificar la definición de un control: por ejemplo, cambiar la imagen de su icono.
Copie toda la definición del control desde /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 modificar. También puede agregar campos adicionales.
Guarde el archivo
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.
Copie las definiciones de los controles cuyas posiciones desea cambiar 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.
Debe copiar la definición completa para cada uno de los controles que deben moverse.
Intercambie los valores de los campos POSITION_HINTS de las definiciones de los controles.
Guarde el archivo
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.
Por ejemplo, las siguientes definiciones ubicadas en el archivo /etc/dt/appconfig/types/C/MailHelp.fp intercambian las posiciones de los controles Correo y Gestor de ayuda y bloquean estos controles para impedir cambios personales.
CONTROL Mail { POSITION_HINTS 12 LOCKED True …el resto de la definición del control }
CONTROL Help { POSITION_HINTS 5 LOCKED True …el resto de la definición del control }
Cree otra definición de control con los mismos:
nombre_control
Por ejemplo, los dos controles siguientes están definidos en dos archivos de configuración diferentes: los controles tienen los mismos nombres de control y de contenedor y por consiguiente, se les considera el mismo control.
Definición en /etc/dt/appconfig/types/C/SysControls.fp:
Control ImportantApplication { CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 2 … }
Definición en DirectorioInicio/.dt/types/MisControles.fp:
Control ImportantApplication { CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 6 … }
El control personal tiene prioridad, por lo tanto el control se ubicará en la posición 6.
El campo ICON de la definición del control define la imagen del icono utilizado por dicho 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 del icono menos los sufijos de tamaño (m y t) y tipo de imagen (bm y pm). Por ejemplo, si los archivos se llaman MiJuego.l.pm y MiJuego.m.pm, utilice MiJuego.
Si utiliza el nombre de archivo base, los archivos de iconos deben estar situados en 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 icono, incluido el nombre de archivo completo.
Deberá utilizar la ruta absoluta sólo si el icono no se encuentra 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 píxels (nombre.l.pm o nombre.l.bm)
Subpanel: 24 por 24 píxels (nombre.s.pm o nombre.s.bm)
Ponga el archivo de icono en una de estas ubicaciones:
Iconos personales: DirectorioInicio/.dt/icons
Iconos accesibles en el sistema: /etc/dt/appconfig/icons/idioma
Los usuarios pueden crear y modificar subpaneles mediante 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.
La conexión se realiza en la definición del subpanel. El campo CONTAINER_NAME especifica el control al cual está conectado el subpanel:
CONTROL nombre_control { … } SUBPANEL nombre_subpanel { CONTAINER_NAME nombre_control … }
Localice el nombre_control del control en el Panel principal al que desea conectar el subpanel.
Si se trata de uno de los controles incorporados, su definición se encuentra 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 Gestor de área de trabajo en el Menú del área de trabajo.
Se pueden modificar las propiedades generales (como, por ejemplo, el título) y el contenido de los subpaneles incorporados.
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 la definición predeterminada completa del SUBPANEL de /usr/dt/appconfig/types/idioma/dtwm.fp al nuevo archivo:
SUBPANEL nombre_subpanel { … }
Modifique la definición del subpanel.
Guarde el nuevo archivo de configuración.
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.
Por ejemplo, la siguiente definición, ubicada 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 }
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 del control:
CONTROL nombre_control{ CONTAINER_NAME nombre_subpanel CONTAINER_TYPE SUBPANEL … }
Guarde el archivo de configuración.
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.
Por ejemplo, el siguiente control definido en un nuevo archivo /etc/dt/appconfig/types/idioma/RelojDigital.fp agrega el RelojDigital (en el grupo de aplicaciones Herramientas_Escritorio) al subpanel Aplicaciones personales de todos los usuarios.
CONTROL DigitalClockControl { TYPE icon CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL ICON Dtdgclk PUSH_ACTION RelojDigital PUSH_RECALL True }
Utilice el mismo procedimiento que para eliminar un control del Panel principal. Véase Para suprimir un control.
Agregue el siguiente campo a la definición del subpanel:
CONTROL_INSTALL False
De manera predeterminada los subpaneles se cierran cuando el usuario selecciona un control, a menos que el usuario haya movido el subpanel respecto de su posición original.
El Panel frontal puede configurarse para que los subpaneles se mantengan abiertos a menos 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 de PANEL predeterminada de /usr/dt/appconfig/types/idioma/dtwm.fp al nuevo archivo:
PANEL Panel frontal { … }
Agregue el siguiente campo a la definición de PANEL:
SUBPANEL_UNPOST False
Guarde el nuevo archivo de configuración.
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.
El usuario puede crear controles personales soltando iconos en los controles Instalar icono.
A pesar de que esto facilita las tareas de personalización, las funciones que proporciona constituyen sólo una parte de las capacidades de los controles del Panel frontal. Por ejemplo, un control creado mediante los controles Instalar icono no puede:
Poseer animación
Mostrar una ventana de cliente
Cambiar de aspecto cuando se produce un evento (por ejemplo, al recibir correo nuevo)
Esta sección describe cómo crear controles del Panel frontal manualmente.
Para obtener información de referencia acerca de la sintaxis de los controles del Panel frontal, consulte la página de comando man dtfpfile(4X).
La estructura de la definición de un 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 }
El campo TYPE de la definición del control especifica el comportamiento básico del control.
Comportamiento del control
El control ejecutará un acción determinada cuando el usuario haga clic en o suelte un archivo sobre él.
Espacio reservado utilizado para ajustar el espaciado de los controles.
Indicador luminoso de espera. El control parpadea (conmuta imágenes) cuando se invoca una acción.
Una ventana de cliente en el Panel frontal.
Reloj.
Muestra la fecha actual.
Representa un archivo. Al elegir el control se ejecuta la acción predeterminada para el archivo.
En esta sección se describen los pasos generales para definir un control y el procedimiento para crear diversos tipos de controles.
Si el control debe tener PUSH_ACTION y/o DROP_ACTION, cree las definiciones de las acciones: éstas son las acciones que se ejecutan cuando el usuario hace clic en el control o suelta un archivo sobre él.
Cree los archivos de imagen de icono para el control.
Para obtener información sobre los tamaños, nombres y ubicaciones de los iconos, véase Archivos de imagen de iconos.
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
Agregue al archivo la definición del control.
Guarde el archivo.
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.
Utilice los siguientes campos para definir el comportamiento del control:
TYPE: Establecido en icon
PUSH_ACTION: Especifica el nombre de la acción que se ha de ejecutar
Por ejemplo, el siguiente control, que se colocará en el subpanel Aplicaciones personales, ejecuta un juego obtenido por el usuario:
CONTROL Ball { TYPE icon CONTAINER_NAME PersAppsSubpanel CONTAINER_TYPE SUBPANEL ICON ball PUSH_ACTION RunBallGame HELP_STRING "Elija este control para jugar a pelota." }
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 }
Utilice los siguientes campos para definir el comportamiento del control:
TYPE: Establecido en file
PUSH_ACTION: Establecido en Open
Se debe haber definido una acción Open 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 Open 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 Top CONTAINER_TYPE BOX POSITION_HINTS last ICON PhoneBook HELP_STRING "Este control muestra la lista de teléfonos de Elena." PUSH_ACTION Open }
Utilice el campo DROP_ACTION para especificar la acción que se ejecuta cuando el usuario suelta un archivo sobre el control. La acción debe ser capaz de aceptar un argumento de archivo.
Normalmente, una definición de control incluye un campo PUSH_ACTION y un campo DROP_ACTION. Puede utilizar la misma acción para las acciones de pulsar y soltar.
Por ejemplo, el siguiente control, ubicado en el subpanel Aplicaciones personales, ejecuta el cliente X xwud, que acepta un argumento de archivo.
CONTROL Run_xwud { CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL POSITION_HINTS 2 ICON XwudImage PUSH_ACTION RunXwud DROP_ACTION RunXwud }
Utilice los siguientes campos para definir el comportamiento del control:
TYPE: especifique uno de los siguientes valores:
icon: utilice este tipo si desea especificar PUSH_ACTION y/o DROP_ACTION para el control.
file: utilice este tipo si quiere que, al elegir el control, éste se comporte igual que el archivo cuando se hace doble clic en el icono del archivo en el Gestor de archivos.
ICON y ALTERNATE_ICON: Describen las imágenes utilizadas para indicar los estados no modificado y modificado del archivo supervisado.
MONITOR_TYPE: Describe las condiciones que provocan el cambio de la imagen. Utilice uno de los valores siguientes:
mail: el control cambiará de aspecto cuando se agregue información al archivo.
file: el control cambiará cuando el archivo especificado deje de estar vacío.
FILE_NAME: Especifica el archivo que se va a supervisar.
Por ejemplo, el siguiente control busca si existe un archivo llamado meetings, que espera que le sea transferido a su sistema mediante ftp anónimo. El control se ubica 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 }
Un control de caso único comprueba si el proceso iniciado por PUSH_ACTION ya se está ejecutando. En caso negativo, se ejecuta PUSH_ACTION; en caso afirmativo, la ventana se mueve a la parte superior de la pila de ventanas del área de trabajo actual.
Utilice los siguientes campos para definir el comportamiento del control:
PUSH_RECALL: Establecido en True.
CLIENT_NAME: Especifica al control el nombre del cliente.
El valor de CLIENT_NAME debe coincidir con la primera cadena de caracteres (res_name) de la propiedad WM_CLASS de la ventana de nivel superior de la aplicación. Para obtener más información, véase la página de comando man xprop(1).
PUSH_ACTION: Describe la acción que se ejecuta cuando el usuario hace clic en el control.
Por ejemplo, el siguiente control ejecuta una aplicación cuya acción se llama MiEditor.
CONTROL MiEditor { TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 15 PUSH_RECALL True CLIENT_NAME BestEditor PUSH_ACTION StartMiEditor ICON MyEd }
Un control de ventana de cliente es una ventana de aplicación incorporada al Panel frontal. Por ejemplo, puede colocar un medidor de carga del sistema en el Panel frontal creando un control de ventana de cliente xload.
Defina el control.
Utilice los siguientes campos para definir el comportamiento del control:
TYPE: Establecido en client.
CLIENT_NAME: Especifica el cliente que se va a ejecutar.
El valor de CLIENT_NAME debe coincidir con la primera cadena de caracteres (res_name) de la propiedad WM_CLASS de la ventana de nivel superior de la aplicación. Para obtener más información, véase la página de comando man xprop(1).
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.
Inicie el cliente desde una línea de comandos del emulador de terminal.
Por ejemplo, el control siguiente muestra un indicador de carga de 30 x 20 píxeles.
CONTROL LoadMeter { TYPE client CONTAINER_NAME Top 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 haga clic en él. Por ejemplo, puede configurar el control LoadMeter para que inicie xload agregando la línea siguiente 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 }
Puede agregar una secuencia de animación para utilizarla cuando el usuario elija el control o suelte un objeto sobre él.
Para que un control pueda contener una secuencia de animación debe:
Ser de tipo icon
Incluir PUSH_ACTION o DROP_ACTION
Especifique la secuencia de animación mediante el componente ANIMATION:
ANIMATION nombre_animación{ ANIMATION icono1 [retardo_milisegundos] ANIMATION icono2 [retardo_milisegundos] … }
donde icono1, icono2, etc., son los nombres de los iconos y retardo_milisegundos es el retardo temporal en milisegundos entre los iconos de la animación. El retardo temporal predeterminado es de 200 milisegundos.
Agregue los campos PUSH_ANIMATION y/o DROP_ANIMATION a la definición del control. El valor es el nombre de la secuencia ANIMATION.
Por ejemplo, las líneas siguientes dotan de animación a un control que inicia la aplicación MejorEditor. El retraso temporal entre iconos es de 300 milisegundos. En el ejemplo se supone que se han creado los archivos de icono cuadro1, cuadro2, etc.
CONTROL MejorEditor { … PUSH_ANIMATION BestEdAnimation … }
ANIMATION BestEdAnimation { cuadro1 300 cuadro2 … }
Existen dos procedimientos para proporcionar ayuda para un control:
Presentar 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 (por ejemplo, títulos) ni enlaces.
Para proporcionar una cadena de ayuda, especifíquela en la definición del control:
HELP_STRING cadena_ayuda
Especificar un tema de ayuda en un volumen de ayuda registrado
Un tema de ayuda es información creada con todas las posibilidades del sistema de ayuda. La creación de un tema de ayuda requiere el uso del Help Developer's Kit del escritorio.
Para proporcionar un tema de ayuda, especifique el volumen de ayuda y el ID del tema en la definición del control:
HELP_VOLUME nombre_volumen_ayuda HELP_TOPIC id_tema
Existen diversos procedimientos para personalizar el Conmutador de áreas de trabajo:
Cambiar el número de áreas de trabajo
Cambiar el diseño del conmutador
Cambiar los controles del conmutador
Modifique el siguiente recurso del Gestor de área de trabajo:
Dtwm*workspaceCount: n
Para obtener más información, véase Para cambiar el número de áreas de trabajo en todo el sistema.
Por ejemplo, la siguiente definición especifica un conmutador de tres filas:
SWITCH Switch { CONTAINER_NAME nombre_cuadro NUMBER_OF_ROWS 3 … }
Cree un archivo de configuración del Panel frontal con la definición del control.
Cree un icono para el control. El tamaño recomendado es de 16 por 16 píxels.
Por ejemplo, la siguiente definición coloca 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 usa un icono incorporado y el mismo tema de ayuda utilizado por el control Terminal del subpanel Aplicaciones personales.
La sintaxis de PANEL del Panel frontal permite:
Cambiar la ubicación del Panel frontal
Cambiar los accesorios de la ventana
Establecer el aspecto y comportamiento generales de los controles
La descripción de PANEL predeterminada se encuentra en /usr/dt/appconfig/types/idioma/dtwm.fp.
Para obtener información adicional, véase la página de comando man dtfpfile(4X).
Cree un nuevo archivo de configuración del Panel frontal en /etc/dt/appconfig/types/idioma o DirectorioInicio/.dt/types.
Copie la descripción de PANEL predeterminado de /usr/dt/appconfig/types/idioma/dtwm.fp al nuevo archivo.
Edite la descripción de PANEL.
La nueva descripción de PANEL tiene prioridad sobre la predeterminada.
Por ejemplo, el siguiente panel se encuentra en la esquina superior derecha:
PANEL PanelFrontalEspecial { PANEL_GEOMETRY -1+1 … }
Agregue la siguiente línea a la definición de PANEL:
DISPLAY_CONTROL_LABELS True
Agregue un campo LABEL a cada control.
Si no se especifica LABEL, se utiliza nombre_control.
Utilice el campo CONTROL_BEHAVIOR en la definición de PANEL para especificar cómo el usuario ejecuta PUSH_ACTION en un control. Los valores posibles del campo son:
single_click: el usuario hace clic sobre el control para ejecutar PUSH_ACTION
double_click: el usuario efectúa dos clics sobre el control para ejecutar PUSH_ACTION
Si ha de efectuar muchos cambios en el Panel frontal, es preferible crear uno nuevo.
Para evitar conflictos con los componentes incorporados del Panel frontal, un Panel frontal completamente nuevo debería utilizar nombres nuevos para PANEL y el resto de contenedores.
Cree el componente PANEL para el nuevo Panel frontal. Póngale un nombre exclusivo:
PANEL nombre_panel_frontal{ … }
Cree los cuadros y controles nuevos, mediante los nuevos nombres de contenedor.
Si quiere utilizar componentes existentes, debe copiar sus definiciones y cambiar el valor de CONTAINER_NAME.
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.
El ejemplo siguiente cambia el Panel frontal para que sus controles estén ordenados en tres filas.
Copie /usr/dt/appconfig/types/idioma/dtwm.fp en DirectorioInicio/.dt/types/MiPanelFrontal.fp. Asigne permiso de escritura al archivo.
Éste es el archivo que deberá editar para obtener el nuevo Panel frontal.
Cambie el nombre del Panel frontal:
PANEL NuevoPanelFrontal
Cambie el nombre del cuadro llamado Top y modifique el nombre de su contenedor:
BOX NuevoPanelFrontalSuperior { CONTAINER_NAME NuevoPanelFrontal POSITION_HINTS first … }
Agregue definiciones de cuadros para las filas central e inferior:
BOX NuevoPanelFrontalCentral { CONTAINER_NAME NuevoPanelFrontal POSITION_HINTS second }
BOX NuevoPanelFrontalInferior { CONTAINER_NAME NuevoPanelFrontal POSITION_HINTS second }
Cambie el CONTAINER_NAME de los siguientes controles por NuevoPanelFrontalSuperior:
Clock
Date
Home
TextEditor
Cambie el CONTAINER_NAME de los siguientes controles por NuevoPanelFrontalInferior:
Printer
Style
Applications
Help
Trash
Cambie el CONTAINER_NAME de Switch por NuevoPanelFrontalCentral.
Elija Reiniciar Gestor de área de trabajo en el Menú del área de trabajo.