# Introduction aux actions et aux types de données

Les actions
et les types de données permettent d'installer des applications sur le Bureau, et de créer une interface utilisateur destinée à lancer les applications et à manipuler les fichiers de données associés.

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

Le présent chapitre définit les notions d'action et de type de données. Il décrit:

- les raisons pour lesquelles des actions et des types de données doivent être créés pour les applications

- les relations existant entre les actions et les types de données

- les relations existant entre les actions et les types de données et les opérations d'impression.

## Informations connexes

Les procédures et les règles de création des actions et des types de données sont décrits dans trois chapitres du présent manuel.

- Le SAG.dtCrA.mkr.1 explique comment créer des actions et des types de données à l'aide de l'utilitaire du Bureau “Créer action”.

  Ce programme permet de créer des actions et des types de données pour la plupart des applications, sans connaître la syntaxe utilisée pour leurs définitions.

- Le SAG.CrAct.mkr.1 et le SAG.CrDT.mkr.1 expliquent comment créer des actions et des types de données manuellement, à l'aide de fichiers de configuration.

  Vous devez utiliser cette méthode pour bénéficier des fonctions avancées non supportées par “Créer action”.

## Actions

Il s'agit d'instructions qui permettent d'automatiser les tâches de Bureau telles que le lancement d'applications et l'ouverture de fichiers de données. Leur fonctionnement est semblable à celui des macros ou des fonctions de programmation. Toute action a un nom, qui est utilisé pour la lancer.

Une fois définie, une action peut être utilisée pour faciliter l'utilisation de l'interface utilisateur. En effet, le Bureau permet d'associer les éléments de cette dernière (icônes, objets de commande du Tableau de bord et options de menus) à des actions.

### Utilisation des actions

Par exemple, le groupe d'applications Outils_Bureau du Gestionnaire d'applications contient des icônes qui permettent de lancer divers programmes.

### Icônes d'action du groupe d'applications Outils_Bureau

Lorsque vous cliquez deux fois sur chacune de ces icônes, une action est lancée. L'exemple ci-dessous représente une partie de la définition de l'action exécutée lorsque l'utilisateur clique deux fois sur l'icône Afficher fichier xwd. Cette action est définie dans le fichier de configuration `/usr/dt/appconfig/types/`langue`/xclients.dt`.

    ACTION Xwud
    {
       LABEL        Afficher fichier xwd
       TYPE         COMMAND
       EXEC_STRING  /usr/bin/X11/xwud -noclick -in \
                    %(File)Arg_1"Fichier xwd à afficher :"%
       …
    }

La commande indiquée dans la zone `EXEC_STRING` est exécutée lorsque l'utilisateur clique deux fois sur l'icône.

Les actions sont également utilisées sur le Tableau de bord. L'exemple ci- dessous représente une partie de la définition de l'objet de commande Terminal du tableau secondaire Applications personnelles, défini dans le fichier de configuration `/usr/dt/appconfig/types/`langue`/dtwm.fp`.

    CONTROL Term
    {
       ICON        Fpterm
       LABEL       Terminal
       PUSH_ACTION Dtterm
       …
    }

La zone `PUSH_ACTION` indique l'action exécutée lorsque l'utilisateur clique deux fois sur l'objet de commande (en l'occurrence, il s'agit de l'action Dtterm).

