Plasma Engine  2.0
Loading...
Searching...
No Matches
EngineDocumentWindow.moc.h
1#pragma once
2
3#include <EditorEngineProcessFramework/IPC/SyncObject.h>
4#include <EditorFramework/EditorFrameworkDLL.h>
5#include <EditorFramework/IPC/EngineProcessConnection.h>
6#include <EditorFramework/IPC/IPCObjectMirrorEditor.h>
7#include <GuiFoundation/DocumentWindow/DocumentWindow.moc.h>
8
9class QWidget;
10class QHBoxLayout;
11class QPushButton;
13class plAssetDocument;
18
19
20struct PL_EDITORFRAMEWORK_DLL plEngineWindowEvent
21{
22 enum class Type
23 {
24 ViewCreated,
25 ViewDestroyed,
26 };
27
28 Type m_Type;
29 plQtEngineViewWidget* m_pView = nullptr;
30};
31
36class PL_EDITORFRAMEWORK_DLL plQtEngineDocumentWindow : public plQtDocumentWindow
37{
38 Q_OBJECT
39
40public:
43
44 plEditorEngineConnection* GetEditorEngineConnection() const;
45 const plObjectPickingResult& PickObject(plUInt16 uiScreenPosX, plUInt16 uiScreenPosY, plQtEngineViewWidget* pView) const;
46
47 plAssetDocument* GetDocument() const;
48
50 plQtEngineViewWidget* GetHoveredViewWidget() const;
51
53 plQtEngineViewWidget* GetFocusedViewWidget() const;
54
55 plQtEngineViewWidget* GetViewWidgetByID(plUInt32 uiViewID) const;
56
57 plArrayPtr<plQtEngineViewWidget* const> GetViewWidgets() const;
58
59 void AddViewWidget(plQtEngineViewWidget* pView);
60
61public:
62 mutable plEvent<const plEngineWindowEvent&> m_EngineWindowEvent;
63
64protected:
65 friend class plQtEngineViewWidget;
67
68 virtual void CommonAssetUiEventHandler(const plCommonAssetUiState& e);
69
70 virtual void ProcessMessageEventHandler(const plEditorEngineDocumentMsg* pMsg);
71 void RemoveViewWidget(plQtEngineViewWidget* pView);
72 void DestroyAllViews();
73 virtual void InternalRedraw() override;
74};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
Definition AssetDocument.h:42
Definition EngineProcessConnection.h:108
Base class for all messages that are tied to some document.
Definition EngineProcessMessages.h:151
Definition Event.h:177
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Base class for all document windows. Handles the most basic document window management.
Definition DocumentWindow.moc.h:34
Base class for all document windows that need a connection to the engine process, and might want to r...
Definition EngineDocumentWindow.moc.h:37
Base class for views that show engine output.
Definition EngineViewWidget.moc.h:34
Frequently needed asset document states, to prevent code duplication.
Definition AssetDocument.h:26
Definition ViewRenderSettings.h:26
Definition EngineDocumentWindow.moc.h:21
Definition EngineViewWidget.moc.h:19