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

Classes | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
cogitantdisplay::Drawing Class Referenceabstract

Représentation d'un objet dessinable. More...

#include "cogitant/display/drawing.h"

Inheritance diagram for cogitantdisplay::Drawing:
cogitant::CogitantObject cogitantdisplay::DrawingGraph cogitantdisplay::DrawingNull

Classes

class  Element
 Représentation d'un élément de dessin d'un Drawing. More...
 
class  Iterator
 Représentation de l'état du parcours d'éléments d'un Drawing. More...
 
class  Style
 Représentation d'un style pour un élément d'un dessin. More...
 

Public Member Functions

 Drawing (Style *stylesheet)
 Constructeur par défaut. More...
 
virtual ~Drawing ()
 Destructeur. More...
 
virtual Iterator begin (Iterator::Type type, Element const &arg) const =0
 Itérateur de début pour un parcours des objets liés ou objets fils. More...
 
Iterator beginChildren (Element const &arg) const
 Itérateur de début pour un parcours des fils. More...
 
Iterator beginLinked (Element const &arg) const
 Itérateur de début pour un parcours des objets liés. More...
 
Iterator beginParent (Element const &arg) const
 Itérateur de début pour un parcours des objets parents. More...
 
Iterator beginAll () const
 Itérateur de début pour un parcours total. More...
 
Iterator end () const
 Iterateur incorrect de fin de parcours (quelconque). More...
 
virtual void next (Iterator &it) const =0
 Passage à l'itérateur suivant lors d'un parcours. More...
 
virtual Element ident (Iterator const &it) const =0
 Calcul de l'élément correspondant à un itérator. More...
 
virtual Element root () const =0
 Élément racine (extérieur). More...
 
virtual Element global () const
 Élément qui contient les propriétés globales. More...
 
virtual cogitant::CogitantObjectgetObjectVar (Element const &it)
 Accès à l'objet correspondant à un élément de dessin. More...
 
virtual cogitant::CogitantObject const * getObject (Element const &it) const =0
 Accès à l'objet correspondant à un élément de dessin. More...
 
virtual bool isEdge (Element const &it, unsigned int *linked=NULL) const =0
 Accès à la nature de l'élément. More...
 
virtual bool isSelectable (Element const &el) const
 L'élément est-il sélectionnable. More...
 
virtual unsigned int edgeSameElements (Element const &el, unsigned int *i=NULL) const
 L'arête a t elle des soeurs. More...
 
virtual cogitant::iSet getSubId (Element const &it) const
 Accès à l'identificateur de sous-ensemble de propriétés. More...
 
virtual Style::Id getStyle (Element const &it) const
 Retourne le style de l'élément de dessin. More...
 
virtual Font getFont (Element const &el) const
 Retourne la fonte correspondant à l'élément de dessin. More...
 
virtual Brush getBrush (Element const &el) const
 Retourne la brosse correspondant à l'élément de dessin. More...
 
virtual Pen getPen (Element const &el) const
 Retourne le pinceau correspondant à l'élément de dessin. More...
 
virtual Position getPosition (Element const &el) const
 Retourne la position des éléments contenus dans un élément de dessin. More...
 
virtual std::string getLabel (Element const &el) const
 Retourne l'étiquette correspondant à l'élément de dessin. More...
 
virtual bool getLabelP (Element const &el) const
 Retourne vrai si l'élément de dessin est étiquetté. More...
 
virtual Figure::Style getFigure (Element const &el) const
 Retourne le type de figure de l'élément de dessin. More...
 
virtual bool getVisible (Element const &el) const
 L'élément est-il caché ou visible ? Si l'élément n'est pas visible, les fils ne sont pas affichés non plus. More...
 
virtual cogitant::PropertySet const * getPropertySet (Element const &it) const
 Accès à un ensemble de propriétés pour la lecture/stockage de propriétés d'un élément de dessin. More...
 
virtual cogitant::PropertySetgetPropertySet (Element const &it)
 Accès à un ensemble de propriétés pour la lecture/stockage de propriétés d'un élément de dessin. More...
 