Les actions sont également utilisées dans les menus, tels que le menu Sélectionné(s) associé aux fichiers de données, dans le Gestionnaire de fichiers. Par exemple, les fichiers XWD (portant l'extension `.xwd` ou`.wd`) disposent d'une action Ouvrir, qui permet de les afficher à l'aide de l'action Xwud.

### Action Ouvrir associée aux fichiers de type XWD

Les actions du
menu Sélectionné(s) sont indiquées dans la définition du type de données des fichiers XWD, figurant dans le fichier de configuration `/usr/dt/appconfig/types/`langue`/xclients.dt.`

    DATA_ATTRIBUTES XWD
    {
       ACTIONS  Ouvrir,Imprimer
       ICON     Dtxwd
       …
    }

Le type de données XWD et les actions associées (Ouvrir et Imprimer) sont décrit à la section SAG.IntAc.mkr.6.

###
Création d'icônes d'application

Par exemple, lorsque vous cliquez deux fois sur l'icône Afficher fichier xwd, dans le groupe d'applications Outils_Bureau, le client X `xwud` est lancé. Cependant, cette icône ne représente pas directement le programme exécutable `xwud` (`/usr/bin/X11/xwud`).

L'icône Afficher fichier xwd apparaît dans ce groupe d'applications car il existe dans le répertoire correspondant un fichier appelé `Xwud` (voir la SAG.IntAc.mkr.3); ce fichier représente une action sous-jacente portant le même nom (Xwud). Dans la définition de l'action, le nom de cette dernière est celui indiqué après le mot clé `ACTION`:

    ACTION Xwud
    {
       LABEL        Afficher fichier xwd
       TYPE         COMMAND
       WINDOW_TYPE  NO_STDIO
       EXEC_STRING  /usr/bin/X11/xwud -noclick -in \
                    %(File)Arg_1"Fichier xwd à afficher :"%
       DESCRIPTION  L'action Afficher fichier xwd (Xwud) \
                    permet d'afficher un fichier xwd créé à l'aide \
                    de l'action Capturer Xwd (Xwd). Elle utilise \
                    la commande xwud.
    }

Ce fichier définissant une action, il est appelé fichier d'actions(un fichier d'action doit être exécutable et porter le même nom que l'action). Son icône dans le Gestionnaire d'applications ou de fichiers est appelée
icône d'action ou
icône d'application; en effet, lorsque vous cliquez deux fois dessus, une application est lancée.

#### Icône d'application (action) correspondant à un fichier d'action

Lorsque le Gestionnaire d'applications détecte un fichier exécutable, il vérifie qu'il existe une action portant le même nom dans la base de données des actions. Si tel est le cas, il considère le fichier comme un fichier d'action.

Le contenu d'un fichier d'action n'a pas d'importance; généralement, il fournit des informations sur la fonction de l'action.

Ne confondez pas fichier d'action et fichier de définition d'action. Le premier porte le même nom que l'action; il est utilisé pour créer une icône d'application dans le Gestionnaire de fichiers ou d'applications. Le second est le fichier nom`.dt`, qui contient la définition de l'action.

Une fois que le Bureau a identifié un fichier comme étant un fichier d'action, la définition sous-jacente est utilisée pour définir l'apparence et le comportement de ce fichier.

- La zone `EXEC_STRING` définit le comportement de l'icône d'application. Dans le cas de l'icône Afficher fichier xwd, cette zone indique que l'icône d'action lance le client X `xwud` en utilisant certains arguments de ligne de commande.

- La zone `LABEL` définit le libellé de l'icône d'application.

- La zone `DESCRIPTION` définit le texte qui apparaît lorsque l'utilisateur accède à l'aide sur l'élément.

- L'icône d'application Xwud utilise l'image par défaut car sa définition d'action ne contient pas la zone `ICON`.

  A l'inverse, l'icône ”Comprimer fichier” utilise une image personnalisée, définie dans la zone `ICON` de sa définition d'action.

  Par exemple:

      ACTION Compress
         LABEL Comprimer fichier
         ICON  Dtcmprs
         …
      }

#### Image d'icône indiquée dans la zone ICON de la définition d'action

L'action `Xwud` est une action de commande car sa définition contient une commande (dans la zone `EXEC_STRING`) à exécuter. La zone `TYPE` de la définition de l'action indique le type de cette dernière.

A l'origine, l'icône “Afficher fichier xwd” apparaît dans le groupe d'applications Outils_Bureau; vous pouvez cependant la copier dans un répertoire quelconque auquel vous avez accès en écriture. Tant que la définition de l'action Xwud figure dans la base de données des actions, tout fichier exécutable `Xwud` que vous créez est considéré comme un fichier d'action associé, et son icône dans le Gestionnaire de fichiers ou d'applications peut être utilisée pour lancer l'action.

### Utilisation des fichiers de données comme
arguments

L'
argument d'une commande est l'élément (il s'agit généralement d'un
fichier) sur lequel elle est exécutée. Les arguments des actions peuvent être des fichiers.

Par exemple, la zone `EXEC_STRING` de l'action Xwud indique qu'un fichier doit être spécifié comme argument :

    EXEC_STRING   /usr/bin/X11/xwud -noclick -in \
                  %(File)Arg_1"Fichier xwd à afficher :"%

`Arg` correspond à argument. La forme
`Arg_1` désigne le premier argument, et `(File)` indique que l'action considère l'argument comme un fichier.

Pour indiquer un fichier comme argument, la méthode la plus simple consiste à poser un fichier de données sur l'icône d'application. Le Bureau identifie le chemin d'accès du fichier posé et le substitue, sur la ligne de commande, au texte figurant entre les signes % ( `%(File)Arg_1“Fichier xwd à afficher:”%`). La commande exécutée est la suivante:

    /usr/bin/X11/xwud -noclick -in chemin_fichier

Lorsque l'utilisateur clique deux fois sur l'icône d'application, le Bureau consulte la zone `EXEC_STRING` et affiche une boîte de dialogue invitant l'utilisateur à spécifier un nom ou un chemin d'accès de fichier. Dans le cas de l'action `Xwud`, le message est le suivant:

`Fichier xwd à afficher :`

Le nom ou le chemin d'accès de fichier indiqué par l'utilisateur est utilisé comme argument.

