You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.3 KiB
C++

#ifndef QLIGHTBOXWIDGET_H
#define QLIGHTBOXWIDGET_H
#include <QWidget>
/**
* @brief Класс перекрытия
*/
class QLightBoxWidget : public QWidget
{
Q_OBJECT
public:
explicit QLightBoxWidget(QWidget* _parent=0, bool _folowToHeadWidget = false);
protected:
/**
* @brief Переопределяется для отслеживания собитий родительского виджета
*/
bool eventFilter(QObject* _object, QEvent* _event);
/**
* @brief Переопределяется для того, чтобы эмитировать эффект перекрытия
*/
void paintEvent(QPaintEvent* _event);
/**
* @brief Переопределяется для того, чтобы перед отображением настроить внешний вид
*/
void showEvent(QShowEvent* _event);
private:
/**
* @brief Обновить размер и картинку фона
*/
void updateSelf();
/**
* @brief Разрешает конфликт рекурсивного обновления
*/
bool m_isInUpdateSelf;
/**
* @brief Обновить картинку фона
*/
QPixmap grabParentWidgetPixmap() const;
/**
* @brief Картинка фона
*/
QPixmap m_parentWidgetPixmap;
};
#endif // QLIGHTBOXWIDGET_H