#ifndef SORTINGBOX_H #define SORTINGBOX_H #include #include "shapeitem.h" class QAction; class QPoint; class QToolButton; class SortingBox : public QWidget { Q_OBJECT public: SortingBox(); protected: bool event(QEvent *event); void resizeEvent(QResizeEvent *event); void paintEvent(QPaintEvent *event); void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); private slots: void createNewCircle(); private: int updateButtonGeometry(QToolButton *button, int x, int y); void createShapeItem(const QPainterPath &path, const QString &toolTip, const QPoint &pos, const QColor &color); int itemAt(const QPoint &pos); void moveItemTo(const QPoint &pos); QPoint initialItemPosition(const QPainterPath &path); QPoint randomItemPosition(); QColor initialItemColor(); QColor randomItemColor(); QToolButton *createToolButton(const QString &toolTip, const QIcon &icon, const char *member); QList shapeItems; QPainterPath circlePath; QPoint previousPosition; ShapeItem *itemInMotion; QToolButton *newCircleButton; }; #endif