### Fonctions supplémentaires

Outre le lancement des applications, les actions permettent d'effectuer les opérations décrites ci-dessous.

- Sur le Tableau de bord:

  La définition d'un objet de commande du Tableau de bord comporte des zones qui indiquent l'action exécutée lorsque l'utilisateur clique ou pose un fichier sur l'objet de commande. Pour plus de détails, reportez-vous à la section SAG.FrPC.mkr.15.

- Dans les menus:

  La syntaxe de la définition des menus Fenêtre et Espace de travail permet d'indiquer l'action exécutée par une option de menu. Pour plus de détails, reportez-vous à la section SAG.WMCnf.mkr.8 et à la page de manuel `dtwmrc(4)`.

- Dans le domaine de la communication entre applications:

  Une application peut être configurée de manière à envoyer et à recevoir des informations par l'intermédiaire d'un type d'action spécial appelé message ToolTalk ( `TT_MSG`). Les actions `TT_MSG` sont décrites dans la documentation destinée au développeur et propre à l'environnement utilisé.

## Types de données

L'apparence et le comportement de l'icône d'un fichier de données dans le Gestionnaire de fichiers sont fonction du type de données du fichier. Le Bureau permet d'associer des caractéristiques personnalisées aux fichiers et aux répertoires, grâce au mécanisme de classification des données selon leur type.

###
Définition

Un type de données est une structure définie dans la base de données du Bureau. L'exemple ci-dessous illustre la définition du type de données XWD, figurant dans le fichier de configuration `/usr/dt/appconfig/types/`langue`/xclients.dt`.

    DATA_ATTRIBUTES XWD
    {
       ACTIONS        Ouvrir,Imprimer
       ICON           Dtxwd
       NAME_TEMPLATE  %s.xwd
       MIME_TYPE      application/octet-stream
       SUNV3_TYPE     xwd-file
       DESCRIPTION    Ce fichier contient une image au format XWD.\
                      Il s'agit généralement de captures de\
                      fenêtres effectuées à l'aide de l'action\
                      Capturer xwd. Son type de données est XWD et\
                      son extension, .xwd ou .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
    }

Toute définition de type de données se compose des deux parties suivantes:

`DATA_ATTRIBUTES` | Définit l'apparence et le comportement du type de données.
`DATA_CRITERIA` | Indique les critères (nom ou contenu) permettant d'attribuer le type de données à un fichier.

La zone `DATA_ATTRIBUTES_NAME` permet d'associer les critères aux attributs.

Plusieurs zones `DATA_CRITERIA` peuvent être indiquées pour une zone `DATA_ATTRIBUTE`. Par exemple, pour le type de données XWD, deux critères `NAME_PATTERN` permettent d'indiquer deux extensions différentes ( `.xwd` et `.wd`).

###
Association des fichiers de données aux actions par l'intermédiaire des types de données

Dans le cas du type de données XWD, l'utilisateur crée un fichier en lui attribuant l'une des extensions suivantes: `.xwd` ou`.wd`. Le Bureau utilise le nom du fichier en tant que critère pour l'associer au type de données approprié.

Tout fichier de type XWD dispose des éléments suivants:

- une icône unique permettant d'identifier les fichiers de données

- des informations d'aide sur l'élément qui décrivent le type de données

- un menu Sélectionné(s) personnalisé dans le Gestionnaire de fichiers, contenant les options Ouvrir et Imprimer (l'action Ouvrir lance l'action `Xwud`)

#### Lancement d'actions à partir du menu Sélectionné(s)

Le menu Sélectionné(s) du Gestionnaire de fichiers n'est actif que lorsqu'un fichier ou un répertoire est sélectionné. Les options figurant dans la partie inférieure de ce menu sont fonction du type de données du fichier. Par exemple, s'il s'agit d'un fichier `XWD`, les actions Ouvrir et Imprimer sont disponibles.

Les options indiquées au bas du menu Sélectionné(s) sont spécifiées dans la zone `ACTIONS` de la définition du type de données.

    DATA_ATTRIBUTES XWD
    {
       ACTIONS Ouvrir,Imprimer
       …
    }

Le contenu du menu Sélectionné(s) dépend du type de données. Cependant, l'action Ouvrir est commune à de nombreux types de données (ce qui signifie qu'elle figure dans le menu qui s'affiche lorsque vous sélectionnez un fichier dans le Gestionnaire de fichiers et que vous ouvrez le menu Sélectionné(s) correspondant).

##### Menu Sélectionné(s) d'un fichier XWD

Généralement, l'
action Ouvrir lance l'application associée au fichier de données. Par exemple, lorsque vous ouvrez un fichier `XWD`, l'action `Xwud` est exécutée: le client X xwud est lancé pour afficher le fichier. En d'autres termes, l'action Ouvrir est équivalente à l'action Xwud. De même, lorsque vous ouvrez un fichier `TEXTFILE`, l'Editeur de texte est lancé; dans le cas d'un fichier `BM` (bitmap) ou `PM` (pixmap), l'Editeur d'icônes est lancé.

