qrailway 0.9
|
00001 #ifndef CSIGNAL_H 00002 #define CSIGNAL_H 00003 00004 #include "cConstants.h" 00005 #include "ui_qrailwayMainWindow.h" 00006 #include <QSqlQuery> 00007 #include <QDateTime> 00008 #include <QFile> 00009 #include <QTextStream> 00010 #include <QSettings> 00011 #include <QGraphicsItem> 00012 #include <QtGui> 00013 00015 00016 class cSignal : public QObject, public QGraphicsItem 00017 { 00018 Q_OBJECT 00019 public: 00021 cSignal(int sigidtmp,QString sigtexttmp,bool antmp,bool blinktmp,double xtmp,double ytmp,QString farbetmp,int groessetmp); 00023 ~cSignal(void); 00025 void cDebug(int prioritaet,const QString & meldung); 00027 void save(void); 00029 void setStatus(bool antemp,bool blinktemp=FALSE); 00031 int getStatus(void); 00033 bool istRot(void) { if (farbe==farbeRot) return(TRUE); return(FALSE); }; 00035 void adjustShape(void); 00037 void setxy(double xtemp,double ytemp); 00039 double getx(void); 00041 double gety(void); 00043 int type() const 00044 { 00045 if ((anklickbar)&&(groesse>0)) return (signalssignalsStart+sigid); 00046 return(signalsminimum); 00047 }; 00049 int getid(void) { return sigid; }; 00051 int getAdresse(void) { return adresse; }; 00053 int getSubAdresse(void) { return subadresse; }; 00055 void setHardware(int tempAdresse,int tempSubadresse); 00057 void setDisplayInfo(bool displayInfo); 00059 QRectF boundingRect() const; 00061 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); 00063 void updateHardware(void) { emit SignalSignalChanged(sigid,getStatus()); }; 00064 public slots: 00066 void SlotSignalRegel(int ruleid,bool status); 00067 signals: 00069 void SignalSignalChanged(int,int); 00071 void SignalSignalUpdate(void); 00072 private: 00074 QString sigtext; 00076 QGraphicsScene *MeinCanvas; 00078 QGraphicsTextItem *TextOben; 00080 QGraphicsTextItem *TextUnten; 00082 bool an; 00084 bool blink; 00086 int sigid; 00088 int adresse,subadresse; 00090 bool anklickbar; 00092 bool regel[maxRegel]; 00094 QColor farbe; 00096 QColor farbeRot; 00098 QColor farbeGruen; 00100 QColor farbeWeiss; 00102 QColor farbeGelb; 00104 QColor myColor; 00106 double groesse; 00108 double groesseBeschriftung; 00110 double mySize; 00112 double myX; 00114 double myY; 00116 double myZ; 00118 QGradient *myGradient; 00119 }; 00120 00121 #include "cSektion.h" 00122 00123 #endif // CSIGNAL_H