2022-08-19 15:59:36 +02:00
|
|
|
// Copyright (C) 2020 The Qt Company Ltd.
|
2022-12-21 10:12:09 +01:00
|
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
2020-03-12 15:26:33 +01:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "utils_global.h"
|
|
|
|
|
|
|
|
|
|
#include <QWidget>
|
|
|
|
|
|
2020-03-17 09:51:53 +01:00
|
|
|
#include <functional>
|
|
|
|
|
|
2020-03-12 15:26:33 +01:00
|
|
|
namespace Utils {
|
|
|
|
|
|
|
|
|
|
class QTCREATOR_UTILS_EXPORT OverlayWidget : public QWidget
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
using PaintFunction = std::function<void(QWidget *, QPainter &, QPaintEvent *)>;
|
|
|
|
|
|
|
|
|
|
explicit OverlayWidget(QWidget *parent = nullptr);
|
|
|
|
|
|
|
|
|
|
void attachToWidget(QWidget *parent);
|
|
|
|
|
void setPaintFunction(const PaintFunction &paint);
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
bool eventFilter(QObject *obj, QEvent *ev) override;
|
|
|
|
|
void paintEvent(QPaintEvent *ev) override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
void resizeToParent();
|
|
|
|
|
|
|
|
|
|
PaintFunction m_paint;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace Utils
|