2006-10-27 15:47:22 +00:00
|
|
|
#ifndef ELEMENTPERSO_H
|
|
|
|
#define ELEMENTPERSO_H
|
2007-01-30 21:49:42 +00:00
|
|
|
#include "fixedelement.h"
|
2006-10-27 15:47:22 +00:00
|
|
|
#include <QtGui>
|
2007-04-09 02:56:47 +00:00
|
|
|
/**
|
|
|
|
Cette classe represente un element electrique. Elle est utilisable
|
|
|
|
comme un element fixe. La difference est que l'element perso lit
|
|
|
|
sa description (noms, dessin, comportement) dans un fichier XML a fournir
|
|
|
|
en parametre.
|
|
|
|
*/
|
2007-01-30 22:32:21 +00:00
|
|
|
class CustomElement : public FixedElement {
|
2006-10-27 15:47:22 +00:00
|
|
|
public:
|
2007-01-30 22:32:21 +00:00
|
|
|
CustomElement(QString &, QGraphicsItem * = 0, Diagram * = 0, int * = NULL);
|
2007-01-29 20:14:26 +00:00
|
|
|
virtual int nbTerminals() const;
|
2006-10-27 15:47:22 +00:00
|
|
|
virtual void paint(QPainter *, const QStyleOptionGraphicsItem *);
|
2007-02-24 18:37:07 +00:00
|
|
|
inline QString typeId() const { return(nomfichier); }
|
|
|
|
inline QString fichier() const { return(nomfichier); }
|
|
|
|
inline bool isNull() const { return(elmt_etat != 0); }
|
|
|
|
inline int etat() const { return(elmt_etat); }
|
|
|
|
inline QString nom() const { return(priv_nom); }
|
2006-10-27 15:47:22 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
int elmt_etat; // contient le code d'erreur si l'instanciation a echoue ou 0 si l'instanciation s'est bien passe
|
|
|
|
QString priv_nom;
|
|
|
|
QString nomfichier;
|
|
|
|
QPicture dessin;
|
2007-01-29 00:41:12 +00:00
|
|
|
bool parseElement(QDomElement &, QPainter &, Diagram *);
|
2007-02-22 18:46:51 +00:00
|
|
|
bool parseLine(QDomElement &, QPainter &);
|
2006-11-21 09:42:34 +00:00
|
|
|
bool parseEllipse(QDomElement &, QPainter &);
|
2007-02-22 18:46:51 +00:00
|
|
|
bool parseCircle(QDomElement &, QPainter &);
|
2006-11-21 10:26:43 +00:00
|
|
|
bool parseArc(QDomElement &, QPainter &);
|
2007-02-22 18:46:51 +00:00
|
|
|
bool parsePolygon(QDomElement &, QPainter &);
|
|
|
|
bool parseText(QDomElement &, QPainter &);
|
2007-02-24 00:26:04 +00:00
|
|
|
bool parseInput(QDomElement &, Diagram *);
|
2007-01-29 20:14:26 +00:00
|
|
|
bool parseTerminal(QDomElement &, Diagram *);
|
2006-11-21 09:42:34 +00:00
|
|
|
void setQPainterAntiAliasing(QPainter &, bool);
|
2006-10-28 13:17:50 +00:00
|
|
|
bool attributeIsAnInteger(QDomElement &, QString, int * = NULL);
|
|
|
|
bool attributeIsAReal(QDomElement &, QString, double * = NULL);
|
2006-11-09 19:19:51 +00:00
|
|
|
bool validOrientationAttribute(QDomElement &);
|
2006-11-21 09:42:34 +00:00
|
|
|
void setPainterStyle(QDomElement &, QPainter &);
|
2007-01-29 20:14:26 +00:00
|
|
|
int nb_terminals;
|
2006-10-27 15:47:22 +00:00
|
|
|
};
|
|
|
|
#endif
|