00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef DRAW_H
00020 #define DRAW_H
00021
00022 #include <qpainter.h>
00023 #include <qobject.h>
00024
00025 class Machine;
00026 class GState;
00027 class ScrollView;
00028 class GTransition;
00029 class Options;
00030 class GITransition;
00031 class Grid;
00032 class Transition;
00033
00040 class Draw : public QObject
00041 {
00042 Q_OBJECT
00043 public:
00044 Draw(QObject*, Options* );
00045
00046 void drawStates(Machine* , QPainter* , int , int , double );
00047 void drawState(Machine* m, GState* , QPainter* , int , int , double ,
00048 bool drawxor=TRUE);
00049 void drawTransitions(Machine* , QPainter* , int, int, double );
00050 void drawTransition(Machine*, GTransition* , QPainter* , int , int ,
00051 double , bool drawxor=TRUE, bool dotted=TRUE,
00052 bool control_lines=FALSE, bool first=FALSE);
00053 void drawArrow(GTransition*, QPainter*, QPen, int);
00054 void drawArrow(GITransition*, QPainter*, QPen, int);
00055 void drawCondition(Machine* m, GTransition* , QPainter* , int, int,
00056 double);
00057 void drawInitialTransition(Machine* m, GITransition* , QPainter*, int, int,
00058 double, bool drawxor=FALSE, bool first=FALSE, bool transptext=FALSE);
00059 void drawGrid(Grid*, QPainter*, int, int, double);
00060
00061 void calcArrow(GTransition*, double&, double&, double&, double&);
00062 void calcArrow(GITransition*, double&, double&, double&, double&);
00063 void calcArrow(double, double, double, double, double&, double&, double&,
00064 double&);
00065
00066 void drawHeadline(Machine* , QPainter* , double);
00067
00068 private:
00070 Options* options;
00071 };
00072
00073
00074
00075
00076 #endif