# Introducción a las acciones y a los tipos de datos

Las acciones y los tipos de datos son componentes completos para integrar aplicaciones en el escritorio. Proporcionan un modo de crear una interfaz de usuario para iniciar aplicaciones y manipular los archivos de datos de las mismas.

SAG.IntAc.mkr.2
SAG.IntAc.mkr.5

Esta capítulo introduce los conceptos de acciones y tipos de datos. Describe:

- Por qué puede ser conveniente crear acciones y tipos de datos para las aplicaciones.

- Cómo están relacionadas 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 del escritorio.

## Consultas adicionales

Los procedimientos y las reglas para crear acciones y tipos de datos se incluyen en tres capítulos de este manual.

- El SAG.dtCrA.mkr.1 explica cómo crear acciones y tipos de datos utilizando la aplicación de escritorio Crear Acción.

  Se puede utilizar Crear Acción para crear acciones y tipos de datos para la mayoría de aplicaciones sin tener que aprender las reglas de sintaxis para las definiciones.

- El SAG.CrAct.mkr.1 y el SAG.CrDT.mkr.1 explican cómo crear manualmente acciones y tipos de datos creando y editando los archivos de configuración.

  Es necesario crear acciones y tipos de datos manualmente si desea utilizar características avanzadas no soportadas por Crear Acción.

## Introducción a las acciones

Las acciones son instrucciones escritas que automatizan las tareas de escritorio, tales como ejecución de aplicaciones y apertura de archivos de datos. Las acciones funcionan de forma muy parecida a las macros de aplicación o funciones de programación. Cada acción tiene un nombre que se utiliza para ejecutar la acción.

Una vez que haya definido una acción, ésta podrá utilizarse para adaptar la interfaz de usuario del escritorio de forma tal que sea más fácil realizar las tareas. El escritorio proporciona 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.

### Usos para las acciones

Por ejemplo, el grupo de aplicaciones Herramientas_Escritorio del Gestor de aplicaciones contiene iconos que inician diversas utilidades.

### Iconos de acciones del grupo de aplicaciones Herramientas_Escritorio

Cada uno de estos iconos ejecuta una acción cuando se efectúa una doble pulsación sobre él. Por ejemplo, he aquí una parte de la definición de la acción que se ejecuta cuando el usuario efectúa una doble pulsación sobre el icono etiquetado Mostrar Xwd. La acción se define 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:”%
       …
    }

El mandato en el `EXEC_STRING` de la acción se ejecuta cuando el usuario efectúa una doble pulsación sobre el icono.

El Panel Frontal también utiliza acciones. Por ejemplo, he aquí una parte de la definición del control etiquetado como Terminal en el subpanel Aplicaciones personales. El control se define 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 debe ejecutar cuando el usuario pulse el botón sobre el control (en este caso, una acción llamada `Dtterm`).

Otro uso común de las acciones es en los menús. Los archivos de datos tienen normalmente acciones en su menú Seleccionado del Gestor de archivos. Por ejemplo, los archivos XWD (archivos con nombres que terminan por`.xwd` o `.wd`) tienen una acción Abrir que muestra la imagen de pantalla ejecutando la acción `Xwud`.

### Acción Abrir para archivos del tipo de datos XWD

Las acciones del
menú Seleccionado se especifican en la definición del tipo de datos para los archivos XWD. La definición se encuentra 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, así como sus acciones asociadas Abrir e Imprimir, se explican en la sección SAG.IntAc.mkr.6.

###
Cómo las acciones crean iconos para las aplicaciones

Examinemos el icono Mostrar Xwd del grupo de aplicaciones Herramientas_Escritorio. Si efectúa una doble pulsación sobre este icono, se ejecutará el cliente de X `xwud`. Sin embargo, este icono no representa directamente el ejecutable `xwud` real `/usr/bin/X11/xwud`.

El icono etiquetado Mostrar Xwd aparece en el grupo de aplicaciones porque en dicho directorio existe un archivo llamado `Xwud` (vea la SAG.IntAc.mkr.3). Este archivo representa una acción subyacente con el mismo nombre —Xwud. En la definición de acción, el nombre de la acción es el nombre 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 MostrarXwd (Xwud) de Mostrar Xwd muestra \
                   un archivo xwd que se ha creado utilizando la acción \
                   (Xwd) Capturar Xwd. Utiliza el mandato xwud.
    }

