STRUCTURE Draw3; DEFPRES Draw3P; ATTR Plan = INTEGER; CONST CstRenvoi = ' '; STRUCT Draw3 (ATTR GrilleX = Integer; GrilleY = Integer; Sens = Portrait, Paysage) = LIST OF (Objet); LienSimple (ATTR !Origine_lien = REFERENCE (Objet); !Terminaison_lien = REFERENCE (Objet); PositionV = Integer; PositionH = Integer; Hauteur = Integer; Largeur = Integer; AncreVO = Integer; AncreHO = Integer; AncreVD = Integer; AncreHD = Integer; Epaisseur = Integer; Extremites = Simple, FlecheMono, FlecheBi, CercleMono, CercleBi) = BEGIN {GRAPHICS =} GRAPHICS; ? AnnotationOrigine = TEXT; ? AnnotationCentrale = TEXT; ? AnnotationDestination = TEXT; END WITH Largeur ?= 40, Epaisseur ?= 2, Extremites ?= FlecheMono; FlecheCreuse (ATTR !Origine_lien; !Terminaison_lien; PositionV; PositionH; Hauteur; Largeur; AncreVO; AncreHO; AncreVD; AncreHD; Epaisseur) = BEGIN GRAPHICS; ? AnnotationOrigine; ? AnnotationCentrale; ? AnnotationDestination; END WITH Largeur ?= 40, Epaisseur ?= 12; LienComposite (ATTR PositionV; PositionH; Hauteur; Largeur) = BEGIN GRAPHICS; END WITH Largeur ?= 10, Hauteur ?= 10, PositionV ?= 0, PositionH ?= 100; PartieLienComposite = CASE OF LienSimple; FlecheCreuse; END; OrigineRenvoi (ATTR PositionV; PositionH; Hauteur; Largeur) = CONSTANT CstRenvoi WITH PositionV ?= 0, PositionH ?= 100; DestinationRenvoi (ATTR PositionV; PositionH; Hauteur; Largeur) = BEGIN RefOrigineRenvoi = REFERENCE (OrigineRenvoi); CONSTANT CstRenvoi; END WITH PositionV ?= 0, PositionH ?= 100; Objet = CASE OF Rectangle (ATTR PositionV; PositionH; Hauteur; Largeur) = BEGIN GRAPHICS; Label (ATTR Position_label = Haut_gauche, Centre, Haut_droit, Bas_gauche, Bas_droit) = Text with Position_label ?= Centre; Ombre (ATTR SensOmbre = NOuest, Nord, NEst, Est, SEst, Sud, SOuest, Ouest, Sans) = GRAPHICS with SensOmbre ?= Sans; END WITH Hauteur ?= 50, Largeur ?= 50, PositionV ?= 0, PositionH ?= 100; Ellipse (ATTR PositionV; PositionH; Hauteur; Largeur) = BEGIN GRAPHICS; Label; Ombre; END WITH Hauteur ?= 50, Largeur ?= 50, PositionV ?= 0, PositionH ?= 100; Trait (ATTR PositionV; PositionH; Hauteur; Largeur; Extremites) = GRAPHICS WITH Hauteur ?= 50, Largeur ?= 80, PositionV ?= 0, PositionH ?= 100; Polygone (ATTR PositionV; PositionH; Hauteur; Largeur) = BEGIN GRAPHICS; Label; Ombre; END WITH Hauteur ?= 50, Largeur ?= 80, PositionV ?= 0, PositionH ?= 100; Texte (ATTR PositionV; PositionH; Hauteur; Largeur) = Paragraphe WITH Hauteur ?= 50, Largeur ?= 80, PositionV ?= 0, PositionH ?= 100; Groupe (ATTR PositionV; PositionH; Hauteur; Largeur) = LIST OF (Objet) WITH PositionV ?= 0, PositionH ?= 100; Fleche (ATTR PositionV; PositionH; Hauteur; Largeur) = BEGIN GRAPHICS; Label; Ombre; END WITH Hauteur ?= 40, Largeur ?= 80, PositionV ?= 0, PositionH ?= 100; Renvoi = CASE OF OrigineRenvoi; DestinationRenvoi; END; Image (ATTR PositionV; PositionH; Hauteur; Largeur) = PICTURE WITH PositionV ?= 0, PositionH ?= 100; Lien = CASE OF LienSimple; LienComposite; FlecheCreuse; END; Autre_forme (ATTR PositionV; PositionH; Hauteur; Largeur) = BEGIN GRAPHICS; Label; Ombre; END WITH Hauteur ?= 50, Largeur ?= 50, PositionV ?= 0, PositionH ?= 100; END; EXCEPT Draw3: ExtendedSelection; PositionV: NewVPos; PositionH: NewHPos; Hauteur: NewHeight; Largeur: NewWidth; Rectangle: MoveResize; Ellipse: MoveResize; {ExtendedSelection;} Trait: MoveResize; {ExtendedSelection;} Polygone: MoveResize; {ExtendedSelection;} Fleche: MoveResize; {ExtendedSelection;} Autre_forme: MoveResize; {ExtendedSelection;} Origine_lien: {361,} ActiveRef; Terminaison_lien: {362,} ActiveRef; Groupe: MoveResize; {ExtendedSelection;} Texte: MoveResize; {ExtendedSelection;} Image: MoveResize; {ExtendedSelection;} OrigineRenvoi: MoveResize; {ExtendedSelection;} DestinationRenvoi: MoveResize; {ExtendedSelection;} FlecheCreuse: MoveResize; {ExtendedSelection;} LienSimple: MoveResize; {ExtendedSelection;} LienComposite: MoveResize; {ExtendedSelection;} GRAPHICS: NoSelect, NoCreate, NoMove, NoResize; PICTURE: NoMove, NoResize; Ombre: NoSelect, NoCreate, Hidden, NoCut; Label: {ExtendedSelection} NoResize; CstRenvoi: NoSelect; END