qelectrotech-source-mirror/orientationset.h

89 lines
2.2 KiB
C
Raw Normal View History

#ifndef ORIENTATION_SET_H
#define ORIENTATION_SET_H
#include "qet.h"
/**
Cette classe represente un containeur d'orientations, c'est-a-dire une
structure de donnees stockant une orientation par defaut, une orientation
courante et l'autorisation ou non d'utiliser les quatre autres orientations
: nord, est, sud, ouest.
Elle possede des methodes pour definir les autorisations. Le changement
d'autorisation peut echouer car il faut au moins une orientation autorisee.
Le changement d'autorisation peut eventuellement modifier les orientations
par defaut et courante.
*/
class OrientationSet {
// constructeurs, destructeur
public:
OrientationSet();
virtual ~OrientationSet() {};
// attributs
private:
bool north_ori;
bool east_ori;
bool south_ori;
bool west_ori;
QET::Orientation default_ori;
QET::Orientation current_ori;
// methodes
public:
bool north() const;
bool east() const;
bool south() const;
bool west() const;
bool setNorth(bool);
bool setEast(bool);
bool setSouth(bool);
bool setWest(bool);
QET::Orientation defaultOrientation() const;
void setDefaultOrientation(const QET::Orientation &);
QET::Orientation current() const;
bool setCurrent(QET::Orientation);
QET::Orientation next() const;
QET::Orientation previous() const;
QET::Orientation setNext();
QET::Orientation setPrevious();
bool accept(QET::Orientation) const;
const OrientationSet operator++(int);
const OrientationSet operator--(int);
const OrientationSet operator++();
const OrientationSet operator--();
bool operator==(const OrientationSet &) const;
bool operator!=(const OrientationSet &) const;
bool fromString(const QString &);
QString toString() const;
};
inline bool OrientationSet::north() const {
return(north_ori);
}
inline bool OrientationSet::east() const {
return(east_ori);
}
inline bool OrientationSet::south() const {
return(south_ori);
}
inline bool OrientationSet::west() const {
return(west_ori);
}
inline void OrientationSet::setDefaultOrientation(const QET::Orientation& theValue) {
default_ori = theValue;
}
inline QET::Orientation OrientationSet::defaultOrientation() const {
return(default_ori);
}
inline QET::Orientation OrientationSet::current() const {
return(current_ori);
}
#endif