virtual int propertyDefined (Element const &el, cogitant::Property::Type tp) const
 La propriété est elle définie pour l'élément ? More...
 
virtual bool read (Element const &it, std::string const &tp, std::string &value) const
 Accès à la valeur chaîne d'une propriété dont le type est une chaîne. More...
 
virtual bool read (Element const &it, cogitant::Property::Type tp, unsigned int &value) const
 Accès à la valeur entière d'une propriété. More...
 
virtual bool read (Element const &it, cogitant::Property::Type tp, std::string &value) const
 Accès à la valeur chaîne d'une propriété. More...
 
virtual bool read (Element const &it, cogitant::Property::Type tp, std::vector< cogitant::iSet > &value) const
 Accès à la valeur tableau d'entiers d'une propriété. More...
 
virtual void set (Element const &it, std::string const &tp, std::string const &value)
 Modification de la valeur d'une propriété. More...
 
virtual void set (Element const &it, cogitant::Property::Type tp, unsigned int value)
 Modification de la valeur d'une propriété. More...
 
virtual void set (Element const &it, cogitant::Property::Type tp, std::string const &value)
 Modification de la valeur d'une propriété. More...
 
virtual void set (Element const &it, cogitant::Property::Type tp, std::vector< cogitant::iSet > const &value)
 Modification de la valeur d'une propriété. More...
 
virtual void remove (Element const &it, cogitant::Property::Type tp)
 Suppression d'une propriété. More...
 
virtual void remove (Element const &it, std::string const &tp)
 Suppression d'une propriété. More...
 
virtual bool posDefined (Element const &el) const
 La position de l'objet est elle définie ?. More...
 
virtual bool sizeDefined (Element const &el) const
 La taille de l'objet est elle définie ?. More...
 
virtual Point rPos (Element const &el) const
 Accès aux coordonnées de l'objet (relatives au parent). More...
 
virtual Size size (Element const &el) const
 Accès au rectangle englobant. More...
 
virtual bool rPos (Element const &el, Point const &p)
 Fixe les coordonnées de l'objet. More...
 
virtual bool size (Element const &el, Size const &s)
 Fixe la taille de l'objet. More...
 
virtual std::string name () const
 Nom du dessin. More...
 
Stylestyles ()
 Accès au gestionnaire de styles du dessin. More...
 
- Public Member Functions inherited from cogitant::CogitantObject
 CogitantObject ()
 Constructeur. More...
 
 CogitantObject (CogitantObject const &o)
 Constructeur par recopie. More...
 
virtual ~CogitantObject ()
 Destructeur. More...
 
PropertySetproperties ()
 Accès à l'ensemble des propriétés. More...
 
virtual std::string toString () const
 Transformation en chaîne de caractères. More...
 
std::string className () const
 Nom de la classe. More...
 
PropertySet const * properties () const
 Accès en lecture seule à l'ensemble des propriétés. More...
 
bool hasProperties () const
 Existence de propriétés. More...
 
CogitantObjectoperator= (CogitantObject const &ob)
 Affectation. More...
 

Static Public Attributes

static Style::Id SID_HIDDEN
 Identificateur de style "caché". More...
 

Protected Attributes

Style m_styles
 Les styles spécifiques au dessin (+ le lien vers la feuille de style parent).
 

Additional Inherited Members

- Protected Member Functions inherited from cogitant::CogitantObject
virtual PropertySetallocProperties () const
 Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet. More...
 

Detailed Description

Représentation d'un objet dessinable.

