Align SRP boundaries and editor windowing

This commit is contained in:
2026-04-26 17:14:32 +08:00
parent a8256b05cd
commit b8599a8aff
38 changed files with 696 additions and 650 deletions

View File

@@ -4,12 +4,16 @@
#include <XCEditor/Menu/UIEditorMenuBar.h>
#include <XCEditor/Shell/UIEditorStatusBar.h>
namespace XCEngine::UI::Editor::App {
class BuiltInIcons;
}
namespace XCEngine::UI::Editor {
class UIEditorShellIconResolver {
public:
virtual ~UIEditorShellIconResolver() = default;
virtual const ::XCEngine::UI::UITextureHandle* TryResolveIcon(
std::uint8_t iconKind) const = 0;
};
struct UIEditorShellToolbarButton {
std::string buttonId = {};
std::uint8_t iconKind = 0;
@@ -143,7 +147,7 @@ void AppendUIEditorShellCompose(
const UIEditorShellComposeState& state,
const UIEditorShellComposePalette& palette = {},
const UIEditorShellComposeMetrics& metrics = {},
const App::BuiltInIcons* builtInIcons = nullptr);
const UIEditorShellIconResolver* iconResolver = nullptr);
void AppendUIEditorShellComposeBase(
::XCEngine::UI::UIDrawList& drawList,
@@ -152,7 +156,7 @@ void AppendUIEditorShellComposeBase(
const UIEditorShellComposeState& state,
const UIEditorShellComposePalette& palette = {},
const UIEditorShellComposeMetrics& metrics = {},
const App::BuiltInIcons* builtInIcons = nullptr);
const UIEditorShellIconResolver* iconResolver = nullptr);
void AppendUIEditorShellComposeStatusBar(
::XCEngine::UI::UIDrawList& drawList,