El archivo se denomina archivo de acción porque representa una acción. Un archivo es un archivo de acción cuando es un archivo ejecutable con el mismo nombre que una acción. Su icono en el Gestor de aplicaciones (o el Gestor de archivos) se denomina
icono de acción o
icono de aplicación porque, si se efectúa una doble pulsación sobre él, se inicia una aplicación.

#### Icono de aplicación (acción) que representa un archivo de acción

Cuando el Gestor de aplicaciones detecta un archivo ejecutable, consulta la base de datos de acciones para ver si existen acciones cuyos nombres coincidan con el nombre de archivo. Si se encuentra una que coincide, el Gestor de aplicaciones sabe que el archivo es de acción.

El contenido del archivo de acción no es significativo; los archivos de acciones contienen normalmente comentarios que describen la función de escritorio.

El archivo de acción no es lo mismo que el archivo de definición de acciones. El archivo de acción es un archivo que tiene el mismo nombre que la acción. 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.

Cuando el escritorio ha determinado que un archivo es de acción, se utiliza la definición subyacente de la acción para definir el aspecto y el 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 el icono de acción ejecuta el cliente de X `xwud` con determinados argumentos de la línea de mandatos.

- El campo `LABEL` especifica la etiqueta para el 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 para las acciones porque la definición de acción no contiene ningún campo `ICON` para especificar una imagen diferente.

  En cambio, 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
         ICON Dtcmprs
         …
      }

#### Imagen de icono especificada por el campo ICON en la definición de acción

La acción `Xwud` se denomina una acción de mandato porque su definición contiene el mandato (`EXEC_STRING`) que se debe ejecutar. El campo `TYPE` de la definición de acción define el tipo de acción.

Inicialmente, aparece el icono Mostrar Xwd 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 acción Xwud forme parte de la base de datos, cualquier archivo ejecutable denominado `Xwud` creado será un archivo de acción que representa dicha acción y se podrá utilizar su icono en el Gestor de archivos o el Gestor de aplicaciones para ejecutar la acción.

### Cómo las acciones utilizan archivos de datos como
argumentos

Un
argumento de un mandato es el elemento, generalmente un
archivo, sobre el que actúa el mandato. Se pueden escribir acciones para aceptar los argumentos del 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 dicho argumento como si fuera un archivo.

El procedimiento más fácil para que el usuario proporcione un argumento de archivo consiste en soltar un archivo de datos sobre el icono de la aplicación. El escritorio determina la ruta del archivo soltado y la pone en la línea de mandatos en lugar del texto situado entre los símbolos `%` (” %(File)Arg_1”Archivo Xwd a mostrar:”%”). De este modo, el mandato que se ejecuta es:

`/usr/bin/X11/xwud -noclick -in ruta_archivo`

Cuando el usuario efectúa una doble pulsación sobre el icono de 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 que entre un nombre de archivo o ruta. En el caso de la acción Xwud, el indicador de solicitud es:

`Archivo Xwd a mostrar:`

La ruta o el nombre de archivo proporcionado por el usuario se utiliza como argumento del archivo.

### Usos adicionales de las acciones

Además de iniciar aplicaciones, las acciones se utilizan en todo el escritorio para crear funcionalidad en:

- El Panel Frontal.

  La definición de un control del Panel Frontal incluye campos que especifican la acción que se ejecuta cuando el usuario pulsa el botón sobre el control o suelta un archivo sobre él. Para obtener más información, consulte la sección SAG.FrPC.mkr.15.

- Menús.

  La sintaxis para las definiciones de los menús Ventana y Espacio de trabajo le permiten especificar la acción que deberá ejecutar un elemento de menú. Para obtener más información, consulte la sección SAG.WMCnf.mkr.8 y la página de manual `dtwmrc(4)`.

- Comunicaciones entre aplicaciones.

  Una aplicación puede estar diseñada para enviar y recibir información utilizando 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.

## Introducción a los tipos de datos

