/***************************************************************/
Type ContexteGraphique Defaut TailleSegment 2 ConserverObjets
/* Objet : Definition d'un contexte graphique. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Prive :
NomContexteGraphique : Caractere Virtuel Lecture Public Trace;
ResolutionX : Entier Virtuel Lecture Public;
ResolutionY : Entier Virtuel Lecture Public;
Public :
PaletteCourante : Nul Ou Palette Virtuel;
PinceauCourant : Nul Ou Pinceau Virtuel;
MotifCourant : Nul Ou Motif Virtuel;
BrosseCourante : Nul Ou Brosse Virtuel;
StyleCadreCourant : Nul Ou StyleCadre Virtuel;
StyleTexteCourant : Nul Ou StyleTexte Virtuel;
Unite : SousMetriquesSupportees Virtuel;
TerminaisonLigne : SorteTerminaisonLigne Virtuel;
JointureLignes : SorteJointureLignes Virtuel;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
Procedure Convertir(O : Nul Ou Objet);
Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
Procedure SupprimerPropriete(NomPropriete : Caractere);
Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
Fonction Optimiser(Invariant) Adresse() Retourner Nul Ou Caractere;
Prive :
Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Operateur Optimiser(Invariant, NulAbsorbant) ==(C : Nul Ou ContexteGraphique) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) !=(C : Nul Ou ContexteGraphique) Retourner Nul Ou Booleen;
Procedure AjouterMasqueDessin(M : Nul Ou MasqueDessin);
Procedure SupprimerMasqueDessin();
Procedure DessinerBrosse(X : Reel, Y : Reel, B : Nul Ou Brosse=Nul);
Procedure DessinerBrosse(P : Nul Ou Point, B : Nul Ou Brosse=Nul);
Procedure DessinerLigne(X : Reel, Y : Reel, L : Reel, H : Reel, S : Nul Ou StyleCadre=Nul);
Procedure DessinerLigne(PDepart : Nul Ou Point, PArrivee : Nul Ou Point, S : Nul Ou StyleCadre=Nul);
Procedure DessinerPolyLigne(T : Nul Ou TableauDe Nul Ou Point, S : Nul Ou StyleCadre=Nul);
Procedure DessinerPolyPolyLigne(T1 : Nul Ou TableauDe Nul Ou TableauDe Nul Ou Point, T2 : Nul Ou TableauDe Nul Ou StyleCadre=Nul);
Procedure DessinerBezier(T : Nul Ou TableauDe Nul Ou Point, S : Nul Ou StyleCadre=Nul);
Procedure DessinerPolyBezier(T : Nul Ou TableauDe Nul Ou Point, S : Nul Ou StyleCadre=Nul);
Procedure DessinerPolyPolyBezier(T1 : Nul Ou TableauDe Nul Ou TableauDe Nul Ou Point, T2 : Nul Ou TableauDe Nul Ou StyleCadre=Nul);
Procedure DessinerRectangle(X : Reel, Y : Reel, L : Reel, H : Reel, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerRectangle(PDepart : Nul Ou Point, PDepart : Nul Ou Point, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerRectangle(R : Nul Ou Rectangle, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerRectangleArrondi(X : Reel, Y : Reel, L : Reel, H : Reel, R : Reel, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerRectangleArrondi(P1 : Nul Ou Point, P2 : Nul Ou Point, R : Reel, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerRectangleArrondi(R2 : Nul Ou Rectangle, R : Reel, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerPolygone(T : Nul Ou TableauDe Nul Ou Point, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerPolyPolygone(T1 : Nul Ou TableauDe Nul Ou TableauDe Nul Ou Point, T2 : Nul Ou TableauDe Nul Ou StyleCadre=Nul, T3 : Nul Ou TableauDe Nul Ou Motif=Nul);
Procedure DessinerEllipse(X : Reel, Y : Reel, L : Reel, H : Reel, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerEllipse(P1 : Nul Ou Point, P2 : Nul Ou Point, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerEllipse(R : Nul Ou Rectangle, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerArc(X : Reel, Y : Reel, L : Reel, H : Reel, X1 : Reel, Y1 : Reel, X2 : Reel, Y2 : Reel, S : Nul Ou StyleCadre=Nul);
Procedure DessinerArc(P1 : Nul Ou Point, P2 : Nul Ou Point, PDebut : Nul Ou Point, PFin : Nul Ou Point, S : Nul Ou StyleCadre=Nul);
Procedure DessinerArc(R : Nul Ou Rectangle, PDebut : Nul Ou Point, PFin : Nul Ou Point, S : Nul Ou StyleCadre=Nul);
Procedure DessinerCamembert(X : Reel, Y : Reel, L : Reel, H : Reel, X1 : Reel, Y1 : Reel, X2 : Reel, Y2 : Reel, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerCamembert(P1 : Nul Ou Point, P2 : Nul Ou Point, PDebut : Nul Ou Point, PFin : Nul Ou Point, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerCamembert(R : Nul Ou Rectangle, PDebut : Nul Ou Point, PFin : Nul Ou Point, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerCorde(X : Reel, Y : Reel, L : Reel, H : Reel, X1 : Reel, Y1 : Reel, X2 : Reel, Y2 : Reel, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerCorde(P1 : Nul Ou Point, P2 : Nul Ou Point, PDebut : Nul Ou Point, PFin : Nul Ou Point, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerCorde(R : Nul Ou Rectangle, PDebut : Nul Ou Point, PFin : Nul Ou Point, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif=Nul);
Procedure DessinerContour(C : Nul Ou Contour, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif, ReglePairImpair : Booleen);
Procedure DessinerPolyContour(T : Nul Ou TableauDe Nul Ou Contour, S : Nul Ou StyleCadre=Nul, M : Nul Ou Motif, ReglePairImpair : Booleen);
Procedure MesurerTexte(C : Nul Ou Caractere, S : Nul Ou StyleTexte, Largeur : Reel Sortie=?, Hauteur : Reel Sortie=?,
HauteurBase : Reel Sortie=?, IgnorerEncadrement : Booleen=Faux, CrenagePremierCaractere : Reel=0.0);
Procedure EcrireTexte(X : Reel, Y : Reel, C : Nul Ou Caractere, S : Nul Ou StyleTexte=Nul, P : Nul Ou Pinceau=Nul, M : Nul Ou Motif=Nul,
IgnorerEncadrement : Booleen=Faux, CrenagePremierCaractere : Reel=0.0);
Procedure EcrireTexte(P : Nul Ou Point, C : Nul Ou Caractere, S : Nul Ou StyleTexte=Nul, P : Nul Ou Pinceau=Nul, M : Nul Ou Motif=Nul,
IgnorerEncadrement : Booleen=Faux, CrenagePremierCaractere : Reel=0.0);
Procedure ChangerRepere(A : Nul Ou Reel, B : Nul Ou Reel, C : Nul Ou Reel,
D : Nul Ou Reel, X : Nul Ou Reel, Y : Nul Ou Reel);
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type ContexteGraphique modélise un contexte de dessin adossé à un support. Ce dernier peut être un document, une image ou une interface homme-machine.
Le type ContexteGraphique ne possède pas de constructeur. Il est automatiquement construit par le support.
Principal
/*******/
Variable
/******/
C1 : Nul Ou ContexteGraphique;
C2 : Nul Ou ContexteGraphique;
Debut
...
C1.SelectionnerPinceau(C1.PinceauNoir);
/* Selection du pinceau noir et continu. */
C1.SelectionnerMotif(C1.MotifNul);
/* Pas de selection de motif. */
C1.DessinerRectangle(0, 0, 100, 50);
/* Dessine un rectangle évidé, bordé d'un trait noir et continu. */
...
Si C1==C2 Alors
/* Egalité entre deux contextes graphiques. */
...
Fin Si
Si C1!=C2 Alors
/* Inégalité entre deux contextes graphiques. */
...
Fin Si
...
Fin Principal
- | - | - | - | - | - | - | - | - |