Refactor editor workspace panel bindings

This commit is contained in:
2026-04-29 13:29:17 +08:00
parent a8e1a2b097
commit da6f37dafe
14 changed files with 213 additions and 106 deletions

View File

@@ -21,6 +21,7 @@
#include <chrono>
#include <cstdint>
#include <filesystem>
#include <functional>
#include <optional>
#include <string>
#include <string_view>
@@ -81,16 +82,13 @@ public:
bool directory = false;
};
using SceneAssetOpenRequestFn = bool (*)(
void*,
const std::filesystem::path&);
using SceneAssetOpenRequestCallback =
std::function<bool(const std::filesystem::path&)>;
void SetProjectRuntime(EditorProjectRuntime* projectRuntime);
void SetCommandFocusService(EditorCommandFocusService* commandFocusService);
void SetSystemInteractionHost(System::SystemInteractionService* systemInteractionHost);
void SetSceneAssetOpenRequestHandler(
void* requester,
SceneAssetOpenRequestFn requestOpenSceneAsset);
void SetSceneAssetOpenRequestHandler(SceneAssetOpenRequestCallback requestOpenSceneAsset);
void SetIconService(EditorIconService* icons);
void SetTextMeasurer(const ::XCEngine::UI::Editor::UIEditorTextMeasurer* textMeasurer);
void ResetInteractionState();
@@ -257,8 +255,7 @@ private:
EditorProjectRuntime* m_projectRuntime = nullptr;
EditorCommandFocusService* m_commandFocusService = nullptr;
System::SystemInteractionService* m_systemInteractionHost = nullptr;
void* m_sceneAssetOpenRequester = nullptr;
SceneAssetOpenRequestFn m_requestOpenSceneAsset = nullptr;
SceneAssetOpenRequestCallback m_requestOpenSceneAsset = {};
EditorIconService* m_icons = nullptr;
const ::XCEngine::UI::Editor::UIEditorTextMeasurer* m_textMeasurer = nullptr;
std::vector<Widgets::UIEditorTreeViewItem> m_windowTreeItems = {};