ImagingTools Core SDK
CPopupWidgetBase.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtWidgets/QWidget>
7
8// ImtCore includes
9#include <imtgui/IPopupWidget.h>
10
11
12namespace imtgui
13{
14
15
16class CPopupWidgetBase: public QWidget, virtual public IPopupWidget
17{
18 Q_OBJECT
19public:
20 typedef QWidget BaseClass;
21
22 CPopupWidgetBase();
23
24 // reimplemented (IPopupWidget)
25 virtual const ilog::IMessageConsumer::MessagePtr& GetMessagePtr() const override;
26 virtual void AllowClosingOnMouseClick(bool isAllowed = true) override;
27
28Q_SIGNALS:
29 void EmitHoverEnter(QEvent* event);
30 void EmitHoverLeave(QEvent* event);
31 void EmitCloseRequest();
32
33protected:
34 // reimplemented (QWidget)
35#if QT_VERSION < 0x060000
36 virtual void enterEvent(QEvent* event) override;
37#else
38 virtual void enterEvent(QEnterEvent* event) override;
39#endif
40 virtual void leaveEvent(QEvent* event) override;
41 virtual void mousePressEvent(QMouseEvent* event) override;
42
43protected:
44 ilog::IMessageConsumer::MessagePtr m_messagePtr;
45 bool m_isClosingOnMouseClickAllowed;
46};
47
48
49} // namespace imtgui
50
51