Remove XCUI demo panel from editor

This commit is contained in:
2026-04-07 20:43:31 +08:00
parent 901a6ecc26
commit fe00aa1305
6 changed files with 0 additions and 219 deletions

View File

@@ -100,7 +100,6 @@ add_executable(${PROJECT_NAME} WIN32
src/panels/InspectorPanel.cpp
src/panels/ConsolePanel.cpp
src/panels/ProjectPanel.cpp
src/panels/XCUIDemoPanel.cpp
src/UI/BuiltInIcons.cpp
src/Layers/EditorLayer.cpp
${IMGUI_SOURCES}

View File

@@ -1,23 +0,0 @@
<Theme name="XCUIDemoTheme">
<Token name="color.surface" type="color" value="#11161D" />
<Token name="color.surface.elevated" type="color" value="#1A212B" />
<Token name="color.surface.debug" type="color" value="#121820" />
<Token name="color.text.primary" type="color" value="#F2F5F8" />
<Token name="color.text.muted" type="color" value="#9AA8B7" />
<Token name="color.outline" type="color" value="#485666" />
<Token name="color.accent" type="color" value="#49B5FF" />
<Token name="color.accent.alt" type="color" value="#FF9A52" />
<Token name="color.button.text" type="color" value="#0D131A" />
<Token name="space.compact" type="float" value="6" />
<Token name="space.regular" type="float" value="10" />
<Token name="space.loose" type="float" value="14" />
<Token name="padding.panel" type="thickness" value="18" />
<Token name="padding.card" type="thickness" value="14" />
<Token name="padding.button" type="thickness" value="12,10,12,10" />
<Token name="radius.card" type="corner-radius" value="10" />
<Token name="radius.button" type="corner-radius" value="8" />
<Token name="font.body" type="float" value="14" />
<Token name="font.title" type="float" value="20" />
<Token name="font.metric" type="float" value="16" />
<Token name="line.default" type="float" value="1" />
</Theme>

View File

@@ -1,33 +0,0 @@
<View name="XCUI Demo" theme="xcui_demo_theme.xctheme" style="Root">
<Column id="root" gap="12" padding="18">
<Card id="hero" style="HeroCard">
<Row id="heroRow" gap="12">
<StatusDot id="statusDot" />
<Column id="heroCopy" gap="4" width="stretch">
<Text id="title" text="XCUI Demo" style="HeroTitle" />
<Text id="subtitle" text="Markup -> Tree -> Layout -> Style -> Input -> DrawData" style="HeroSubtitle" />
</Column>
</Row>
</Card>
<Row id="metrics" gap="12">
<Card id="metricPipeline" style="MetricCard" width="stretch">
<Text text="Pipeline" style="MetricLabel" />
<Text text="True XCUI path" style="MetricValue" />
</Card>
<Card id="metricBackend" style="MetricCard" width="stretch">
<Text text="Backend" style="MetricLabel" />
<Text text="ImGui transition" style="MetricValue" />
</Card>
</Row>
<Button id="toggleAccent" style="AccentButton" action="demo.toggleAccent">
<Text id="toggleLabel" text="Toggle Accent" style="ButtonLabel" />
</Button>
<Card id="debugCard" style="DebugCard">
<Column id="debugStack" gap="4">
<Text id="focusStatus" style="Meta" />
<Text id="treeStatus" style="Meta" />
<Text id="commandStatus" style="Meta" />
</Column>
</Card>
</Column>
</View>

View File

@@ -12,7 +12,6 @@
#include "panels/PanelCollection.h"
#include "panels/ProjectPanel.h"
#include "panels/SceneViewPanel.h"
#include "panels/XCUIDemoPanel.h"
#include <XCEngine/Core/Asset/ResourceManager.h>
@@ -35,7 +34,6 @@ public:
m_panels.Emplace<InspectorPanel>();
m_panels.Emplace<ConsolePanel>();
m_projectPanel = &m_panels.Emplace<ProjectPanel>();
m_panels.Emplace<XCUIDemoPanel>();
m_dockLayoutController = std::make_unique<DockLayoutController>();
m_projectPanel->Initialize(context.GetProjectPath());

View File

@@ -1,140 +0,0 @@
#include "XCUIDemoPanel.h"
#include "UI/UI.h"
#include <XCEngine/UI/DrawData.h>
#include <imgui.h>
namespace {
::XCEngine::UI::UIDrawList BuildXCUIDemoDrawList(
const ImVec2& canvasMin,
const ImVec2& canvasSize) {
using ::XCEngine::UI::UIColor;
using ::XCEngine::UI::UIDrawList;
using ::XCEngine::UI::UIPoint;
using ::XCEngine::UI::UIRect;
UIDrawList drawList("XCUI Transition Demo");
drawList.PushClipRect(UIRect(canvasMin.x, canvasMin.y, canvasSize.x, canvasSize.y));
drawList.AddFilledRect(
UIRect(canvasMin.x, canvasMin.y, canvasSize.x, canvasSize.y),
UIColor(0.09f, 0.11f, 0.14f, 1.0f),
10.0f);
drawList.AddRectOutline(
UIRect(canvasMin.x, canvasMin.y, canvasSize.x, canvasSize.y),
UIColor(0.32f, 0.40f, 0.49f, 1.0f),
1.0f,
10.0f);
const float cardX = canvasMin.x + 18.0f;
const float cardY = canvasMin.y + 18.0f;
const float cardWidth = (canvasSize.x - 36.0f) > 120.0f ? (canvasSize.x - 36.0f) : 120.0f;
drawList.AddFilledRect(
UIRect(cardX, cardY, cardWidth, 56.0f),
UIColor(0.15f, 0.20f, 0.27f, 1.0f),
8.0f);
drawList.AddFilledRect(
UIRect(cardX + 14.0f, cardY + 16.0f, 10.0f, 10.0f),
UIColor(0.18f, 0.76f, 0.58f, 1.0f),
5.0f);
drawList.AddText(
UIPoint(cardX + 32.0f, cardY + 12.0f),
"XCUI Transition Backend",
UIColor(0.96f, 0.97f, 0.99f, 1.0f),
18.0f);
drawList.AddText(
UIPoint(cardX + 32.0f, cardY + 33.0f),
"This panel is generated by XCUI draw commands, then flushed through ImGui.",
UIColor(0.74f, 0.79f, 0.86f, 1.0f),
13.0f);
const float statY = cardY + 76.0f;
drawList.AddFilledRect(
UIRect(cardX, statY, 140.0f, 74.0f),
UIColor(0.11f, 0.16f, 0.22f, 1.0f),
8.0f);
drawList.AddFilledRect(
UIRect(cardX + 158.0f, statY, 180.0f, 74.0f),
UIColor(0.11f, 0.16f, 0.22f, 1.0f),
8.0f);
drawList.AddText(
UIPoint(cardX + 14.0f, statY + 12.0f),
"Primitive Set",
UIColor(0.68f, 0.75f, 0.84f, 1.0f),
13.0f);
drawList.AddText(
UIPoint(cardX + 14.0f, statY + 36.0f),
"Rect / Border / Text / Image",
UIColor(0.95f, 0.97f, 0.99f, 1.0f),
15.0f);
drawList.AddText(
UIPoint(cardX + 172.0f, statY + 12.0f),
"Backend Flow",
UIColor(0.68f, 0.75f, 0.84f, 1.0f),
13.0f);
drawList.AddText(
UIPoint(cardX + 172.0f, statY + 36.0f),
"UIDrawList -> ImGuiTransitionBackend -> ImDrawList",
UIColor(0.95f, 0.97f, 0.99f, 1.0f),
15.0f);
const float footerY = canvasMin.y + canvasSize.y - 54.0f;
if (footerY > statY + 90.0f) {
drawList.AddFilledRect(
UIRect(cardX, footerY, cardWidth, 36.0f),
UIColor(0.14f, 0.17f, 0.22f, 1.0f),
8.0f);
drawList.AddText(
UIPoint(cardX + 14.0f, footerY + 10.0f),
"Subplan-05 MVP: XCUI owns draw data, ImGui is only the transition renderer.",
UIColor(0.79f, 0.84f, 0.90f, 1.0f),
13.0f);
}
drawList.PopClipRect();
return drawList;
}
} // namespace
namespace XCEngine {
namespace Editor {
XCUIDemoPanel::XCUIDemoPanel()
: Panel("XCUI Demo") {
}
void XCUIDemoPanel::Render() {
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
UI::PanelWindowScope panel(m_name.c_str());
ImGui::PopStyleVar();
if (!panel.IsOpen()) {
return;
}
UI::PanelContentScope content("XCUIDemoContent", ImVec2(0.0f, 0.0f));
if (!content.IsOpen()) {
return;
}
const ImVec2 availableSize = ImGui::GetContentRegionAvail();
if (availableSize.x <= 1.0f || availableSize.y <= 1.0f) {
ImGui::Dummy(ImVec2(0.0f, 0.0f));
return;
}
const ImVec2 canvasMin = ImGui::GetCursorScreenPos();
ImGui::InvisibleButton("##XCUIDemoCanvas", availableSize);
::XCEngine::UI::UIDrawData drawData = {};
drawData.AddDrawList(BuildXCUIDemoDrawList(canvasMin, availableSize));
m_backend.BeginFrame();
m_backend.Submit(drawData);
m_backend.EndFrame(ImGui::GetWindowDrawList());
}
} // namespace Editor
} // namespace XCEngine

View File

@@ -1,20 +0,0 @@
#pragma once
#include "Panel.h"
#include "XCUIBackend/ImGuiTransitionBackend.h"
namespace XCEngine {
namespace Editor {
class XCUIDemoPanel : public Panel {
public:
XCUIDemoPanel();
void Render() override;
private:
XCUIBackend::ImGuiTransitionBackend m_backend;
};
} // namespace Editor
} // namespace XCEngine