Cette classe fournit toutes les fonctionnalités de parcours et d'interrogation de propriétés d'un objet dessinable. * Par contre, aucune opération de dessin n'est fournie dans cette classe. De plus, cette classe est abstraite et doit être concrétisée pour permettre le dessin d'un graphe, d'un support, etc. Pour définir une sous classe, il faut plus particulièrement redéfinir les méthodes getObject() (accès au CogitantObject contenant les propriétés d'un élément de dessin), getSubId() (accès à l'identificateur du sous ensemble de propriétés du CogitantObject correspondant à l'élément de dessin), begin() (début de parcours) et next() (parcours). Les fonctions de modification de cette classe sont de bas niveau: par exemple, la modification de la position/taille ne prennent pas en compte la grille du dessin, ne cherchent pas à redimensionner le parent, ne mettent pas à jour un Clipping. Pour utiliser des fonctions de plus haut niveau, utiliser les méthodes de OperationDraw ou DrawHandler, telles que DrawHandler::pos() ou DrawHandler::size().

Examples:
wxdisplay.cpp.

Constructor & Destructor Documentation

◆ Drawing()

cogitantdisplay::Drawing::Drawing ( Style stylesheet)

Constructeur par défaut.

Parameters
stylesheetla feuille de styles parent des styles locaux. Si NULL, c'est la feuille de style globale (Style::s_styles) qui est utilisée. Elle doit donc être créée avant un appel au constructeur avec NULL. Une telle feuille de style est créée par le constructeur de

◆ ~Drawing()

virtual cogitantdisplay::Drawing::~Drawing ( )
virtual

Destructeur.

Member Function Documentation

◆ begin()

virtual Iterator cogitantdisplay::Drawing::begin ( Iterator::Type  type,
Element const &  arg 
) const
pure virtual

Itérateur de début pour un parcours des objets liés ou objets fils.

◆ beginAll()

Iterator cogitantdisplay::Drawing::beginAll ( ) const

Itérateur de début pour un parcours total.

◆ beginChildren()

Iterator cogitantdisplay::Drawing::beginChildren ( Element const &  arg) const
inline

Itérateur de début pour un parcours des fils.

◆ beginLinked()

Iterator cogitantdisplay::Drawing::beginLinked ( Element const &  arg) const
inline

Itérateur de début pour un parcours des objets liés.

◆ beginParent()

Iterator cogitantdisplay::Drawing::beginParent ( Element const &  arg) const
inline

Itérateur de début pour un parcours des objets parents.

◆ edgeSameElements()

virtual unsigned int cogitantdisplay::Drawing::edgeSameElements ( Element const &  el,
unsigned int *  i = NULL 
) const
virtual

L'arête a t elle des soeurs.

Dans le cas où il existe plusieurs arêtes entre deux éléments, il est nécessaire de connaitre ce nombre pour afficher les arêtes à des coordonnées différentes.

Parameters
elélément représentant l'arête.
i(R) indice de l'élément parmi ses soeurs.
Returns
nombre de soeurs de l'arêtes, y compris celle-ci. Pour une arête "seule" entre deux éléments, retourne 1.

◆ end()

Iterator cogitantdisplay::Drawing::end ( ) const

Iterateur incorrect de fin de parcours (quelconque).

◆ getBrush()

virtual Brush cogitantdisplay::Drawing::getBrush ( Element const &  el) const
virtual

Retourne la brosse correspondant à l'élément de dessin.

◆ getFigure()

virtual Figure::Style cogitantdisplay::Drawing::getFigure ( Element const &  el) const
virtual

Retourne le type de figure de l'élément de dessin.

◆ getFont()

virtual Font cogitantdisplay::Drawing::getFont ( Element const &  el) const
virtual

Retourne la fonte correspondant à l'élément de dessin.

◆ getLabel()

virtual std::string cogitantdisplay::Drawing::getLabel ( Element const &  el) const
virtual

Retourne l'étiquette correspondant à l'élément de dessin.

Reimplemented in cogitantdisplay::DrawingGraph.

◆ getLabelP()

virtual bool cogitantdisplay::Drawing::getLabelP ( Element const &  el) const
virtual

Retourne vrai si l'élément de dessin est étiquetté.

Cette méthode n'est pas indispensable puisqu'il est possible d'utiliser toujours getLabel(). D'ailleurs, l'implémentation par défaut de cette méthode est justement un appel à getLabel() et une comparaison de la chaine résultat avec la chaine vide. Mais il est possible de redéfinir cette méthode pour un traitement plus rapide, car certaines opérations ont besoin de déterminer si un élément de dessin est étiquetté ou pas, peu importe la valeur de l'étiquette (qui peut être coûteuse à calculer).