La possibilité de créer des actions Ouvrir qui effectuent différentes opérations repose sur les deux fonctions décrites ci-dessous.

- Mappage des actions

  Cette fonction permet de créer une action qui en lance une autre, au lieu d'exécuter directement une commande. Par exemple, vous pouvez créer une action Ouvrir qui renvoie à (lance) l'action `Xwud`.

- Restrictions en fonction du type de données

  Les définitions d'actions peuvent contenir une zone `ARG_TYPE` permettant d'associer l'action à certains types de données uniquement. Par exemple, vous pouvez faire en sorte que l'action Ouvrir (qui renvoie à l'action `Xwud`) ne s'applique qu'aux fichiers dont le type de données est `XWD`.

La définition ci-dessous permet d'associer l'action Ouvrir à l'action Xwud pour le type de données XWD. Elle figure dans le fichier de configuration de base de données `/usr/dt/appconfig/types/langue/xclients.dt`.

    ACTION Ouvrir
    {
       LABEL       Ouvrir
       ARG_TYPE    XWD
       TYPE        MAP
       MAP_ACTION  Xwud
    }

La zone `TYPE` indique qu'il s'agit d'une action mappée et la zone `MAP_ACTION`, qu'elle lance l'action Xwud. La zone `ARG_TYPE` spécifie que l'action ne s'applique qu'aux fichiers dont le type de données est XWD.

Comparez la définition précédente de l'action Ouvrir à la définition suivante, qui figure dans le fichier de base de données `/usr/dt/appconfig/types/langue/dt.dt`:

    ACTION Ouvrir
    {
       LABEL      Ouvrir
       ARG_TYPE   BM
       TYPE       MAP
       MAP_ACTION Dticon
    }

Cette définition ne s'applique qu'aux fichiers dont le type de données (`ARG_TYPE`) est BM (bitmaps). Elle renvoie l'action Ouvrir à l'action `Dticon`, qui lance l'Editeur d'icônes.

####
Comportement du double clic

Le comportement du double clic est défini par la première entrée de la zone `ACTIONS`. Par exemple, dans le cas du type de données XWD, le double clic entraîne le lancement de l'action Ouvrir, qui à son tour lance l'action `Xwud`.

####
Poser un fichier sur une icône d'action

Lorsque l'utilisateur pose un fichier de données sur une icône d'action, le système lance l'action en utilisant le fichier comme argument (voir la section SAG.IntAc.mkr.4).

Par exemple, lorsqu'un fichier `XWD` est posé sur l'icône Afficher fichier xwd, l'action `Xwud` est lancée et le fichier est utilisé comme argument (le client X `xwud` est lancé pour afficher le fichier de données).

###
Configuration de la fonction d'impression pour un type de données

Pour imprimer un fichier de données à partir du Bureau, vous pouvez:

- utiliser l'option Imprimer du menu Sélectionné(s) du Gestionnaire de fichiers (si elle est disponible)

- poser un fichier sur une zone de pose d'impression (l'objet de commande Imprimante du Tableau de bord ou une icône d'imprimante dans le Gestionnaire d'impression)

Vous pouvez également lancer des impressions à partir du nombreuses applications.

L'impression à partir du Bureau se fait à l'aide de l'action Imprimer. Tout comme Ouvrir, cette action est utilisée pour de nombreux types de données. Elle est donc mappée à d'autres actions, et la zone `ARG_TYPE` permet de personnaliser l'impression pour les différents types de données.

Par exemple, l'exemple ci-dessous illustre l'action Imprimer associée au type de données XWD. Elle est définie dans le fichier `/usr/dt/appconfig/types/`langue`/xclients.dt`:

    ACTION Imprimer
    {
       LABEL       Imprimer
       ARG_TYPE    XWD
       TYPE        MAP
       MAP_ACTION  NoPrint
    }

Cette action Imprimer, propre aux fichiers XWD, est mise en correspondance avec une action NoPrint, définie dans le fichier `/usr/dt/appconfig/types/`langue`/dt.dt`. Cette
action affiche une boîte de dialogue informant l'utilisateur que l'impression du type de données est impossible.

Comparez l'action Imprimer des fichiers `XWD` avec la suivante (fichiers`PCL`):

    ACTION Imprimer
    {
       LABEL      Imprimer
       ARG_TYPE   PCL
       TYPE       MAP
       MAP_ACTION PrintRaw
    }

L'action PrintRaw, définie dans le fichier de configuration `/usr/dt/appconfig/types/`langue`/print.dt`, indique la commande permettant d'imprimer les fichiers PCL.

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