Las acciones y los tipos de datos son componentes muy versátiles, apropiados para integrar aplicaciones en el escritorio. Proporcionan un medio para crear una interfaz de usuario para ejecutar aplicaciones y manipular los archivos de datos de éstas.
Este capítulo presenta los conceptos de acciones y tipos de datos; describe:
Por qué es útil crear acciones y tipos de datos para las aplicaciones.
Cómo están relacionados entre sí las acciones y los tipos de datos.
Cómo están relacionadas las acciones y los tipos de datos con la impresión desde el escritorio.
Los procedimientos y reglas de creación de acciones se tratan en tres capítulos de este manual.
Capítulo 11 explica cómo crear acciones y tipos de datos mediante la aplicación del escritorio Crear acción.
Se puede utilizar Crear acción para crear acciones y tipos de datos para la mayoría de las aplicaciones sin necesidad de conocer las reglas sintácticas de sus definiciones.
Capítulo 12 y Capítulo 13 explican cómo crear acciones y tipos de datos manualmente, creando y editando los archivos de configuración.
Si desea utilizar características avanzadas que Crear acción no admite, deberá crear las acciones y los tipos de datos manualmente.
Las acciones son instrucciones escritas que automatizan las tareas del escritorio, como ejecutar aplicaciones y abrir archivos de datos. Las acciones funcionan de forma muy parecida a las macros de las aplicaciones o a las funciones de programación. Cada acción tiene un nombre que se utiliza para ejecutarla.
Una vez haya definido una acción, puede utilizarla para adaptar la interfaz de usuario de forma que la realización de las tareas sea más sencilla. El escritorio ofrece la posibilidad de conectar los componentes de la interfaz de usuario, como por ejemplo los iconos, los controles del Panel frontal y los elementos de menú, a las acciones.
Por ejemplo, el grupo de aplicaciones Herramientas_Escritorio del Gestor de aplicaciones contiene iconos para ejecutar diversas utilidades.
Cada uno de estos iconos ejecuta una acción al hacer un doble clic en él. Por ejemplo, presentamos un fragmento de la definición de la acción que se ejecuta cuando el usuario hace doble clic en el icono con la etiqueta Mostrar Xwd. La acción está definida en el archivo de configuración /usr/dt/appconfig/types/idioma/xclients.dt:
ACTION Xwud { LABEL Mostrar Xwd TYPE COMMAND EXEC_STRING /usr/bin/X11/xwud -noclick -in \ %(File)Arg_1"Archivo Xwd a mostrar:"% … }
Cuando el usuario hace doble clic en el icono, se ejecuta el comando que aparece en la EXEC_STRING de la acción.
El Panel frontal también utiliza acciones. Por ejemplo, el siguiente es un fragmento de la definición del control con la etiqueta Terminal del subpanel Aplicaciones personales. El control está definido en el archivo de configuración /usr/dt/appconfig/types/idioma/dtwm.fp:
CONTROL Term { ICON Fpterm LABEL Terminal PUSH_ACTION Dtterm … }
El campo PUSH_ACTION especifica la acción que se ha de ejecutar cuando el usuario hace clic en el control, en este caso, una acción llamada Dtterm.
Otro uso común de las acciones se encuentra en los menús. Los archivos de datos suelen tener acciones en su menú Seleccionada del Gestor de archivos. Por ejemplo, los archivos XWD (aquellos cuyos nombres acaban con las extensiones .xwd o .wd) tienen una acción Abrir que muestra la imagen en pantalla ejecutando la acción Xwud.
Las acciones del menú Seleccionada se especifican en la definición del tipo de datos de los archivos XWD. La definición está ubicada en el archivo de configuración /usr/dt/appconfig/types/idioma/xclients.dt.
DATA_ATTRIBUTES XWD { ACTIONS Open,Print ICON Dtxwd …
}
El tipo de datos XWD y sus acciones asociadas, Abrir e Imprimir, se explican en Cómo los tipos de datos conectan los archivos de datos con las acciones.
Examinemos el icono Mostrar Xwd del grupo de aplicaciones Herramientas_Escritorio. Al hacer doble clic en el icono se ejecuta el cliente X xwud. Sin embargo, este icono no representa directamente el ejecutable xwud, /usr/bin/X11/xwud.
El icono etiquetado como Mostrar Xwd aparece en el grupo de aplicaciones porque en ese directorio existe un archivo llamado Xwud (véase Figura 10–3). Este archivo representa una acción subyacente con el mismo nombre: Xwud. En la definición de la acción, el nombre de la acción es el que sigue a la palabra clave ACTION:
ACTION Xwud { LABEL Mostrar Xwd TYPE COMMAND WINDOW_TYPE NO_STDIO EXEC_STRING /usr/bin/X11/xwud -noclick -in \ %(File)Arg_1"Archivo Xwd a mostrar:"% DESCRIPTION La acción Mostrar Xwd (Xwud) \ muestra un archivo xwd creado mediante \ la acción Xwd Capture (Xwd). Utiliza el \ comando xwud. }
El archivo se llama archivo de acción porque representa una acción. Un archivo es una acción cuando es un ejecutable con el mismo nombre que una acción. Su icono en el Gestor de aplicaciones (o en el Gestor de archivos) se llama icono de acción, o icono de aplicación, porque al hacer doble clic en él se inicia la aplicación.
Cuando el Gestor de aplicaciones detecta un archivo ejecutable, consulta la base de datos de acciones para ver si existen acciones cuyos nombre concuerden con el del archivo. Si se halla una concordancia, el Gestor de aplicaciones sabe que el archivo es un archivo de acción.
El contenido del archivo de acción es irrelevante; los archivos de acción suelen contener comentarios que describen su función en el escritorio.
Un archivo de acción no es lo mismo que un archivo de definición de acción. Aquél es un archivo con el mismo nombre que la acción, que se utiliza para crear el icono de aplicación en el Gestor de archivos o el Gestor de aplicaciones. El archivo de definición de acción es el archivo llamado nombre.dt que contiene la definición de la acción.
Una vez el escritorio determina si un archivo es de acción, se utiliza la definición de acción subyacente para definir el aspecto y comportamiento del archivo de acción.
El campo EXEC_STRING especifica el comportamiento del icono de la aplicación. En el caso del icono Mostrar Xwd, EXEC_STRING especifica que la acción ejecute el cliente X xwud con determinados argumentos de línea de comandos.
El campo LABEL especifica la etiqueta del icono de la aplicación.
El campo DESCRIPTION describe el texto mostrado cuando el usuario solicita Ayuda sobre el tema.
El icono de la aplicación Xwud utiliza la imagen de icono predeterminada porque la definición de la acción no contiene ningún campo ICON que especifique una imagen diferente.
A diferencia de esto, el icono etiquetado como Comprimir archivo utiliza una imagen de icono diferente porque su definición de acción subyacente contiene un campo ICON:
Por ejemplo:
ACTION Compress { LABEL Comprimir archivo ICON Dtcmprs … }
La acción Xwud se denomina acción command porque su definición contiene el comando (EXEC_STRING) que se debe ejecutar. El campo TYPE de la definición de la acción define el tipo de acción.
Inicialmente, el icono Mostrar Xwd aparece en el grupo de aplicaciones Herramientas_Escritorio. Sin embargo, se pueden crear copias adicionales del icono de acción en cualquier directorio para el que se tenga permiso de escritura. Mientras la definición de la acción Xwud forme parte de la base de datos, cualquier archivo ejecutable que se cree con el nombre Xwud será un archivo de acción que representará esa acción, y se podrá utilizar su icono en el Gestor de archivos o el Gestor de aplicaciones para ejecutarla.
Un argumento de un comando es el objeto, generalmente un archivo, sobre el que actúa el comando. Se pueden escribir acciones que acepten argumentos de archivo.
Por ejemplo, EXEC_STRING de la acción Xwud especifica que es necesario un argumento de archivo:
EXEC_STRING /usr/bin/X11/xwud -noclick -in \ %(File)Arg_1"Archivo Xwd a mostrar:"%
El término Arg representa la palabra argumento. La sintaxis Arg_1 significa el primer argumento, y (File) significa que la acción trata el argumento como un archivo.
El procedimiento más fácil para que el usuario proporcione el argumento de archivo es soltar un archivo de datos en el icono de la aplicación. El escritorio determina la ruta del archivo soltado y lo coloca en la línea de comandos, en el lugar del texto entre los símbolos % (%(File)Arg_1"Archivo Xwd a mostrar:"%). Por tanto, el comando que se ejecuta es:
/usr/bin/X11/xwud -noclick -in ruta_archivo
Cuando el usuario hace doble clic en el icono de la aplicación, el escritorio determina a partir de EXEC_STRING que se necesita un argumento de archivo, y muestra un cuadro de diálogo que solicita al usuario un nombre o ruta de archivo. En el caso de la acción Xwud, el indicador de solicitud es:
Archivo Xwd a mostrar:
El nombre o ruta de archivo que el usuario proporciona se utiliza como argumento de archivo.
Además de ejecutar aplicaciones, las acciones se usan en el escritorio para determinadas funciones en:
El Panel frontal
La definición de un control del Panel frontal incluye campos que especifican la acción que se ha de ejecutar cuando el usuario hace clic en el control o suelta un archivo sobre él. Para obtener más información, véase Definición de los controles del Panel frontal.
Menús
La sintaxis de las definiciones de los menús Ventana y Área de trabajo permite especificar la acción que deberá ejecutar un elemento de menú. Para obtener más información, véase Menús del Gestor de área de trabajo y la página de comando man dtwmrc(4).
Comunicación entre aplicaciones
Una aplicación puede diseñarse para que envíe y reciba información gracias a un tipo especial de acción llamada mensaje de ToolTalk (TT_MSG). Las acciones TT_MSG se describen en la documentación del entorno de programador del escritorio.
Cuando el usuario crea un nuevo archivo de datos, el aspecto y el comportamiento del icono del archivo en el Gestor de archivos varían en función del tipo de archivo de datos creado. Esta capacidad para personalizar el aspecto y el comportamiento de los archivos y directorios la proporciona el mecanismo de establecimiento de tipos de datos del escritorio.
Un tipo de datos es una estructura definida dentro de la base de datos del escritorio. Por ejemplo, ésta es la definición del tipo de datos XWD; se encuentra en el archivo de configuración /usr/dt/appconfig/types/idioma/xclients.dt:
DATA_ATTRIBUTES XWD { ACTIONS Open,Print ICON Dtxwd NAME_TEMPLATE %s.xwd MIME_TYPE application/octet-stream SUNV3_TYPE xwd-file DESCRIPTION Este archivo contiene una imagen gráfica en \ el formato XWD. Estos archivos se suelen crear capturando \ ventanas mediante la acción XwdCapture. Su tipo de datos \ se denomina XWD. Los nombres de los archivos XWD finalizan \ con las extensiones `.xwd' o `.wd'. }
DATA_CRITERIA XWD1 { DATA_ATTRIBUTES_NAME XWD MODE f NAME_PATTERN *.xwd } DATA_CRITERIA XWD2 { DATA_ATTRIBUTES_NAME XWD MODE f NAME_PATTERN *.wd }
Cada definición de tipo de datos consta de dos partes:
DATA_ATTRIBUTES: describe el aspecto y el comportamiento del tipo de datos.
DATA_CRITERIA: especifica las reglas (de denominación o contenido) utilizadas para clasificar un archivo como perteneciente a dicho tipo de datos.
El campo DATA_ATTRIBUTES_NAME conecta los criterios con los atributos.
Puede haber varios DATA_CRITERIA para cada DATA_ATTRIBUTE. Por ejemplo, el tipo de datos XWD tiene dos criterios para especificar dos criterios de denominación distintos (NAME_PATTERN): nombres finalizados en las extensiones .xwd o .wd.
Examinemos el tipo de datos XWD. El usuario crea un archivo de tipo XWD al que asigna uno de los dos sufijos (extensiones) de nombre de archivo: .xwd o.wd. El escritorio utiliza el nombre de archivo como criterio para asignar a éste dicho tipo.
El tipo de datos XWD proporciona a cada archivo de dicho tipo de datos:
Un icono exclusivo que ayuda a los usuarios a reconocer los archivos de datos.
Ayuda sobre el tema que informa sobre el tipo de datos.
Un menú Seleccionada personalizado en el Gestor de archivos, que contiene las acciones Abrir e Imprimir. La acción Abrir para archivos XWD ejecuta la acción Xwud.
El menú Seleccionada del Gestor de archivos sólo está activo cuando se selecciona un archivo o directorio. Los comandos que aparecen en la parte inferior del menú Seleccionada dependen del tipo de datos. Por ejemplo, si se selecciona un archivo XWD el menú Seleccionada incluye los elementos Abrir e Imprimir.
El campo ACTIONS de la definición del tipo de datos especifica los comandos que se agregan a la parte inferior del menú Seleccionada del tipo de datos.
DATA_ATTRIBUTES XWD { ACTIONS Open,Print … }
El contenido del menú Seleccionada depende del tipo de datos. Sin embargo, muchos tipos de datos diferentes proporcionan una acción Open, esto es, al seleccionar en el Gestor de archivos un archivo de ese tipo de datos concreto y mostrar el menú Seleccionada, verá un elemento Abrir.
Generalmente, la acción Open ejecuta la aplicación con la cual está asociado el archivo de datos. Por ejemplo, al abrir un archivo XWD se ejecuta la acción Xwud, que a su vez ejecuta el cliente X xwud para mostrar la imagen de pantalla. En otras palabras, para el tipo de datos XWD, la acción Open es sinónimo de la acción Xwud. Del mismo modo, al abrir un archivo del tipo de datos TEXTFILE se ejecuta el Editor de texto, y al abrir un archivo BM (mapa de bits) o PM (mapa de píxels) se ejecuta el Editor de iconos.
La capacidad de crear diversas acciones Open que realizan cosas diferentes utiliza dos de las características de la definición de acciones:
La reasignación de acciones permite crear una acción que, en lugar de ejecutar directamente un comando, ejecute otra acción. Por ejemplo, puede crear una acción Open que se corresponda con (ejecute) la acción Xwud.
restricciones de tipo de datos en una acción
Las definiciones de acciones pueden incluir un campo ARG_TYPE que limita la acción a determinados tipos de datos. Por ejemplo, puede especificar que la acción Open asignada a la acción Xwud se aplique sólo a archivos del tipo de datos XWD.
Ésta es la definición de la acción que reasigna a la acción Open la acción Xwud para el tipo de datos XWD. Se encuentra en el archivo de configuración de base de datos /usr/dt/appconfig/types/C/xclients.dt.
ACTION Open { LABEL Abrir ARG_TYPE XWD TYPE MAP MAP_ACTION Xwud }
El campo TYPE especifica que la acción es de tipo map (reasigna funciones); el campo MAP_ACTION especifica que esta acción ejecuta la acción Xwud. El campo ARG_TYPE especifica que esta acción se aplica únicamente a los archivos cuyo tipo de datos sea XWD.
Compare la definición anterior de la acción Open con la siguiente definición, que aparece en el archivo de base de datos /usr/dt/appconfig/types/C/dt.dt.
ACTION Open { LABEL Abrir ARG_TYPE BM TYPE MAP MAP_ACTION Dticon }
Esta definición se aplica a los archivos del tipo de datos (ARG_TYPE) BM (archivos de mapa de bits). La definición reasigna a la acción Open una acción Dticon, que ejecuta el Editor de iconos.
El comportamiento del tipo de datos cuando se hace un doble clic se define en la primera entrada del campo ACTIONS. Por ejemplo, en el tipo de datos XWD, cuando se hace doble clic se ejecuta la acción Open, que a su vez ejecuta la acción Xwud.
Cuando el usuario suelta un archivo de datos sobre un icono de acción, el sistema ejecuta ésta mediante el archivo de datos como argumento de la acción (véase Cómo las acciones utilizan archivos de datos como argumentos).
Por ejemplo, cuando se suelta un archivo XWD sobre el icono Mostrar Xwd, se ejecuta la acción Xwud mediante el archivo de datos como argumento. Esto hace que se ejecute el cliente X xwud con ese archivo de datos.
La impresión desde el escritorio ofrece los siguientes procedimientos para imprimir un archivo de datos:
Mediante el comando Imprimir, si está disponible, en el menú Seleccionada del Gestor de archivos.
Mediante la acción de soltar un archivo de datos en la zona de soltar de una impresora del escritorio (el control Impresora del Panel frontal o un icono de impresora en el Gestor de impresión).
Además de la impresión desde el escritorio, muchas aplicaciones ofrecen procedimientos para imprimir desde la propia aplicación.
La impresión de escritorio utiliza acciones llamadas Print. Ésta, como Open, es un nombre de acción utilizado para muchos tipos de datos distintos. Por lo tanto, las acciones Print utilizan la reasignación de acciones y el campo ARG_TYPE para personalizar la impresión para cada tipo de datos.
Por ejemplo, ésta es la acción Print para el tipo de datos XWD. La definición se encuentra en /usr/dt/appconfig/types/idioma/xclients.dt:
ACTION Print { LABEL Imprimir ARG_TYPE XWD TYPE MAP MAP_ACTION NoPrint }
Esta acción Print concreta para archivos XWD, se corresponde con una acción NoPrint, que es una acción especial definida en /usr/dt/appconfig/types/idioma/dt.dt y que muestra un cuadro de diálogo que informa al usuario de que este tipo de datos no puede imprimirse.
Compare la acción Print de XWD con la siguiente acción Print para archivos PCL:
ACTION Print { LABEL Imprimir ARG_TYPE PCL TYPE MAP MAP_ACTION PrintRaw }
La acción PrintRaw, definida en el archivo de configuración /usr/dt/appconfig/types/idioma/print.dt, contiene la línea de comandos para imprimir archivos PCL.
ACTION PrintRaw { TYPE COMMAND WINDOW_TYPE NO_STDIO EXEC_STRING /usr/dt/bin/dtlp -w %(File)Arg_1% }