Cuando el usuario crea un nuevo archivo de datos, el aspecto y el comportamiento del icono del archivo en el Gestor de archivos varía en función del tipo de archivo de datos que el usuario haya creado. Esta capacidad para crear un aspecto y un comportamiento personalizados para los archivos y los directorios la proporciona el mecanismo de establecimiento de tipos de datos del escritorio.

###
¿Qué es un tipo de datos?

Un tipo de datos es una estructura que se define dentro de la base de datos del escritorio. Por ejemplo, he aquí la definición del tipo de datos XWD. La definición está 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
       NAME_TYPE     application/octet-stream
       SUNV3_TYPE    archivo xwd
       DESCRIPTION   Este archivo contiene una imagen de gráficos con el \
                     formato XWD.Estos archivos se crean generalmente tomando \
                     instantáneas de ventanas que utilizan la acción \
                     CapturarXwd. Su tipo de datos se denomina XWD. \
                     Los archivos XWD tiene nombres que terminan \
                     por '.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 (denominación o contenido) para clasificar un archivo como perteneciente a dicho tipo de datos.

El campo `DATA_ATTRIBUTES_NAME` conecta los criterios a los atributos.

Pueden existir varios `DATA_CRITERIA` para un `DATA_ATTRIBUTE`. Por ejemplo, el tipo de datos XWD tiene dos criterios para especificar dos criterios de denominación diferentes ( `NAME_PATTERN`): nombres que terminan por `.xwd` o `.wd`.

###
Cómo conectan los tipos de datos los archivos de datos con las acciones

Examinemos el tipo de datos XWD. El usuario crea un archivo de tipo XWD proporcionando al archivo uno de los dos sufijos (extensiones) de nombre de archivo: `.xwd` o`.wd`. El escritorio utiliza el nombre de archivo como criterio para clasificar un archivo en un tipo determinado.

El tipo de datos XWD proporciona a cada archivo de dicho tipo de datos:

- Una imagen de icono exclusiva que ayuda a los usuarios a reconocer los archivos de datos.

- Una Ayuda sobre el tema que informa sobre el tipo de datos.

- Un menú personalizado Seleccionado en el Gestor de archivos que contiene las acciones Abrir e Imprimir. La acción Abrir para los archivos XWD ejecuta la acción Xwud.

#### Ejecución de acciones desde el menú Seleccionado

El menú Seleccionado del Gestor de archivos sólo está activo cuando se selecciona un archivo o un directorio. Los mandatos que se encuentran en la parte inferior del menú Seleccionado dependen del tipo de datos. Por ejemplo, si se selecciona un archivo XWD, el menú Seleccionado incluye los elementos Abrir e Imprimir.

El campo `ACTIONS` de la definición del tipo de datos especifica los mandatos añadidos en la parte inferior del menú Seleccionado del tipo de datos.

    DATA_ATTRIBUTES XWD
    {
       ACTIONS Open,Print
       …
    }

El contenido del menú Seleccionado depende del tipo de datos. Sin embargo, muchos tipos de datos diferentes proporcionan una acción Abrir: es decir, cuando se selecciona un archivo de un tipo de datos determinado en el Gestor de archivos y se muestra el menú Seleccionado, se ve un mandato Abrir.

##### Menú Seleccionado para un archivo XWD

La acción
Abrir ejecuta normalmente la aplicación con la que está asociado el archivo de datos. Por ejemplo, si se abre un archivo XWD, se ejecuta la acción Xwud, que a su vez ejecuta el cliente de X xwud para mostrar la imagen de pantalla. En otras palabras, para el tipo de datos XWD, la acción Abrir es sinónimo de la acción Xwud. Asimismo, si se abre un archivo cuyo tipo de datos es TEXTFILE, se ejecuta el Editor de textos, y si se abre un archivo BM (mapa de bits) o PM (mapa de pixels), se ejecuta el Editor de iconos.

La capacidad de crear diversas acciones Abrir que realizan cosas diferentes utiliza dos características de las definiciones de acción:

- Establecimiento de correspondencias de acciones.

  El establecimiento de correspondencias de acciones le permite crear una acción que ejecuta otra acción, en lugar de ejecutar directamente un mandato. Por ejemplo, puede crear una acción Abrir que establece una correspondencia con (es decir, la ejecuta) la acción Xwud.

