ScreenTranslator/src/capture/captureareaselector.h

44 lines
1.0 KiB
C
Raw Normal View History

2020-02-21 00:45:53 +07:00
#pragma once
2020-03-21 19:16:57 +07:00
#include "stfwd.h"
2020-02-21 00:45:53 +07:00
#include <QWidget>
2020-03-21 19:16:57 +07:00
class CaptureAreaSelector : public QWidget
2020-02-21 00:45:53 +07:00
{
Q_OBJECT
public:
2020-03-22 18:32:51 +07:00
CaptureAreaSelector(Capturer &capturer, const Settings &settings,
const QPixmap &pixmap);
2020-02-21 00:45:53 +07:00
void activate();
void setScreenRects(const std::vector<QRect> &screens);
void updateSettings();
2020-02-21 00:45:53 +07:00
protected:
void showEvent(QShowEvent *event) override;
void keyPressEvent(QKeyEvent *event) override;
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
void paintEvent(QPaintEvent *event) override;
private:
struct HelpRect {
QRect current;
std::vector<QRect> possible;
};
bool updateCurrentHelpRects();
2020-03-22 18:32:51 +07:00
void drawHelpRects(QPainter &painter, const HelpRect &rect) const;
2020-03-21 19:22:29 +07:00
2020-02-21 00:45:53 +07:00
Capturer &capturer_;
2020-03-21 19:22:29 +07:00
const Settings &settings_;
2020-03-22 18:32:51 +07:00
const QPixmap &pixmap_;
2020-02-21 00:45:53 +07:00
QPoint startSelectPos_;
QPoint currentSelectPos_;
2020-03-21 19:22:29 +07:00
QString help_;
std::vector<HelpRect> helpRects_;
2020-02-21 00:45:53 +07:00
};