Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cogitantdisplay::Output Class Referenceabstract

Fonctionnalités d'affichage de bas niveau. More...

#include "cogitant/display/output.h"

Inheritance diagram for cogitantdisplay::Output:
cogitantdisplay::Output_Fox cogitantdisplay::Output_Java cogitantdisplay::Output_Wx cogitantdisplay::OutputFig

Public Member Functions

 Output (Context const *ctx)
 Constructeur. More...
 
virtual ~Output ()
 Destructeur. More...
 
virtual void drawFigures (std::vector< Figure > const &vf)
 Dessin de toutes les figures. More...
 
virtual void drawFigure (std::vector< Figure > const &vf, iFigure i)
 Dessin d'une figure. More...
 
virtual void drawSimpleFigure (Rect const &r, Brush const &brush, Pen const &pen, Figure::Style fs)=0
 Dessin d'un rectangle, d'une ellipse ou d'un rectangle arrondi. More...
 
virtual void drawSimpleLine (Point const &p1, Point const &p2, Pen const &pen)=0
 Dessin d'une ligne simple. More...
 
virtual void drawSimpleText (Rect const &r, std::string const &text, Font const &font, Position const &position)=0
 Dessin d'un texte. More...
 
virtual void drawText (Rect const &r, Brush const &brush, Pen const &pen, std::string const &text, Font const &font, Position const &position, Figure::Style fs)
 Dessin d'un texte éventuellement dans un rectangle, ellipse ou rectangle arrondi. More...
 
virtual void drawLine (Point const &p1, Point const &p2, Pen const &pen)
 Dessin d'une ligne, comportant éventuellement des flèches. More...
 
virtual void begin ()
 Début du dessin. More...
 
virtual void end ()
 Fin du dessin. More...
 

Protected Member Functions

virtual unsigned int drawOrder () const
 Le dessin doit il être fait dans l'ordre des parents/fils, des profondeurs, ou dans un ordre quelconque. More...
 

Protected Attributes

Context const * m_context
 Contexte d'affichage utilisé pour la sortie.
 

Detailed Description

Fonctionnalités d'affichage de bas niveau.

Cette classe abstraite définit toutes les méthodes offrant des routines d'affichage de bas niveau. Afin de permettre une sortie selon un format donné (à l'écran ou dans un fichier), il est nécessaire de dériver à partir de cette classe pour définir une classe concrète (dont une instance sera passée à cogitantdisplay::Context::drawFigures()) dans laquelle les méthodes correspondant aux primitives d'affichage auront été définies en fonction de l'API d'affichage utilisée.

Constructor & Destructor Documentation

cogitantdisplay::Output::Output ( Context const *  ctx)

Constructeur.

virtual cogitantdisplay::Output::~Output ( )
virtual

Destructeur.

Member Function Documentation

virtual void cogitantdisplay::Output::begin ( )
virtual

Début du dessin.

Cette méthode est appelée avant le lancement des opérations de dessin. Par défaut, elle ne fait rien, mais il est possible de la redéfinir dans les sous-classes pour effectuer des traitements particuliers selon le format de sortie.

Reimplemented in cogitantdisplay::Output_Wx, cogitantdisplay::OutputFig, and cogitantdisplay::Output_Fox.

virtual void cogitantdisplay::Output::drawFigure ( std::vector< Figure > const &  vf,
iFigure  i 
)
virtual

Dessin d'une figure.

Parameters
vfdessin dont la figure est issue.
iidentificateur de la figure dans le dessin.

Reimplemented in cogitantdisplay::OutputFig.

virtual void cogitantdisplay::Output::drawFigures ( std::vector< Figure > const &  vf)
virtual

Dessin de toutes les figures.

Les figures sont dessinées par un simple parcours du tableau de figures (si drawOrder() retourne false) ou elles sont dessinées par un parcours en largeur donné par les relations de parenté entre figures.

Parameters
vfles figures à dessiner.
virtual void cogitantdisplay::Output::drawLine ( Point const &  p1,
Point const &  p2,
Pen const &  pen 
)
virtual

Dessin d'une ligne, comportant éventuellement des flèches.

L'implantation par défaut de cette méthode appelle drawSimpleLine pour dessiner la ligne ainsi que les bouts de flèches, mais dans le cas où l'API utilisée par la sous classe d'Output permet de dessiner des flèches par un simple appel, il est préférable de redéfinir cette méthode pour faire une appel à la fonction correspondante de l'API graphique.

Reimplemented in cogitantdisplay::OutputFig.

virtual unsigned int cogitantdisplay::Output::drawOrder ( ) const
protectedvirtual

Le dessin doit il être fait dans l'ordre des parents/fils, des profondeurs, ou dans un ordre quelconque.

Par défaut retourne 1 (parcours selon les profondeurs).

Returns
0 si l'affichage peut être fait dans n'importe quel ordre, 1 si l'affichage doit être fait selon les profondeurs, 2 si l'affichage doit être fait dans l'ordre des parents/fils (parents avant les fils).
virtual void cogitantdisplay::Output::drawSimpleFigure ( Rect const &  r,
Brush const &  brush,
Pen const &  pen,
Figure::Style  fs 
)
pure virtual

Dessin d'un rectangle, d'une ellipse ou d'un rectangle arrondi.

Implemented in cogitantdisplay::Output_Java, cogitantdisplay::Output_Wx, cogitantdisplay::OutputFig, and cogitantdisplay::Output_Fox.

virtual void cogitantdisplay::Output::drawSimpleLine ( Point const &  p1,
Point const &  p2,
Pen const &  pen 
)
pure virtual
virtual void cogitantdisplay::Output::drawSimpleText ( Rect const &  r,
std::string const &  text,
Font const &  font,
Position const &  position 
)
pure virtual
virtual void cogitantdisplay::Output::drawText ( Rect const &  r,
Brush const &  brush,
Pen const &  pen,
std::string const &  text,
Font const &  font,
Position const &  position,
Figure::Style  fs 
)
virtual

Dessin d'un texte éventuellement dans un rectangle, ellipse ou rectangle arrondi.

L'implémentation par défaut dessine la figure (drawSimpleFigure()) puis le texte (drawSimpleText()).

virtual void cogitantdisplay::Output::end ( )
virtual

Fin du dessin.

Cette méthode est appelée après que les opérations de dessin aient été exécutées. Par défaut, elle ne fait rien, mais il est possible de la redéfinir dans les sous-classes pour effectuer des traitements particuliers selon le format de sortie.

Reimplemented in cogitantdisplay::Output_Wx, cogitantdisplay::OutputFig, and cogitantdisplay::Output_Fox.