Plasma Engine  2.0
Loading...
Searching...
No Matches
ProjectActions.h
1#pragma once
2
3#include <EditorFramework/EditorFrameworkDLL.h>
4#include <GuiFoundation/Action/BaseActions.h>
5#include <ToolsFoundation/Project/ToolsProject.h>
6
7class plCppSettings;
8
10class PL_EDITORFRAMEWORK_DLL plProjectActions
11{
12public:
13 static void RegisterActions();
14 static void UnregisterActions();
15
16 static void MapActions(plStringView sMapping);
17
18 static plActionDescriptorHandle s_hCatProjectGeneral;
19 static plActionDescriptorHandle s_hCatProjectAssets;
20 static plActionDescriptorHandle s_hCatProjectConfig;
21 static plActionDescriptorHandle s_hCatProjectExternal;
22
23 static plActionDescriptorHandle s_hCatFilesGeneral;
24 static plActionDescriptorHandle s_hCatFileCommon;
25 static plActionDescriptorHandle s_hCatFileSpecial;
26 static plActionDescriptorHandle s_hCatAssetDoc;
27
28 static plActionDescriptorHandle s_hCreateDocument;
29 static plActionDescriptorHandle s_hOpenDocument;
30 static plActionDescriptorHandle s_hRecentDocuments;
31
32 static plActionDescriptorHandle s_hOpenDashboard;
33 static plActionDescriptorHandle s_hCreateProject;
34 static plActionDescriptorHandle s_hOpenProject;
35 static plActionDescriptorHandle s_hRecentProjects;
36 static plActionDescriptorHandle s_hCloseProject;
37
38 static plActionDescriptorHandle s_hDocsAndCommunity;
39
40 static plActionDescriptorHandle s_hCatProjectSettings;
41 static plActionDescriptorHandle s_hCatPluginSettings;
42 static plActionDescriptorHandle s_hShortcutEditor;
43 static plActionDescriptorHandle s_hDataDirectories;
44 static plActionDescriptorHandle s_hWindowConfig;
45 static plActionDescriptorHandle s_hInputConfig;
46 static plActionDescriptorHandle s_hPreferencesDlg;
47 static plActionDescriptorHandle s_hTagsConfig;
48 static plActionDescriptorHandle s_hAssetProfiles;
49 static plActionDescriptorHandle s_hExportProject;
50 static plActionDescriptorHandle s_hPluginSelection;
51
52 static plActionDescriptorHandle s_hCatToolsExternal;
53 static plActionDescriptorHandle s_hCatToolsEditor;
54 static plActionDescriptorHandle s_hCatToolsDocument;
55 static plActionDescriptorHandle s_hCatEditorSettings;
56 static plActionDescriptorHandle s_hReloadResources;
57 static plActionDescriptorHandle s_hReloadEngine;
58 static plActionDescriptorHandle s_hLaunchFileserve;
59 static plActionDescriptorHandle s_hLaunchInspector;
60 static plActionDescriptorHandle s_hSaveProfiling;
61 static plActionDescriptorHandle s_hOpenVsCode;
62 static plActionDescriptorHandle s_hImportAsset;
63 static plActionDescriptorHandle s_hClearAssetCaches;
64
65 static plActionDescriptorHandle s_hCppProjectMenu;
66 static plActionDescriptorHandle s_hSetupCppProject;
67 static plActionDescriptorHandle s_hOpenCppProject;
68 static plActionDescriptorHandle s_hCompileCppProject;
69 static plActionDescriptorHandle s_hRegenerateCppSolution;
70};
71
73class PL_EDITORFRAMEWORK_DLL plRecentDocumentsMenuAction : public plDynamicMenuAction
74{
75 PL_ADD_DYNAMIC_REFLECTION(plRecentDocumentsMenuAction, plDynamicMenuAction);
76
77public:
78 plRecentDocumentsMenuAction(const plActionContext& context, const char* szName, const char* szIconPath)
79 : plDynamicMenuAction(context, szName, szIconPath)
80 {
81 }
82 virtual void GetEntries(plHybridArray<plDynamicMenuAction::Item, 16>& out_entries) override;
83 virtual void Execute(const plVariant& value) override;
84};
85
87class PL_EDITORFRAMEWORK_DLL plRecentProjectsMenuAction : public plDynamicMenuAction
88{
89 PL_ADD_DYNAMIC_REFLECTION(plRecentProjectsMenuAction, plDynamicMenuAction);
90
91public:
92 plRecentProjectsMenuAction(const plActionContext& context, const char* szName, const char* szIconPath)
93 : plDynamicMenuAction(context, szName, szIconPath)
94 {
95 }
96 virtual void GetEntries(plHybridArray<plDynamicMenuAction::Item, 16>& out_entries) override;
97 virtual void Execute(const plVariant& value) override;
98};
99
101class PL_EDITORFRAMEWORK_DLL plProjectAction : public plButtonAction
102{
103 PL_ADD_DYNAMIC_REFLECTION(plProjectAction, plButtonAction);
104
105public:
106 enum class ButtonType
107 {
108 CreateDocument,
109 OpenDocument,
110 OpenDashboard,
111 CreateProject,
112 OpenProject,
113 CloseProject,
114 ReloadResources,
115 ReloadEngine,
116 LaunchFileserve,
117 LaunchInspector,
118 SaveProfiling,
119 OpenVsCode,
120 Shortcuts,
121 DataDirectories,
122 WindowConfig,
123 InputConfig,
124 PreferencesDialog,
125 TagsDialog,
126 ImportAsset,
127 AssetProfiles,
128 SetupCppProject,
129 OpenCppProject,
130 CompileCppProject,
131 RegenerateCppSolution,
132 ShowDocsAndCommunity,
133 ExportProject,
134 PluginSelection,
135 ClearAssetCaches,
136 };
137
138 plProjectAction(const plActionContext& context, const char* szName, ButtonType button);
140
141 virtual void Execute(const plVariant& value) override;
142
143private:
144 void ProjectEventHandler(const plToolsProjectEvent& e);
145 void CppEventHandler(const plCppSettings& e);
146
147 ButtonType m_ButtonType;
148};
Handle for a plAction.
Definition Action.h:27
Definition BaseActions.h:159
Definition CppSettings.h:7
Definition BaseActions.h:69
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Definition ProjectActions.h:102
Definition ProjectActions.h:11
Definition ProjectActions.h:74
Definition ProjectActions.h:88
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
Definition Action.h:67
Definition ToolsProject.h:13