Plasma Engine  2.0
Loading...
Searching...
No Matches
ParticleEffectAssetWindow.moc.h
1#pragma once
2
3#include <EditorEngineProcessFramework/EngineProcess/ViewRenderSettings.h>
4#include <EditorFramework/DocumentWindow/EngineDocumentWindow.moc.h>
5#include <EditorPluginParticle/ParticleEffectAsset/ParticleEffectAsset.h>
6#include <Foundation/Basics.h>
7#include <GuiFoundation/DocumentWindow/DocumentWindow.moc.h>
8#include <ToolsFoundation/Object/DocumentObjectManager.h>
9
12class QComboBox;
13class QToolButton;
15
16
18{
19 Q_OBJECT
20
21public:
24
25 virtual const char* GetWindowLayoutGroupName() const override;
26 plParticleEffectAssetDocument* GetParticleDocument();
27
28private Q_SLOTS:
29 void onSystemSelected(int index);
30 void onAddSystem(bool);
31 void onRemoveSystem(bool);
32 void onRenameSystem(bool);
33
34protected:
35 virtual void InternalRedraw() override;
36
37private:
38 void SendRedrawMsg();
39 void RestoreResource();
40 void SendLiveResourcePreview();
41 void PropertyEventHandler(const plDocumentObjectPropertyEvent& e);
42 void StructureEventHandler(const plDocumentObjectStructureEvent& e);
43 void ParticleEventHandler(const plParticleEffectAssetEvent& e);
44 void UpdateSystemList();
45 void SelectSystem(const plDocumentObject* pObject);
46 plStatus SetupSystem(plStringView sName);
47
49
50 plEngineViewConfig m_ViewConfig;
51 plQtOrbitCamViewWidget* m_pViewWidget;
52
53 QComboBox* m_pSystemsCombo = nullptr;
54 QToolButton* m_pAddSystem = nullptr;
55 QToolButton* m_pRemoveSystem = nullptr;
56 QToolButton* m_pRenameSystem = nullptr;
57 plQtPropertyGridWidget* m_pPropertyGridSystems = nullptr;
58 plQtPropertyGridWidget* m_pPropertyGridEmitter = nullptr;
59 plQtPropertyGridWidget* m_pPropertyGridInitializer = nullptr;
60 plQtPropertyGridWidget* m_pPropertyGridBehavior = nullptr;
61 plQtPropertyGridWidget* m_pPropertyGridType = nullptr;
62
63 plString m_sSelectedSystem;
64 plMap<plString, plDocumentObject*> m_ParticleSystems;
65 bool m_bDoLiveResourceUpdate = true;
66};
67
Definition AssetDocument.h:42
Definition DocumentObjectBase.h:11
Definition Map.h:408
Definition ParticleEffectAsset.h:25
Base class for all document windows that need a connection to the engine process, and might want to r...
Definition EngineDocumentWindow.moc.h:37
Definition OrbitCamViewWidget.moc.h:11
Definition ParticleEffectAssetWindow.moc.h:18
virtual const char * GetWindowLayoutGroupName() const override
The 'GroupName' is used for serializing window layouts. It should be unique among different window ty...
Definition ParticleEffectAssetWindow.cpp:265
Definition PropertyGridWidget.moc.h:29
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Used by plDocumentObjectManager::m_PropertyEvents.
Definition DocumentObjectManager.h:77
Used by plDocumentObjectManager::m_StructureEvents.
Definition DocumentObjectManager.h:45
Definition ViewRenderSettings.h:26
Definition ParticleEffectAsset.h:11
An plResult with an additional message for the reason of failure.
Definition Status.h:12