static const int DEFAULT_HEIGHT = 480;
DrawingWindow(ThreadFunction fun,
- int width = DEFAULT_WIDTH, int height = DEFAULT_HEIGHT);
+ int width_ = DEFAULT_WIDTH, int height_ = DEFAULT_HEIGHT);
DrawingWindow(QWidget *parent,
ThreadFunction fun,
- int width = DEFAULT_WIDTH, int height = DEFAULT_HEIGHT);
+ int width_ = DEFAULT_WIDTH, int height_ = DEFAULT_HEIGHT);
DrawingWindow(QWidget *parent, Qt::WindowFlags flags,
ThreadFunction fun,
- int width = DEFAULT_WIDTH, int height = DEFAULT_HEIGHT);
+ int width_ = DEFAULT_WIDTH, int height_ = DEFAULT_HEIGHT);
~DrawingWindow();
const int width;
const int height;
- // http://www.w3.org/TR/SVG/types.html#ColorKeywords
void setColor(unsigned int color);
void setColor(const char *name);
void setColor(float red, float green, float blue);
unsigned int getPointColor(int x, int y);
+ bool waitMousePress(int &x, int &y, int &button,
+ unsigned long time = ULONG_MAX);
bool sync(unsigned long time = ULONG_MAX);
void closeGraph();
protected:
void closeEvent(QCloseEvent *ev);
void customEvent(QEvent *ev);
+ void mousePressEvent(QMouseEvent *ev);
void keyPressEvent(QKeyEvent *ev);
void paintEvent(QPaintEvent *ev);
void showEvent(QShowEvent *ev);
void timerEvent(QTimerEvent *ev);
private:
+ //! Intervalle de temps entre deux rendus (ms)
static const int paintInterval = 33;
QBasicTimer timer;
QMutex imageMutex;
+ QMutex mouseMutex;
+ QWaitCondition mouseCondition;
QMutex syncMutex;
QWaitCondition syncCondition;
bool terminateThread;
QImage *image;
QPainter *painter;
+ QPoint mousePos;
+ Qt::MouseButton mouseButton;
+
bool dirtyFlag;
QRect dirtyRect;
DrawingThread *thread;
- void initialize(ThreadFunction f);
+ void initialize(ThreadFunction fun);
void setColor(const QColor& color);
void setBgColor(const QColor& color);
};
#endif // !DRAWING_WINDOW_H
+
+// Local variables:
+// mode: c++
+// End: