	{ Ce schema decrit la structure d un dessin

	I. Vatton	Juin 1990			}

STRUCTURE Draw2;

DEFPRES Draw2P;

ATTR

   Plan = INTEGER;

STRUCT

   Draw2 = LIST OF (Objet);

   Objet = CASE OF
		Objet_Graphique
		      (ATTR Hauteur = Integer;
			    Largeur = Integer;
			    PositionV = Integer;
			    PositionH = Integer;
			    Alignement_haut = REFERENCE(Objet);
			    Centr\351_horiz = REFERENCE(Objet);
			    Alignement_bas = REFERENCE(Objet);
			    Alignement_gauche = REFERENCE(Objet);
			    Centr\351_vert = REFERENCE(Objet);
			    Alignement_droit =  REFERENCE(Objet))
		     = GRAPHICS WITH Hauteur ?= 30, Largeur ?= 30,
				PositionV ?= 0, PositionH ?= 0;

		Lien_vers_centre  (ATTR !Origine_lien = REFERENCE(Objet);
                            !Terminaison_lien = REFERENCE(Objet);
			    Point1 = HG, HM, HD, DM, BD, BM, BG, GM;
			    Point2 = HG, HM, HD, DM, BD, BM, BG, GM)
		     = BEGIN
			GRAPHICS;
		      ? Commentaire = TEXT;
		       END;

		Objet_Texte
		      (ATTR Cadrage = Centr\351, Justif_gauche, Justif_droite;
			    Largeur;
			    PositionV;
			    PositionH;
			    Alignement_haut;
			    Centr\351_horiz;
			    Alignement_bas;
			    Alignement_gauche;
			    Centr\351_vert;
			    Alignement_droit)
		     = LIST OF (Unit\351 = UNIT) WITH Largeur ?= 30,
				PositionV ?= 0, PositionH ?= 0;

		Objet_Image
		      (ATTR Hauteur;
			    Largeur;
			    PositionV;
			    PositionH;
			    Alignement_haut;
			    Centr\351_horiz;
			    Alignement_bas;
			    Alignement_gauche;
			    Centr\351_vert;
			    Alignement_droit)
		     = PICTURE WITH Hauteur ?= 30, Largeur ?= 30,
				PositionV ?= 0, PositionH ?= 0;

		Groupe (ATTR PositionV;
			    PositionH;
			    Alignement_haut;
			    Centr\351_horiz;
			    Alignement_bas;
			    Alignement_gauche;
			    Centr\351_vert;
			    Alignement_droit)
		     = LIST OF (Objet) WITH PositionV ?= 0, PositionH ?= 0;

		Autre (ATTR PositionV;
			    PositionH;
			    Alignement_haut;
			    Centr\351_horiz;
			    Alignement_bas;
			    Alignement_gauche;
			    Centr\351_vert;
			    Alignement_droit)
		     = BEGIN
			NATURE;
		       END WITH PositionV ?= 0, PositionH ?= 0;
		
		Boite (ATTR Hauteur; Largeur; PositionV; PositionH;
			    Alignement_haut;
			    Centr\351_horiz;
			    Alignement_bas;
			    Alignement_gauche;
			    Centr\351_vert;
			    Alignement_droit;
			    Aspect = Boite_simple, Boite_pleine, Boite_ombr\351e)
		     = BEGIN
			Label (ATTR Position_label = Label_centr\351, Haut_gauche) = Text with Position_label ?= Label_centr\351;
		       END with Aspect ?= Boite_pleine,
				Hauteur ?= 30, Largeur ?= 30,
				PositionV ?= 0, PositionH ?= 0;

		Lien_vers_bas (ATTR !Org_lienVersBas = REFERENCE(Objet);
                            !Fin_lienVersBas = REFERENCE(Objet))
		     = BEGIN
			GRAPHICS;
		       END;

		Lien_vers_haut (ATTR !Org_lienVersHaut = REFERENCE(Objet);
                            !Fin_lienVersHaut = REFERENCE(Objet))
		     = BEGIN
			GRAPHICS;
		       END;
		
		Lien_vers_gauche (ATTR !Org_lienVersGauche = REFERENCE(Objet);
                            !Fin_lienVersGauche = REFERENCE(Objet))
		     = BEGIN
			GRAPHICS;
		       END;

		Lien_vers_droite (ATTR !Org_lienVersDroite = REFERENCE(Objet);
                            !Fin_lienVersDroite = REFERENCE(Objet))
		     = BEGIN
			GRAPHICS;
		       END;

		END;

EXCEPT
		{ Exceptions pour les attributs }

	PositionV:		NewVPos;
	PositionH:		NewHPos;
	Largeur:		NewWidth;
	Hauteur:		NewHeight;
	Alignement_haut:	355;	{ identification de l attribut }
	Centr\351_horiz:	356;	{ identification de l attribut }
	Alignement_bas:		357;	{ identification de l attribut }
	Alignement_gauche:	358;	{ identification de l attribut }
	Centr\351_vert:		359;	{ identification de l attribut }
	Alignement_droit:	360;	{ identification de l attribut }
	Origine_lien:	 	361, ActiveRef;
	Terminaison_lien:	362, ActiveRef;

	Org_lienVersBas:	361, ActiveRef;
	Fin_lienVersBas:	362, ActiveRef;
	Org_lienVersHaut:	361, ActiveRef;
	Fin_lienVersHaut:	362, ActiveRef;
	Org_lienVersGauche:	361, ActiveRef;
	Fin_lienVersGauche:	362, ActiveRef;
	Org_lienVersDroite:	361, ActiveRef;
	Fin_lienVersDroite:	362, ActiveRef;

		{ Exceptions pour les types d elements }

	Draw2:			ExtendedSelection,
				313;	{ traitement special aux attributs }
	Objet_Texte:		MoveResize, ExtendedSelection;
	Objet_Graphique:	MoveResize, ExtendedSelection;
	Objet_Image:		MoveResize, ExtendedSelection;
	Autre:			MoveResize, ExtendedSelection;
	Groupe:			MoveResize, ExtendedSelection,
				311,	{ la selection allume les fils }
				313;	{ traitement special aux attributs }
	Lien_vers_centre:	MoveResize, ExtendedSelection;
	Lien_vers_bas:		MoveResize, ExtendedSelection;
	Lien_vers_haut:		MoveResize, ExtendedSelection;
	Lien_vers_gauche:	MoveResize, ExtendedSelection;
	Lien_vers_droite:	MoveResize, ExtendedSelection;
	Commentaire:		ExtendedSelection;
	Boite:			MoveResize, ExtendedSelection;
	Label:			ExtendedSelection;

END
