#pragma once #include #include #include #include #include #include namespace advss { class ScreenRegionSelection : public QObject { Q_OBJECT public: explicit ScreenRegionSelection(QWidget *parent); ~ScreenRegionSelection() override; signals: void RegionSelected(const QRect ®ion); void Finished(); protected: bool eventFilter(QObject *watched, QEvent *event) override; private: void UpdateSelection(); void Finish(bool accept); std::vector> _overlays; QPoint _start; QRect _selection; bool _drawing = false; bool _finished = false; }; } // namespace advss