Reimplemented in cogitantdisplay::DrawingGraph.

◆ getObject()

virtual cogitant::CogitantObject const* cogitantdisplay::Drawing::getObject ( Element const &  it) const
pure virtual

Accès à l'objet correspondant à un élément de dessin.

Warning
à utiliser avec précautions, car cette méthode peut retourner NULL dans le cas où un élément de dessin ne correspond pas à un cogitant::CogitantObject (les arêtes d'un graphe par exemple).

Implemented in cogitantdisplay::DrawingNull, and cogitantdisplay::DrawingGraph.

◆ getObjectVar()

virtual cogitant::CogitantObject* cogitantdisplay::Drawing::getObjectVar ( Element const &  it)
virtual

Accès à l'objet correspondant à un élément de dessin.

Warning
à utiliser avec précautions, car cette méthode peut retourner NULL dans le cas où un élément de dessin ne correspond pas à un cogitant::CogitantObject (les arêtes d'un graphe par exemple).

◆ getPen()

virtual Pen cogitantdisplay::Drawing::getPen ( Element const &  el) const
virtual

Retourne le pinceau correspondant à l'élément de dessin.

◆ getPosition()

virtual Position cogitantdisplay::Drawing::getPosition ( Element const &  el) const
virtual

Retourne la position des éléments contenus dans un élément de dessin.

◆ getPropertySet() [1/2]

virtual cogitant::PropertySet const* cogitantdisplay::Drawing::getPropertySet ( Element const &  it) const
virtual

Accès à un ensemble de propriétés pour la lecture/stockage de propriétés d'un élément de dessin.

Retourne l'ensemble de propriétés utilisé pour le stockages des propriétés correspodant à l'itérateur. Il peut s'agir de l'ensemble de propriétés d'un cogitant::CogitantObject ou d'un sous ensemble de propriétés.

◆ getPropertySet() [2/2]

virtual cogitant::PropertySet* cogitantdisplay::Drawing::getPropertySet ( Element const &  it)
virtual

Accès à un ensemble de propriétés pour la lecture/stockage de propriétés d'un élément de dessin.

Retourne l'ensemble de propriétés utilisé pour le stockages des propriétés correspodant à l'itérateur. Il peut s'agir de l'ensemble de propriétés d'un cogitant::CogitantObject ou d'un sous ensemble de propriétés.

◆ getStyle()

virtual Style::Id cogitantdisplay::Drawing::getStyle ( Element const &  it) const
virtual

Retourne le style de l'élément de dessin.

Le style est utilisé pour déterminer les valeurs par défaut des propriétés de l'élément de dessin (celles qui ne sont pas définies dans l'ensemble de propriétés getPropertySet()). Un style repère en fait un ensemble de propriétés (associé au Drawing pour l'instant), et contient au moins le type de figure (ligne, rectangle, ellipse)).

Returns
par défaut, cette méthode retourne 0, ce qui évite de le redéfinir quand tous les éléments de dessin ont le même style.

Reimplemented in cogitantdisplay::DrawingGraph.

◆ getSubId()

virtual cogitant::iSet cogitantdisplay::Drawing::getSubId ( Element const &  it) const
virtual

Accès à l'identificateur de sous-ensemble de propriétés.

Cette méthode doit être utilisée conjointement à getObject() pour obtenir le CogitantObject et l'identificateur de sous ensemble de propriétés à utiliser pour les propriétés de l'élément de dessin repéré par it.

Returns
par défaut, cette méthode retourne ISET_NULL, ce qui signifie que l'ensemble de propriétés de l'objet est utilisé pour le stockage des propriétés de l'élément de dessin.

Reimplemented in cogitantdisplay::DrawingGraph.

◆ getVisible()

virtual bool cogitantdisplay::Drawing::getVisible ( Element const &  el) const
virtual

L'élément est-il caché ou visible ? Si l'élément n'est pas visible, les fils ne sont pas affichés non plus.

Par défaut, cette méthode utilise la propriété Property::DISPLAY_HIDDEN.

◆ global()

virtual Element cogitantdisplay::Drawing::global ( ) const
virtual

Élément qui contient les propriétés globales.

Cet élément porte les propriétés globales (grille par exemple), il ne s'agit pas obligatoirement de l'élément racine, même si il s'agit de la racine par défaut. Cet élément ne figure pas obligatoirement dans un parcours de tous les éléments d'un dessin (par begin(), end()).

Reimplemented in cogitantdisplay::DrawingGraph.

◆ ident()

virtual Element cogitantdisplay::Drawing::ident ( Iterator const &  it) const
pure virtual

Calcul de l'élément correspondant à un itérator.

Implemented in cogitantdisplay::DrawingNull, and cogitantdisplay::DrawingGraph.

Referenced by cogitantdisplay::Drawing::Iterator::operator*().

◆ isEdge()

virtual bool cogitantdisplay::Drawing::isEdge ( Element const &  it,
unsigned int *  linked = NULL 
) const
pure virtual

Accès à la nature de l'élément.

Returns
true ssi l'élément est une arête. Dans ce cas, et si l'élément est lié à deux autres éléments, la modification de la position/taille des éléments liés (les sommets) entraîne la modification de la position de l'élément (arête). Au contraire, si l'élément n'est pas une arête (c'est à dire un sommet), la modification de la position/taille des élément liés (arêtes) n'entraîne pas de modification de la position de l'élément (sommet).
Parameters
itélément dont la nature est interrogée.
linkedsi un pointeur non NULL est passé et que l'élément est effectivement une arête, alors *linked contient en sortie le nombre d'éléments liés à cette arête.

Implemented in cogitantdisplay::DrawingNull, and cogitantdisplay::DrawingGraph.

◆ isSelectable()

virtual bool cogitantdisplay::Drawing::isSelectable ( Element const &  el) const
virtual

L'élément est-il sélectionnable.

Reimplemented in cogitantdisplay::DrawingGraph.

◆ name()

virtual std::string cogitantdisplay::Drawing::name ( ) const
virtual

Nom du dessin.

Par défaut, cette méthode retourne une chaîne vide. Elle peut être redéfinie dans les sous-classes.

Reimplemented in cogitantdisplay::DrawingGraph.

◆ next()

virtual void cogitantdisplay::Drawing::next ( Iterator it) const
pure virtual

Passage à l'itérateur suivant lors d'un parcours.

Implemented in cogitantdisplay::DrawingNull, and cogitantdisplay::DrawingGraph.

Referenced by cogitantdisplay::Drawing::Iterator::operator++().

◆ posDefined()

virtual bool cogitantdisplay::Drawing::posDefined ( Element const &  el) const
virtual

La position de l'objet est elle définie ?.

◆ propertyDefined()

virtual int cogitantdisplay::Drawing::propertyDefined ( Element const &  el,
cogitant::Property::Type  tp 
) const
virtual

La propriété est elle définie pour l'élément ?

Returns
0 si la propriété n'est pas définie, 1 si la propriété est définie dans l'élément et 2 si la propriété est définie dans le style de l'élément.

◆ read() [1/4]

virtual bool cogitantdisplay::Drawing::read ( Element const &  it,
std::string const &  tp,
std::string &  value 
) const
virtual

Accès à la valeur chaîne d'une propriété dont le type est une chaîne.

Returns
true si une propriété de type tp est trouvée dans les propriétés spécifiques à l'élément de dessin, false s'il s'agit de la valeur par défaut. Dans les deux cas, la valeur est contenue dans value).

◆ read() [2/4]

virtual bool cogitantdisplay::Drawing::read ( Element const &  it,
cogitant::Property::Type  tp,
unsigned int &  value 
) const
virtual

Accès à la valeur entière d'une propriété.

Returns
true si une propriété de type tp est trouvée dans les propriétés spécifiques à l'élément de dessin, false s'il s'agit de la valeur par défaut. Dans les deux cas, la valeur est contenue dans value).

◆ read() [3/4]

virtual bool cogitantdisplay::Drawing::read ( Element const &  it,
cogitant::Property::Type  tp,
std::string &  value 
) const
virtual

Accès à la valeur chaîne d'une propriété.

Returns
true si une propriété de type tp est trouvée dans les propriétés spécifiques à l'élément de dessin, false s'il s'agit de la valeur par défaut. Dans les deux cas, la valeur est contenue dans value).

◆ read() [4/4]

virtual bool cogitantdisplay::Drawing::read ( Element const &  it,
cogitant::Property::Type  tp,
std::vector< cogitant::iSet > &  value 
) const
virtual

Accès à la valeur tableau d'entiers d'une propriété.

Returns
true si une propriété de type tp est trouvée dans les propriétés spécifiques à l'élément de dessin, false s'il s'agit de la valeur par défaut. Dans les deux cas, la valeur est contenue dans value).

◆ remove() [1/2]

virtual void cogitantdisplay::Drawing::remove ( Element const &  it,
cogitant::Property::Type  tp 
)
virtual

Suppression d'une propriété.

◆ remove() [2/2]

virtual void cogitantdisplay::Drawing::remove ( Element const &  it,
std::string const &  tp 
)
virtual

Suppression d'une propriété.

◆ root()

virtual Element cogitantdisplay::Drawing::root ( ) const
pure virtual

Élément racine (extérieur).

Cet élément est celui qui sert à démarrer le dessin.

Implemented in cogitantdisplay::DrawingNull, and cogitantdisplay::DrawingGraph.

◆ rPos() [1/2]

virtual Point cogitantdisplay::Drawing::rPos ( Element const &  el) const
virtual

Accès aux coordonnées de l'objet (relatives au parent).

◆ rPos() [2/2]

virtual bool cogitantdisplay::Drawing::rPos ( Element const &  el,
Point const &  p 
)
virtual

Fixe les coordonnées de l'objet.

Les coordonnées sont simplement modifiées pour l'objet, aucune mise à jour des voisins / parent n'est effectuée. Retourne true ssi les coordonnées ont été modifiées.

◆ set() [1/4]

virtual void cogitantdisplay::Drawing::set ( Element const &  it,
std::string const &  tp,
std::string const &  value 
)
virtual

Modification de la valeur d'une propriété.

◆ set() [2/4]

virtual void cogitantdisplay::Drawing::set ( Element const &  it,
cogitant::Property::Type  tp,
unsigned int  value 
)
virtual

Modification de la valeur d'une propriété.

◆ set() [3/4]

virtual void cogitantdisplay::Drawing::set ( Element const &  it,
cogitant::Property::Type  tp,
std::string const &  value 
)
virtual

Modification de la valeur d'une propriété.

◆ set() [4/4]

virtual void cogitantdisplay::Drawing::set ( Element const &  it,
cogitant::Property::Type  tp,
std::vector< cogitant::iSet > const &  value 
)
virtual

Modification de la valeur d'une propriété.

◆ size() [1/2]

virtual Size cogitantdisplay::Drawing::size ( Element const &  el) const
virtual

Accès au rectangle englobant.

◆ size() [2/2]

virtual bool cogitantdisplay::Drawing::size ( Element const &  el,
Size const &  s 
)
virtual

Fixe la taille de l'objet.

Retourne true ssi la taille a été modifiée.

◆ sizeDefined()

virtual bool cogitantdisplay::Drawing::sizeDefined ( Element const &  el) const
virtual

La taille de l'objet est elle définie ?.

◆ styles()

Style& cogitantdisplay::Drawing::styles ( )

Accès au gestionnaire de styles du dessin.

Member Data Documentation

◆ SID_HIDDEN

Style::Id cogitantdisplay::Drawing::SID_HIDDEN
static

Identificateur de style "caché".