Sous-routine layout_object_setvalue
Objectif
Définit les valeurs de présentation d'une structure LayoutObject.
Bibliothèque
Bibliothèque de présentation (libi18n.a)
Syntaxe
#include <sys/lc_layout.h> int layout_object_setvalue( layout_object, values, index)
LayoutObject layout_object;
LayoutValues values;
int *index;Descriptif
La sous-routine layout_object_setvalue modifie les valeurs de présentation en cours de la structure LayoutObject . Le paramètre layout_object spécifie la structure LayoutObject créée par la sous-routine layout_object_create . Les valeurs sont écrites dans la structure LayoutObject et peuvent affecter le comportement des fonctions de présentation suivantes.
Le champ name de la structure LayoutValueRec contient le nom de la valeur de présentation à définir. La zone de valeur contient la valeur réelle à définir. La zone de valeur est suffisamment grande pour prendre en charge tous les types de valeurs de présentation. Pour plus d'informations sur les types de valeur de présentation, voir Valeurs de présentation pour la bibliothèque de présentation dans Concepts généraux de la programmation: Ecriture et débogage des programmes .
Paramètres
| Article | Descriptif |
|---|---|
| objet_présentation | Indique la structure LayoutObject renvoyée par la sous-routine layout_object_create . |
| valeurs | Spécifie un tableau de valeurs de mise en page de type LayoutValueRec que ce sous-programme définit. La fin du tableau est indiquée parname=0. |
| index | Indique une valeur de présentation à interroger. Si la valeur ne peut pas être interrogée, le paramètre d'index à l'origine de l'erreur est renvoyé et la sous-routine renvoie une valeur différente de zéro. Si une erreur est générée, un sous-ensemble des valeurs peut avoir été défini précédemment. |
Valeurs renvoyées
Une fois l'opération terminée, la sous-routine layout_object_setvalue renvoie la valeur 0. Toutes les valeurs de présentation ont été définies.
Codes d'erreur
Si la sous-routine layout_object_setvalue échoue, elle renvoie les valeurs suivantes:
| Article | Descriptif |
|---|---|
| LAYOUT_EINVAL | La valeur de présentation spécifiée par le paramètre index est inconnue, sa valeur n'est pas valide ou le paramètre layout_object n'est pas valide. |
| LAYOUT_EMFILE | Les descripteurs de fichier (OPEN_MAX) sont actuellement ouverts dans le processus d'appel. |
| LAYOUT_ENOMEM | L'espace de stockage disponible est insuffisant. |
Exemples
L'exemple suivant définit la valeur TypeofText sur Implicite et la valeur de sortie sur Visual.
#include <sys/lc_layout.h>
#include <locale.h>
main()
{
LayoutObject plh;
int RC=0;
LayoutValues layout;
LayoutTextDescriptor Descr;
int index;
RC=layout_object_create(setlocale(LC_CTYPE,""),&plh); /* create object */
if (RC) {printf("Create error !!\n"); exit(0);}
layout=malloc(2*sizeof(LayoutValueRec)); /*allocate layout array*/
Descr=malloc(sizeof(LayoutTextDescriptorRec)); /* allocate text descriptor */
layout[0].name=TypeOfText; /* set name */
layout[0].value=(caddr_t)Descr; /* set value */
layout[1].name=0; /* indicate end of array */
Descr->in=TEXT_IMPLICIT;
Descr->out=TEXT_VISUAL; RC=layout_object_setvalue(plh,layout,&index);
if (RC) printf("SetValue error at %d!!\n",index); /* check return code */
free(layout); /* free allocated memory */
free (Descr);
RC=layout_object_free(plh); /* free layout object */
if (RC) printf("Free error !!\n");
}