ImagingTools Core SDK
CStandardClientAreaProviderComp.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 <QtCore/QObject>
7
8// ACF includes
9#include <icomp/CComponentBase.h>
10#include <imod/IModel.h>
11#include <iqtgui/IGuiObject.h>
12
13// ImtCore includes
14#include <imtgui/IClientAreaProvider.h>
15
16
17namespace imtgui
18{
19
20
21class CStandardClientAreaProviderComp:
22 public QObject,
23 public icomp::CComponentBase,
24 virtual public IClientAreaProvider
25{
26 Q_OBJECT
27public:
28 typedef icomp::CComponentBase BaseClass;
29
30 I_BEGIN_COMPONENT(CStandardClientAreaProviderComp);
31 I_REGISTER_INTERFACE(IClientAreaProvider);
32 I_ASSIGN(m_anchorAttrPtr, "AnchorCorner", "Anchor corner. see Qt::Corner\n0 - TopLeftCorner\n1 - TopRightCorner\n2 - BottomLeftCorner\n3 - BottomRightCorner", true, 3);
33 I_ASSIGN(m_clientGuiCompPtr, "GuiObject", "GuiObject to get client area", false, "");
34 I_END_COMPONENT;
35
36 CStandardClientAreaProviderComp();
37
38 // reimplemented (IClientAreaProvider)
39 virtual QPoint GetAnchor() const override;
40 virtual QSize GetSize() const override;
41
42 // reimplemented (icomp::CComponentBase)
43 virtual void OnComponentCreated() override;
44
45protected:
46 // reimplemented (QObject)
47 virtual bool eventFilter(QObject* watched, QEvent* event) override;
48
49private:
50 QWidget* GetWindow();
51 void SetRect(const QRect& rect);
52 void SetCorner(Qt::Corner corner);
53
54private:
55 I_ATTR(int, m_anchorAttrPtr);
56 I_REF(iqtgui::IGuiObject, m_clientGuiCompPtr);
57
58 Qt::Corner m_corner;
59 QPoint m_anchor;
60 QSize m_size;
61};
62
63
64} // namespace imtgui
65
66