+//! Attend l'appui sur un des boutons de la souris.
+/*!
+ * Attend l'appui sur un des boutons de la souris. Retourne le bouton
+ * qui a été pressé et les coordonnées du pointeur de souris à ce
+ * moment-là.
+ *
+ * \param x, y coordonnées du pointeur de souris
+ * \param button numéro du bouton qui a été pressé
+ * \param time durée maximale de l'attente
+ * \return true si un bouton a été pressé
+ */
+bool DrawingWindow::waitMousePress(int &x, int &y, int &button,
+ unsigned long time)
+{
+ bool pressed;
+ safeLock(mouseMutex);
+ if (terminateThread) {
+ pressed = false;
+ } else {
+ pressed = mouseCondition.wait(&mouseMutex, time);
+ if (pressed) {
+ x = mousePos.x();
+ y = mousePos.y();
+ if (mouseButton & Qt::LeftButton)
+ button = 1;
+ else if (mouseButton & Qt::RightButton)
+ button = 2;
+ else if (mouseButton & Qt::MidButton)
+ button = 3;
+ else
+ button = 0;
+ }
+ }
+ safeUnlock(mouseMutex);
+ return pressed;
+}
+