Las acciones son instrucciones escritas que automatizan tareas del escritorio, como ejecutar aplicaciones y abrir archivos de datos; 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 usa para ejecutarla.
Una vez definida una acción, se puede usar para adaptar la interfaz de usuario de modo que facilite la realización de las tareas. El escritorio permite conectar componentes de la interfaz de usuario, por ejemplo, iconos, controles del Panel frontal y elementos de menú, a las acciones.
Por ejemplo, el grupo de aplicación 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 se define en el archivo de configuración /usr/dt/appconfig/types/idioma/xclients.dt:
ACTION Xwud { LABEL Xwd Display 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 aplicación porque en ese directorio existe un archivo llamado Xwud (véase la figura 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) XwdDisplay \ muestra un archivo xwd creado mediante la \ acción Captura Xwd (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 más información, consulte "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 más información, véase "Menús del Gestor de área de trabajo" y la página del 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.