// Copyright 2017 Alejandro Sirgo Rica // // This file is part of Flameshot. // // Flameshot is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Flameshot is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Flameshot. If not, see . #ifndef BUTTONHANDLER_H #define BUTTONHANDLER_H #include "capturebutton.h" #include #include class CaptureButton; class QRect; class QPoint; class ButtonHandler : public QObject { Q_OBJECT public: ButtonHandler(const QVector&, QObject *parent = nullptr); ButtonHandler(QObject *parent = nullptr); void hide(); void show(); bool isVisible() const; size_t size() const; void updatePosition(const QRect &selection, const QRect &limits); void setButtons(const QVector); bool contains(const QPoint &p) const; private: QVector getHPoints(const QPoint ¢er, const int elements, const bool leftToRight) const; QVector getVPoints(const QPoint ¢er, const int elements, const bool upToDown) const; QVector m_vectorButtons; int m_distance; int m_buttonBaseSize; QRegion m_region; void addToRegion(const QVector &points); }; #endif // BUTTONHANDLER_H