- Restricciones de tipos de datos en una acción.

  Las definiciones de acción pueden incluir un campo `ARG_TYPE` que limita la acción a determinados tipos de datos. Por ejemplo, se puede especificar que la acción Abrir, que establece una correspondencia con la acción Xwud, se aplique sólo a los archivos del tipo de datos XWD.

He aquí la definición de la acción que establece una correspondencia entre la acción Abrir y la acción Xwud para el tipo de datos XWD. Está ubicada en el archivo de configuración de bases de datos `/usr/dt/appconfig/types/idioma/xclients.dt`:

    ACTION Open
    {
       LABEL       Abrir
       ARG_TYPE    XWD
       TYPE        MAP
       MAP_ACTION  Xwud
    }

El campo `TYPE` especifica que se trata de una acción de establecer correspondencias; el campo `MAP_ACTION` especifica que esta acción ejecuta la acción Xwud. El campo `ARG_TYPE` especifica que esta acción sólo es aplicable a los archivos cuyo tipo de datos sea XWD.

Compare la definición anterior de la acción Abrir con la definición siguiente, que aparece en el archivo de bases de datos `/usr/dt/appconfig/types/idioma/dt.dt`:

    ACTION Open
    {
       LABEL       Abrir
       ARG_TYPE    BM
       TYPE        MAP
       MAP_ACTION  Dticon
    }

Esta definición es aplicable a los archivos del tipo de datos (`ARG_TYPE`) BM (archivos de mapas de bits). La definición establece una correspondencia entre la acción Abrir y la acción Dticon, que ejecuta el Editor de iconos.

####
Definición del comportamiento del tipo de datos al efectuar una doble pulsación

El comportamiento del tipo de datos cuando se efectúa una doble pulsación sobre él se define mediante la primera entrada del campo `ACTIONS`. Por ejemplo, para el tipo de datos XWD, el comportamiento al efectuar una doble pulsación sobre él es ejecutar la acción Abrir, que a su vez ejecuta la acción Xwud.

####
Soltar un archivo de datos sobre un icono de acción

Cuando el usuario suelta un archivo de datos sobre un icono de acción, el sistema ejecuta la acción utilizando el archivo de datos como argumento para la acción (consulte la sección SAG.IntAc.mkr.4).

Por ejemplo, cuando se suelta un archivo de datos XWD sobre el icono Mostrar Xwd, se ejecuta la acción Xwud utilizando el argumento del tipo de datos. Esto hace que se ejecute el cliente de X `xwud` con dicho tipo de datos.

###
Creación de la impresión del escritorio para un tipo de datos

La impresión del escritorio proporciona estos procedimientos para imprimir un archivo de datos:

- Utilizar el mandato Imprimir, si está disponible, en el menú Seleccionado del Gestor de archivos.

- Soltar un archivo de datos en una zona de soltar impresoras del escritorio (el control del Panel Frontal o un icono de impresora del Gestor de impresión).

Además de la impresión del escritorio, muchas aplicaciones proporcionan un procedimiento para imprimir desde dentro de la aplicación.

La impresión del escritorio utiliza acciones llamadas Imprimir. Imprimir, al igual que Abrir, es un nombre de acción que se utiliza para muchos tipos de datos diferentes. Por consiguiente, las acciones Imprimir utilizan el establecimiento de correspondencias de acciones y el campo `ARG_TYPE` para personalizar la impresión para cada tipo de datos.

Por ejemplo, he aquí la acción Imprimir 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 Imprimir, específica de los archivos XWD, establece una correspondencia con una acción NoPrint. NoPrint es una acción especial definida en `/usr/dt/appconfig/types/`idioma`/dt.dt`. La acción
NoPrint muestra un cuadro de diálogo que indica al usuario que este tipo de datos no se puede imprimir.

Compare la acción Imprimir de XWD con la siguiente acción Imprimir para los 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 mandatos para imprimir los archivos PCL.

    ACTION PrintRaw
    {
       TYPE         COMMAND
       WINDOW_TYPE  NO_STDIO
       EXEC_STRING  /usr/dt/bin/dtlp -w %(File)Arg_1%
    }