From 91c62c6b14b710903340c2d9dcf42d0eefb54fa1 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Tue, 14 Apr 2026 14:41:45 +0800 Subject: [PATCH] Refine new editor shell host and embedded icons --- new_editor/CMakeLists.txt | 1 + new_editor/app/Application.cpp | 123 +++++++- new_editor/app/Application.h | 1 + new_editor/app/EditorApp.rc | 9 + new_editor/app/EditorResources.h | 9 + .../app/Host/BorderlessWindowChrome.cpp | 132 ++++++--- new_editor/app/Host/BorderlessWindowChrome.h | 6 +- new_editor/app/Host/NativeRenderer.cpp | 93 +++++- new_editor/app/Host/NativeRenderer.h | 14 + .../app/Host/WindowMessageDispatcher.cpp | 21 ++ new_editor/app/Icons/ProductBuiltInIcons.cpp | 115 ++++++-- new_editor/app/Icons/ProductBuiltInIcons.h | 10 +- new_editor/app/Panels/ProductConsolePanel.cpp | 6 +- .../app/Panels/ProductInspectorPanel.cpp | 14 +- new_editor/app/Panels/ProductProjectPanel.cpp | 22 +- new_editor/app/Panels/ProductTreeViewStyle.h | 10 +- .../app/Workspace/ProductEditorWorkspace.cpp | 2 +- .../include/XCEditor/Shell/UIEditorMenuBar.h | 2 +- new_editor/resources/Icons/folder_icon.png | Bin 0 -> 270 bytes .../resources/Icons/gameobject_icon.png | Bin 0 -> 741 bytes new_editor/resources/Icons/logo.ico | Bin 0 -> 19543 bytes new_editor/resources/Icons/logo.png | Bin 0 -> 172971 bytes new_editor/resources/Icons/logo_icon.ico | Bin 0 -> 1209 bytes new_editor/resources/Icons/logo_icon.png | Bin 0 -> 926 bytes new_editor/resources/Icons/scene_icon.png | Bin 0 -> 926 bytes new_editor/src/Foundation/UIEditorTheme.cpp | 268 +++++++++++++++++- .../src/Widgets/UIEditorFieldRowLayout.cpp | 34 ++- 27 files changed, 768 insertions(+), 124 deletions(-) create mode 100644 new_editor/app/EditorApp.rc create mode 100644 new_editor/app/EditorResources.h create mode 100644 new_editor/resources/Icons/folder_icon.png create mode 100644 new_editor/resources/Icons/gameobject_icon.png create mode 100644 new_editor/resources/Icons/logo.ico create mode 100644 new_editor/resources/Icons/logo.png create mode 100644 new_editor/resources/Icons/logo_icon.ico create mode 100644 new_editor/resources/Icons/logo_icon.png create mode 100644 new_editor/resources/Icons/scene_icon.png diff --git a/new_editor/CMakeLists.txt b/new_editor/CMakeLists.txt index 3e623972..96a96853 100644 --- a/new_editor/CMakeLists.txt +++ b/new_editor/CMakeLists.txt @@ -158,6 +158,7 @@ target_link_libraries(XCUIEditorHost PUBLIC if(XCENGINE_BUILD_XCUI_EDITOR_APP) add_executable(XCUIEditorApp WIN32 + app/EditorApp.rc app/main.cpp app/Application.cpp app/Commands/ProductEditorHostCommandBridge.cpp diff --git a/new_editor/app/Application.cpp b/new_editor/app/Application.cpp index 0b4d833d..90c02361 100644 --- a/new_editor/app/Application.cpp +++ b/new_editor/app/Application.cpp @@ -1,4 +1,5 @@ #include "Application.h" +#include "EditorResources.h" #include @@ -42,7 +43,7 @@ constexpr float kBaseDpiScale = 96.0f; constexpr float kBorderlessTitleBarHeightDips = 28.0f; constexpr float kBorderlessTitleBarFontSize = 12.0f; constexpr DWORD kBorderlessWindowStyle = - WS_POPUP | WS_THICKFRAME | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX; + WS_POPUP | WS_THICKFRAME; bool ResolveVerboseRuntimeTraceEnabled() { wchar_t buffer[8] = {}; @@ -53,6 +54,64 @@ bool ResolveVerboseRuntimeTraceEnabled() { return length > 0u && buffer[0] != L'0'; } +bool LoadEmbeddedPngBytes( + UINT resourceId, + const std::uint8_t*& outData, + std::size_t& outSize, + std::string& outError) { + outData = nullptr; + outSize = 0u; + outError.clear(); + + HMODULE module = GetModuleHandleW(nullptr); + if (module == nullptr) { + outError = "GetModuleHandleW(nullptr) returned null."; + return false; + } + + HRSRC resource = FindResourceW(module, MAKEINTRESOURCEW(resourceId), L"PNG"); + if (resource == nullptr) { + outError = "FindResourceW failed."; + return false; + } + + HGLOBAL resourceData = LoadResource(module, resource); + if (resourceData == nullptr) { + outError = "LoadResource failed."; + return false; + } + + const DWORD resourceSize = SizeofResource(module, resource); + if (resourceSize == 0u) { + outError = "SizeofResource returned zero."; + return false; + } + + const void* lockedBytes = LockResource(resourceData); + if (lockedBytes == nullptr) { + outError = "LockResource failed."; + return false; + } + + outData = reinterpret_cast(lockedBytes); + outSize = static_cast(resourceSize); + return true; +} + +bool LoadEmbeddedPngTexture( + Host::NativeRenderer& renderer, + UINT resourceId, + ::XCEngine::UI::UITextureHandle& outTexture, + std::string& outError) { + const std::uint8_t* bytes = nullptr; + std::size_t byteCount = 0u; + if (!LoadEmbeddedPngBytes(resourceId, bytes, byteCount, outError)) { + return false; + } + + return renderer.LoadTextureFromMemory(bytes, byteCount, outTexture, outError); +} + UINT QuerySystemDpi() { HDC screenDc = GetDC(nullptr); if (screenDc == nullptr) { @@ -415,6 +474,22 @@ bool Application::Initialize(HINSTANCE hInstance, int nCmdShow) { windowClass.lpfnWndProc = &Application::WndProc; windowClass.hInstance = hInstance; windowClass.hCursor = LoadCursorW(nullptr, IDC_ARROW); + windowClass.hIcon = static_cast( + LoadImageW( + hInstance, + MAKEINTRESOURCEW(IDI_APP_ICON), + IMAGE_ICON, + 0, + 0, + LR_DEFAULTSIZE)); + windowClass.hIconSm = static_cast( + LoadImageW( + hInstance, + MAKEINTRESOURCEW(IDI_APP_ICON_SMALL), + IMAGE_ICON, + GetSystemMetrics(SM_CXSMICON), + GetSystemMetrics(SM_CYSMICON), + LR_DEFAULTCOLOR)); windowClass.lpszClassName = kWindowClassName; m_windowClassAtom = RegisterClassExW(&windowClass); if (m_windowClassAtom == 0) { @@ -439,6 +514,12 @@ bool Application::Initialize(HINSTANCE hInstance, int nCmdShow) { LogRuntimeTrace("app", "window creation failed"); return false; } + if (windowClass.hIcon != nullptr) { + SendMessageW(m_hwnd, WM_SETICON, ICON_BIG, reinterpret_cast(windowClass.hIcon)); + } + if (windowClass.hIconSm != nullptr) { + SendMessageW(m_hwnd, WM_SETICON, ICON_SMALL, reinterpret_cast(windowClass.hIconSm)); + } Host::RefreshBorderlessWindowDwmDecorations(m_hwnd); m_hostRuntime.Reset(); m_hostRuntime.SetWindowDpi(QueryWindowDpi(m_hwnd)); @@ -477,6 +558,10 @@ bool Application::Initialize(HINSTANCE hInstance, int nCmdShow) { m_editorWorkspace.AttachViewportWindowRenderer(m_windowRenderer); m_editorWorkspace.SetViewportSurfacePresentationEnabled( attachResult.hasViewportSurfacePresentation); + std::string titleBarLogoError = {}; + if (!LoadEmbeddedPngTexture(m_renderer, IDR_PNG_LOGO_ICON, m_titleBarLogoIcon, titleBarLogoError)) { + LogRuntimeTrace("icons", "titlebar logo_icon.png: " + titleBarLogoError); + } if (!m_editorWorkspace.GetBuiltInIconError().empty()) { LogRuntimeTrace("icons", m_editorWorkspace.GetBuiltInIconError()); } @@ -507,6 +592,7 @@ void Application::Shutdown() { m_autoScreenshot.Shutdown(); m_editorWorkspace.Shutdown(); + m_renderer.ReleaseTexture(m_titleBarLogoIcon); m_windowRenderLoop.Detach(); m_windowRenderer.Shutdown(); m_renderer.Shutdown(); @@ -1114,23 +1200,36 @@ void Application::AppendBorderlessWindowChrome( const Host::BorderlessWindowChromeLayout layout = ResolveBorderlessWindowChromeLayout(clientWidthDips); + const float iconExtent = 16.0f; + const float iconInsetLeft = 8.0f; + const float iconTextGap = 8.0f; + const float iconX = layout.titleBarRect.x + iconInsetLeft; + const float iconY = + layout.titleBarRect.y + + (std::max)(0.0f, (layout.titleBarRect.height - iconExtent) * 0.5f); drawList.AddFilledRect( layout.titleBarRect, - UIColor(0.97f, 0.97f, 0.97f, 1.0f)); + UIColor(0.10f, 0.10f, 0.10f, 1.0f)); drawList.AddLine( UIPoint(layout.titleBarRect.x, layout.titleBarRect.y + layout.titleBarRect.height), UIPoint( layout.titleBarRect.x + layout.titleBarRect.width, layout.titleBarRect.y + layout.titleBarRect.height), - UIColor(0.78f, 0.78f, 0.78f, 1.0f), + UIColor(0.14f, 0.14f, 0.14f, 1.0f), 1.0f); + if (m_titleBarLogoIcon.IsValid()) { + drawList.AddImage( + UIRect(iconX, iconY, iconExtent, iconExtent), + m_titleBarLogoIcon, + UIColor(1.0f, 1.0f, 1.0f, 1.0f)); + } drawList.AddText( UIPoint( - 12.0f, + iconX + (m_titleBarLogoIcon.IsValid() ? (iconExtent + iconTextGap) : 4.0f), layout.titleBarRect.y + (std::max)(0.0f, (layout.titleBarRect.height - kBorderlessTitleBarFontSize) * 0.5f - 1.0f)), kWindowTitleText, - UIColor(0.12f, 0.12f, 0.12f, 1.0f), + UIColor(0.92f, 0.92f, 0.92f, 1.0f), kBorderlessTitleBarFontSize); Host::AppendBorderlessWindowChrome( drawList, @@ -1306,11 +1405,23 @@ std::string Application::DescribeInputEvents( } void Application::OnResize(UINT width, UINT height) { + bool matchesPredictedClientSize = false; + UINT predictedWidth = 0u; + UINT predictedHeight = 0u; + if (m_hostRuntime.TryGetPredictedClientPixelSize(predictedWidth, predictedHeight)) { + matchesPredictedClientSize = + predictedWidth == width && + predictedHeight == height; + } + m_hostRuntime.ClearPredictedClientPixelSize(); if (IsBorderlessWindowEnabled() && m_hwnd != nullptr) { Host::RefreshBorderlessWindowDwmDecorations(m_hwnd); } - ApplyWindowResize(width, height); + + if (!matchesPredictedClientSize) { + ApplyWindowResize(width, height); + } } void Application::OnEnterSizeMove() { diff --git a/new_editor/app/Application.h b/new_editor/app/Application.h index e0ae6451..ee89df51 100644 --- a/new_editor/app/Application.h +++ b/new_editor/app/Application.h @@ -130,6 +130,7 @@ private: std::vector<::XCEngine::UI::UIInputEvent> m_pendingInputEvents = {}; bool m_trackingMouseLeave = false; bool m_renderReady = false; + ::XCEngine::UI::UITextureHandle m_titleBarLogoIcon = {}; ::XCEngine::UI::Editor::Host::BorderlessWindowChromeState m_borderlessWindowChromeState = {}; ::XCEngine::UI::Editor::Host::HostRuntimeState m_hostRuntime = {}; }; diff --git a/new_editor/app/EditorApp.rc b/new_editor/app/EditorApp.rc new file mode 100644 index 00000000..4fda63c9 --- /dev/null +++ b/new_editor/app/EditorApp.rc @@ -0,0 +1,9 @@ +#include "EditorResources.h" + +IDI_APP_ICON ICON "../resources/Icons/logo.ico" +IDI_APP_ICON_SMALL ICON "../resources/Icons/logo_icon.ico" +IDR_PNG_FOLDER_ICON PNG "../resources/Icons/folder_icon.png" +IDR_PNG_GAMEOBJECT_ICON PNG "../resources/Icons/gameobject_icon.png" +IDR_PNG_SCENE_ICON PNG "../resources/Icons/scene_icon.png" +IDR_PNG_LOGO PNG "../resources/Icons/logo.png" +IDR_PNG_LOGO_ICON PNG "../resources/Icons/logo_icon.png" diff --git a/new_editor/app/EditorResources.h b/new_editor/app/EditorResources.h new file mode 100644 index 00000000..46e81b2b --- /dev/null +++ b/new_editor/app/EditorResources.h @@ -0,0 +1,9 @@ +#pragma once + +#define IDI_APP_ICON 101 +#define IDI_APP_ICON_SMALL 102 +#define IDR_PNG_FOLDER_ICON 201 +#define IDR_PNG_GAMEOBJECT_ICON 202 +#define IDR_PNG_SCENE_ICON 203 +#define IDR_PNG_LOGO 204 +#define IDR_PNG_LOGO_ICON 205 diff --git a/new_editor/app/Host/BorderlessWindowChrome.cpp b/new_editor/app/Host/BorderlessWindowChrome.cpp index 2aa317f7..961f7710 100644 --- a/new_editor/app/Host/BorderlessWindowChrome.cpp +++ b/new_editor/app/Host/BorderlessWindowChrome.cpp @@ -1,6 +1,7 @@ #include "BorderlessWindowChrome.h" #include +#include #include namespace XCEngine::UI::Editor::Host { @@ -12,6 +13,12 @@ using ::XCEngine::UI::UIDrawList; using ::XCEngine::UI::UIPoint; using ::XCEngine::UI::UIRect; +constexpr UIColor kTransparentColor(0.0f, 0.0f, 0.0f, 0.0f); + +float ResolveGlyphBoxSize(const UIRect& rect, float ratio, float minSize) { + return (std::max)(minSize, static_cast(std::round(rect.height * ratio))); +} + bool IsPointInsideRect(const UIRect& rect, const UIPoint& point) { return rect.width > 0.0f && rect.height > 0.0f && @@ -28,8 +35,8 @@ void AppendMinimizeGlyph( float thickness) { const float centerX = rect.x + rect.width * 0.5f; const float centerY = rect.y + rect.height * 0.5f; - const float halfWidth = (std::max)(4.0f, rect.height * 0.22f); - const float y = centerY + rect.height * 0.12f; + const float halfWidth = ResolveGlyphBoxSize(rect, 0.38f, 10.0f) * 0.5f; + const float y = centerY; drawList.AddLine( UIPoint(centerX - halfWidth, y), UIPoint(centerX + halfWidth, y), @@ -44,15 +51,16 @@ void AppendMaximizeGlyph( float thickness) { const float centerX = rect.x + rect.width * 0.5f; const float centerY = rect.y + rect.height * 0.5f; - const float halfExtent = (std::max)(4.0f, rect.height * 0.20f); - drawList.AddRectOutline( - UIRect( - centerX - halfExtent, - centerY - halfExtent, - halfExtent * 2.0f, - halfExtent * 2.0f), - color, - thickness); + const float boxSize = ResolveGlyphBoxSize(rect, 0.32f, 9.0f); + const float halfExtent = boxSize * 0.5f; + const float left = centerX - halfExtent; + const float top = centerY - halfExtent; + const float right = left + boxSize; + const float bottom = top + boxSize; + drawList.AddLine(UIPoint(left, top), UIPoint(right, top), color, thickness); + drawList.AddLine(UIPoint(left, top), UIPoint(left, bottom), color, thickness); + drawList.AddLine(UIPoint(right, top), UIPoint(right, bottom), color, thickness); + drawList.AddLine(UIPoint(left, bottom), UIPoint(right, bottom), color, thickness); } void AppendRestoreGlyph( @@ -62,24 +70,30 @@ void AppendRestoreGlyph( float thickness) { const float centerX = rect.x + rect.width * 0.5f; const float centerY = rect.y + rect.height * 0.5f; - const float halfExtent = (std::max)(4.0f, rect.height * 0.18f); - const float offset = 2.0f; - drawList.AddRectOutline( - UIRect( - centerX - halfExtent + offset, - centerY - halfExtent - offset, - halfExtent * 2.0f, - halfExtent * 2.0f), - color, - thickness); - drawList.AddRectOutline( - UIRect( - centerX - halfExtent - offset, - centerY - halfExtent + offset, - halfExtent * 2.0f, - halfExtent * 2.0f), - color, - thickness); + const float boxSize = ResolveGlyphBoxSize(rect, 0.29f, 8.0f); + const float halfExtent = boxSize * 0.5f; + const float offset = 1.0f; + + const float backLeft = centerX - halfExtent + offset; + const float backTop = centerY - halfExtent - offset; + const float backRight = backLeft + boxSize; + const float backBottom = backTop + boxSize; + + const float frontLeft = centerX - halfExtent - offset; + const float frontTop = centerY - halfExtent + offset; + const float frontRight = frontLeft + boxSize; + const float frontBottom = frontTop + boxSize; + + // Only draw the exposed segments of the back window. + drawList.AddLine(UIPoint(backLeft, backTop), UIPoint(backRight, backTop), color, thickness); + drawList.AddLine(UIPoint(backLeft, backTop), UIPoint(backLeft, frontTop), color, thickness); + drawList.AddLine(UIPoint(backRight, backTop), UIPoint(backRight, backBottom), color, thickness); + drawList.AddLine(UIPoint(frontRight, backBottom), UIPoint(backRight, backBottom), color, thickness); + + drawList.AddLine(UIPoint(frontLeft, frontTop), UIPoint(frontRight, frontTop), color, thickness); + drawList.AddLine(UIPoint(frontLeft, frontTop), UIPoint(frontLeft, frontBottom), color, thickness); + drawList.AddLine(UIPoint(frontRight, frontTop), UIPoint(frontRight, frontBottom), color, thickness); + drawList.AddLine(UIPoint(frontLeft, frontBottom), UIPoint(frontRight, frontBottom), color, thickness); } void AppendCloseGlyph( @@ -89,7 +103,7 @@ void AppendCloseGlyph( float thickness) { const float centerX = rect.x + rect.width * 0.5f; const float centerY = rect.y + rect.height * 0.5f; - const float halfWidth = (std::max)(4.0f, rect.height * 0.20f); + const float halfWidth = ResolveGlyphBoxSize(rect, 0.29f, 8.0f) * 0.5f; const float halfHeight = halfWidth; drawList.AddLine( UIPoint(centerX - halfWidth, centerY - halfHeight), @@ -116,7 +130,7 @@ void AppendCloseGlyph( if (hovered) { return palette.closeButtonHoverColor; } - return {}; + return kTransparentColor; } if (pressed) { @@ -125,7 +139,7 @@ void AppendCloseGlyph( if (hovered) { return palette.buttonHoverColor; } - return {}; + return kTransparentColor; } ::XCEngine::UI::UIColor ResolveIconColor( @@ -207,6 +221,54 @@ void ApplyDwmBoolWindowAttribute(HWND hwnd, DWORD attribute, BOOL value) { } } +void ApplyDwmColorWindowAttribute(HWND hwnd, DWORD attribute, COLORREF value) { + if (hwnd == nullptr) { + return; + } + + using DwmSetWindowAttributeFn = HRESULT(WINAPI*)(HWND, DWORD, LPCVOID, DWORD); + static const auto setWindowAttribute = []() -> DwmSetWindowAttributeFn { + HMODULE dwmapi = GetModuleHandleW(L"dwmapi.dll"); + if (dwmapi == nullptr) { + dwmapi = LoadLibraryW(L"dwmapi.dll"); + } + if (dwmapi == nullptr) { + return nullptr; + } + + return reinterpret_cast( + GetProcAddress(dwmapi, "DwmSetWindowAttribute")); + }(); + + if (setWindowAttribute != nullptr) { + setWindowAttribute(hwnd, attribute, &value, sizeof(value)); + } +} + +void ApplyDwmIntWindowAttribute(HWND hwnd, DWORD attribute, int value) { + if (hwnd == nullptr) { + return; + } + + using DwmSetWindowAttributeFn = HRESULT(WINAPI*)(HWND, DWORD, LPCVOID, DWORD); + static const auto setWindowAttribute = []() -> DwmSetWindowAttributeFn { + HMODULE dwmapi = GetModuleHandleW(L"dwmapi.dll"); + if (dwmapi == nullptr) { + dwmapi = LoadLibraryW(L"dwmapi.dll"); + } + if (dwmapi == nullptr) { + return nullptr; + } + + return reinterpret_cast( + GetProcAddress(dwmapi, "DwmSetWindowAttribute")); + }(); + + if (setWindowAttribute != nullptr) { + setWindowAttribute(hwnd, attribute, &value, sizeof(value)); + } +} + } // namespace BorderlessWindowChromeLayout BuildBorderlessWindowChromeLayout( @@ -353,7 +415,13 @@ void RefreshBorderlessWindowDwmDecorations(HWND hwnd) { // Borderless host cannot participate in compositor-driven minimize/maximize // transitions without Windows stretching the last presented client frame. // Disable those transitions for this window, then refresh the shadow state. + ApplyDwmIntWindowAttribute(hwnd, DWMWA_NCRENDERING_POLICY, DWMNCRP_DISABLED); + ApplyDwmBoolWindowAttribute(hwnd, DWMWA_ALLOW_NCPAINT, FALSE); ApplyDwmBoolWindowAttribute(hwnd, DWMWA_TRANSITIONS_FORCEDISABLED, TRUE); + ApplyDwmBoolWindowAttribute(hwnd, DWMWA_USE_IMMERSIVE_DARK_MODE, TRUE); + ApplyDwmColorWindowAttribute(hwnd, DWMWA_CAPTION_COLOR, RGB(26, 26, 26)); + ApplyDwmColorWindowAttribute(hwnd, DWMWA_TEXT_COLOR, RGB(235, 235, 235)); + ApplyDwmColorWindowAttribute(hwnd, DWMWA_BORDER_COLOR, RGB(26, 26, 26)); EnableBorderlessWindowShadow(hwnd); } diff --git a/new_editor/app/Host/BorderlessWindowChrome.h b/new_editor/app/Host/BorderlessWindowChrome.h index ef3d5959..59404c93 100644 --- a/new_editor/app/Host/BorderlessWindowChrome.h +++ b/new_editor/app/Host/BorderlessWindowChrome.h @@ -28,15 +28,15 @@ struct BorderlessWindowChromeMetrics { struct BorderlessWindowChromePalette { ::XCEngine::UI::UIColor buttonHoverColor = - ::XCEngine::UI::UIColor(0.88f, 0.88f, 0.88f, 1.0f); + ::XCEngine::UI::UIColor(0.14f, 0.14f, 0.14f, 1.0f); ::XCEngine::UI::UIColor buttonPressedColor = - ::XCEngine::UI::UIColor(0.78f, 0.78f, 0.78f, 1.0f); + ::XCEngine::UI::UIColor(0.17f, 0.17f, 0.17f, 1.0f); ::XCEngine::UI::UIColor closeButtonHoverColor = ::XCEngine::UI::UIColor(0.91f, 0.31f, 0.24f, 1.0f); ::XCEngine::UI::UIColor closeButtonPressedColor = ::XCEngine::UI::UIColor(0.78f, 0.22f, 0.18f, 1.0f); ::XCEngine::UI::UIColor iconColor = - ::XCEngine::UI::UIColor(0.10f, 0.10f, 0.10f, 1.0f); + ::XCEngine::UI::UIColor(0.92f, 0.92f, 0.92f, 1.0f); ::XCEngine::UI::UIColor closeIconHoverColor = ::XCEngine::UI::UIColor(1.0f, 1.0f, 1.0f, 1.0f); }; diff --git a/new_editor/app/Host/NativeRenderer.cpp b/new_editor/app/Host/NativeRenderer.cpp index 32a3dea1..3d7a3c57 100644 --- a/new_editor/app/Host/NativeRenderer.cpp +++ b/new_editor/app/Host/NativeRenderer.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include namespace XCEngine::UI::Editor::Host { @@ -380,6 +381,29 @@ bool NativeRenderer::LoadTextureFromFile( return true; } +bool NativeRenderer::LoadTextureFromMemory( + const std::uint8_t* data, + std::size_t size, + ::XCEngine::UI::UITextureHandle& outTexture, + std::string& outError) { + outError.clear(); + ReleaseTexture(outTexture); + + auto texture = std::make_unique(); + if (!DecodeTextureMemory(data, size, *texture, outError)) { + outTexture = {}; + return false; + } + + outTexture.nativeHandle = reinterpret_cast(texture.get()); + outTexture.width = texture->width; + outTexture.height = texture->height; + outTexture.kind = ::XCEngine::UI::UITextureHandleKind::DescriptorHandle; + m_liveTextures.insert(texture.get()); + texture.release(); + return true; +} + void NativeRenderer::ReleaseTexture(::XCEngine::UI::UITextureHandle& texture) { if (!texture.IsValid()) { texture = {}; @@ -742,15 +766,80 @@ bool NativeRenderer::DecodeTextureFile( return false; } + return DecodeTextureFrame(*frame.Get(), outTexture, outError); +} + +bool NativeRenderer::DecodeTextureMemory( + const std::uint8_t* data, + std::size_t size, + NativeTextureResource& outTexture, + std::string& outError) { + outError.clear(); + if (data == nullptr || size == 0u) { + outError = "DecodeTextureMemory rejected an empty image payload."; + return false; + } + + if (size > static_cast((std::numeric_limits::max)())) { + outError = "DecodeTextureMemory payload exceeds WIC stream limits."; + return false; + } + + if (!EnsureWicFactory(outError)) { + return false; + } + + Microsoft::WRL::ComPtr stream; + HRESULT hr = m_wicFactory->CreateStream(stream.ReleaseAndGetAddressOf()); + if (FAILED(hr) || !stream) { + outError = HrToString("IWICImagingFactory::CreateStream", hr); + return false; + } + + hr = stream->InitializeFromMemory( + const_cast(reinterpret_cast(data)), + static_cast(size)); + if (FAILED(hr)) { + outError = HrToString("IWICStream::InitializeFromMemory", hr); + return false; + } + + Microsoft::WRL::ComPtr decoder; + hr = m_wicFactory->CreateDecoderFromStream( + stream.Get(), + nullptr, + WICDecodeMetadataCacheOnLoad, + decoder.ReleaseAndGetAddressOf()); + if (FAILED(hr) || !decoder) { + outError = HrToString("IWICImagingFactory::CreateDecoderFromStream", hr); + return false; + } + + Microsoft::WRL::ComPtr frame; + hr = decoder->GetFrame(0u, frame.ReleaseAndGetAddressOf()); + if (FAILED(hr) || !frame) { + outError = HrToString("IWICBitmapDecoder::GetFrame", hr); + return false; + } + + return DecodeTextureFrame(*frame.Get(), outTexture, outError); +} + +bool NativeRenderer::DecodeTextureFrame( + IWICBitmapSource& source, + NativeTextureResource& outTexture, + std::string& outError) { + outError.clear(); + Microsoft::WRL::ComPtr converter; - hr = m_wicFactory->CreateFormatConverter(converter.ReleaseAndGetAddressOf()); + HRESULT hr = m_wicFactory->CreateFormatConverter(converter.ReleaseAndGetAddressOf()); if (FAILED(hr) || !converter) { outError = HrToString("IWICImagingFactory::CreateFormatConverter", hr); return false; } hr = converter->Initialize( - frame.Get(), + &source, GUID_WICPixelFormat32bppPBGRA, WICBitmapDitherTypeNone, nullptr, diff --git a/new_editor/app/Host/NativeRenderer.h b/new_editor/app/Host/NativeRenderer.h index 80edd1a8..cfa89214 100644 --- a/new_editor/app/Host/NativeRenderer.h +++ b/new_editor/app/Host/NativeRenderer.h @@ -48,6 +48,11 @@ public: const std::filesystem::path& path, ::XCEngine::UI::UITextureHandle& outTexture, std::string& outError); + bool LoadTextureFromMemory( + const std::uint8_t* data, + std::size_t size, + ::XCEngine::UI::UITextureHandle& outTexture, + std::string& outError); void ReleaseTexture(::XCEngine::UI::UITextureHandle& texture); float MeasureTextWidth( const ::XCEngine::UI::Editor::UIEditorTextMeasureRequest& request) const override; @@ -82,6 +87,15 @@ private: const std::filesystem::path& path, NativeTextureResource& outTexture, std::string& outError); + bool DecodeTextureMemory( + const std::uint8_t* data, + std::size_t size, + NativeTextureResource& outTexture, + std::string& outError); + bool DecodeTextureFrame( + IWICBitmapSource& source, + NativeTextureResource& outTexture, + std::string& outError); bool ResolveTextureBitmap( ID2D1RenderTarget& renderTarget, NativeTextureResource& texture, diff --git a/new_editor/app/Host/WindowMessageDispatcher.cpp b/new_editor/app/Host/WindowMessageDispatcher.cpp index 8379edfb..068f3b02 100644 --- a/new_editor/app/Host/WindowMessageDispatcher.cpp +++ b/new_editor/app/Host/WindowMessageDispatcher.cpp @@ -4,6 +4,13 @@ namespace XCEngine::UI::Editor::Host { +namespace { + +constexpr UINT kMessageNcUaDrawCaption = 0x00AEu; +constexpr UINT kMessageNcUaDrawFrame = 0x00AFu; + +} // namespace + void TryEnableNonClientDpiScaling(HWND hwnd) { if (hwnd == nullptr) { return; @@ -82,6 +89,20 @@ bool WindowMessageDispatcher::TryDispatch( return true; } return false; + case WM_NCHITTEST: + if (application.IsBorderlessWindowEnabled()) { + outResult = HTCLIENT; + return true; + } + return false; + case WM_NCPAINT: + case kMessageNcUaDrawCaption: + case kMessageNcUaDrawFrame: + if (application.IsBorderlessWindowEnabled()) { + outResult = 0; + return true; + } + return false; case WM_SYSCOMMAND: if (application.HandleBorderlessWindowSystemCommand(wParam)) { outResult = 0; diff --git a/new_editor/app/Icons/ProductBuiltInIcons.cpp b/new_editor/app/Icons/ProductBuiltInIcons.cpp index cb94ed69..2974d844 100644 --- a/new_editor/app/Icons/ProductBuiltInIcons.cpp +++ b/new_editor/app/Icons/ProductBuiltInIcons.cpp @@ -1,4 +1,5 @@ #include "ProductBuiltInIcons.h" +#include "EditorResources.h" #include @@ -20,31 +21,96 @@ void AppendLoadError( stream << label << ": " << error; } +bool LoadEmbeddedPngBytes( + UINT resourceId, + const std::uint8_t*& outData, + std::size_t& outSize, + std::string& outError) { + outData = nullptr; + outSize = 0u; + outError.clear(); + + HMODULE module = GetModuleHandleW(nullptr); + if (module == nullptr) { + outError = "GetModuleHandleW(nullptr) returned null."; + return false; + } + + HRSRC resource = FindResourceW(module, MAKEINTRESOURCEW(resourceId), L"PNG"); + if (resource == nullptr) { + outError = "FindResourceW failed."; + return false; + } + + HGLOBAL resourceData = LoadResource(module, resource); + if (resourceData == nullptr) { + outError = "LoadResource failed."; + return false; + } + + const DWORD resourceSize = SizeofResource(module, resource); + if (resourceSize == 0u) { + outError = "SizeofResource returned zero."; + return false; + } + + const void* lockedBytes = LockResource(resourceData); + if (lockedBytes == nullptr) { + outError = "LockResource failed."; + return false; + } + + outData = reinterpret_cast(lockedBytes); + outSize = static_cast(resourceSize); + return true; +} + +void LoadEmbeddedPngTexture( + Host::NativeRenderer& renderer, + UINT resourceId, + std::string_view label, + ::XCEngine::UI::UITextureHandle& outTexture, + std::ostringstream& errorStream) { + const std::uint8_t* bytes = nullptr; + std::size_t byteCount = 0u; + std::string error = {}; + if (!LoadEmbeddedPngBytes(resourceId, bytes, byteCount, error)) { + AppendLoadError(errorStream, label, error); + return; + } + + error.clear(); + if (!renderer.LoadTextureFromMemory(bytes, byteCount, outTexture, error)) { + AppendLoadError(errorStream, label, error); + } +} + } // namespace -void ProductBuiltInIcons::Initialize( - Host::NativeRenderer& renderer, - const std::filesystem::path& repoRoot) { +void ProductBuiltInIcons::Initialize(Host::NativeRenderer& renderer) { Shutdown(); m_renderer = &renderer; - m_repoRoot = repoRoot.lexically_normal(); std::ostringstream errorStream = {}; - std::string error = {}; - if (!m_renderer->LoadTextureFromFile(ResolveFolderIconPath(), m_folderIcon, error)) { - AppendLoadError(errorStream, "folder_icon.png", error); - } - - error.clear(); - if (!m_renderer->LoadTextureFromFile(ResolveGameObjectIconPath(), m_gameObjectIcon, error)) { - AppendLoadError(errorStream, "gameobject_icon.png", error); - } - - error.clear(); - if (!m_renderer->LoadTextureFromFile(ResolveSceneIconPath(), m_sceneIcon, error)) { - AppendLoadError(errorStream, "scene_icon.png", error); - } + LoadEmbeddedPngTexture( + renderer, + IDR_PNG_FOLDER_ICON, + "folder_icon.png", + m_folderIcon, + errorStream); + LoadEmbeddedPngTexture( + renderer, + IDR_PNG_GAMEOBJECT_ICON, + "gameobject_icon.png", + m_gameObjectIcon, + errorStream); + LoadEmbeddedPngTexture( + renderer, + IDR_PNG_SCENE_ICON, + "scene_icon.png", + m_sceneIcon, + errorStream); m_lastError = errorStream.str(); } @@ -57,7 +123,6 @@ void ProductBuiltInIcons::Shutdown() { } m_renderer = nullptr; - m_repoRoot.clear(); m_lastError.clear(); } @@ -79,16 +144,4 @@ const std::string& ProductBuiltInIcons::GetLastError() const { return m_lastError; } -std::filesystem::path ProductBuiltInIcons::ResolveFolderIconPath() const { - return (m_repoRoot / "editor/resources/Icons/folder_icon.png").lexically_normal(); -} - -std::filesystem::path ProductBuiltInIcons::ResolveGameObjectIconPath() const { - return (m_repoRoot / "editor/resources/Icons/gameobject_icon.png").lexically_normal(); -} - -std::filesystem::path ProductBuiltInIcons::ResolveSceneIconPath() const { - return (m_repoRoot / "editor/resources/Icons/scene_icon.png").lexically_normal(); -} - } // namespace XCEngine::UI::Editor::App diff --git a/new_editor/app/Icons/ProductBuiltInIcons.h b/new_editor/app/Icons/ProductBuiltInIcons.h index a63b427c..121b6caf 100644 --- a/new_editor/app/Icons/ProductBuiltInIcons.h +++ b/new_editor/app/Icons/ProductBuiltInIcons.h @@ -5,7 +5,6 @@ #include #include -#include #include namespace XCEngine::UI::Editor::App { @@ -18,21 +17,14 @@ enum class ProductBuiltInIconKind : std::uint8_t { class ProductBuiltInIcons { public: - void Initialize( - Host::NativeRenderer& renderer, - const std::filesystem::path& repoRoot); + void Initialize(Host::NativeRenderer& renderer); void Shutdown(); const ::XCEngine::UI::UITextureHandle& Resolve(ProductBuiltInIconKind kind) const; const std::string& GetLastError() const; private: - std::filesystem::path ResolveFolderIconPath() const; - std::filesystem::path ResolveGameObjectIconPath() const; - std::filesystem::path ResolveSceneIconPath() const; - Host::NativeRenderer* m_renderer = nullptr; - std::filesystem::path m_repoRoot = {}; ::XCEngine::UI::UITextureHandle m_folderIcon = {}; ::XCEngine::UI::UITextureHandle m_gameObjectIcon = {}; ::XCEngine::UI::UITextureHandle m_sceneIcon = {}; diff --git a/new_editor/app/Panels/ProductConsolePanel.cpp b/new_editor/app/Panels/ProductConsolePanel.cpp index 39dd7145..899c1043 100644 --- a/new_editor/app/Panels/ProductConsolePanel.cpp +++ b/new_editor/app/Panels/ProductConsolePanel.cpp @@ -19,9 +19,9 @@ constexpr float kPadding = 8.0f; constexpr float kLineHeight = 18.0f; constexpr float kFontSize = 11.0f; -constexpr UIColor kSurfaceColor(0.205f, 0.205f, 0.205f, 1.0f); -constexpr UIColor kTextColor(0.840f, 0.840f, 0.840f, 1.0f); -constexpr UIColor kChannelColor(0.640f, 0.640f, 0.640f, 1.0f); +constexpr UIColor kSurfaceColor(0.10f, 0.10f, 0.10f, 1.0f); +constexpr UIColor kTextColor(0.860f, 0.860f, 0.860f, 1.0f); +constexpr UIColor kChannelColor(0.660f, 0.660f, 0.660f, 1.0f); constexpr UIColor kEmptyColor(0.580f, 0.580f, 0.580f, 1.0f); float ResolveTextTop(float rectY, float rectHeight, float fontSize) { diff --git a/new_editor/app/Panels/ProductInspectorPanel.cpp b/new_editor/app/Panels/ProductInspectorPanel.cpp index 51320c12..ae6baa46 100644 --- a/new_editor/app/Panels/ProductInspectorPanel.cpp +++ b/new_editor/app/Panels/ProductInspectorPanel.cpp @@ -24,13 +24,13 @@ constexpr float kSubtitleFontSize = 11.0f; constexpr float kSectionTitleFontSize = 11.0f; constexpr float kRowFontSize = 11.0f; -constexpr UIColor kSurfaceColor(0.205f, 0.205f, 0.205f, 1.0f); -constexpr UIColor kSectionHeaderColor(0.225f, 0.225f, 0.225f, 1.0f); -constexpr UIColor kSectionBodyColor(0.215f, 0.215f, 0.215f, 1.0f); -constexpr UIColor kTitleColor(0.910f, 0.910f, 0.910f, 1.0f); -constexpr UIColor kSubtitleColor(0.650f, 0.650f, 0.650f, 1.0f); -constexpr UIColor kLabelColor(0.700f, 0.700f, 0.700f, 1.0f); -constexpr UIColor kValueColor(0.860f, 0.860f, 0.860f, 1.0f); +constexpr UIColor kSurfaceColor(0.10f, 0.10f, 0.10f, 1.0f); +constexpr UIColor kSectionHeaderColor(0.12f, 0.12f, 0.12f, 1.0f); +constexpr UIColor kSectionBodyColor(0.11f, 0.11f, 0.11f, 1.0f); +constexpr UIColor kTitleColor(0.930f, 0.930f, 0.930f, 1.0f); +constexpr UIColor kSubtitleColor(0.640f, 0.640f, 0.640f, 1.0f); +constexpr UIColor kLabelColor(0.720f, 0.720f, 0.720f, 1.0f); +constexpr UIColor kValueColor(0.880f, 0.880f, 0.880f, 1.0f); float ResolveTextTop(float rectY, float rectHeight, float fontSize) { const float lineHeight = fontSize * 1.6f; diff --git a/new_editor/app/Panels/ProductProjectPanel.cpp b/new_editor/app/Panels/ProductProjectPanel.cpp index 8df33e4e..6b1e79bf 100644 --- a/new_editor/app/Panels/ProductProjectPanel.cpp +++ b/new_editor/app/Panels/ProductProjectPanel.cpp @@ -52,17 +52,17 @@ constexpr float kGridPreviewHeight = 54.0f; constexpr float kHeaderFontSize = 12.0f; constexpr float kTileLabelFontSize = 11.0f; -constexpr UIColor kSurfaceColor(0.200f, 0.200f, 0.200f, 1.0f); -constexpr UIColor kPaneColor(0.205f, 0.205f, 0.205f, 1.0f); -constexpr UIColor kHeaderColor(0.215f, 0.215f, 0.215f, 1.0f); -constexpr UIColor kTextPrimary(0.830f, 0.830f, 0.830f, 1.0f); -constexpr UIColor kTextStrong(0.910f, 0.910f, 0.910f, 1.0f); -constexpr UIColor kTextMuted(0.560f, 0.560f, 0.560f, 1.0f); -constexpr UIColor kTileHoverColor(0.245f, 0.245f, 0.245f, 1.0f); -constexpr UIColor kTileSelectedColor(0.300f, 0.300f, 0.300f, 1.0f); -constexpr UIColor kTilePreviewFillColor(0.700f, 0.700f, 0.700f, 1.0f); -constexpr UIColor kTilePreviewShadeColor(0.610f, 0.610f, 0.610f, 1.0f); -constexpr UIColor kTilePreviewOutlineColor(0.860f, 0.860f, 0.860f, 0.35f); +constexpr UIColor kSurfaceColor(0.10f, 0.10f, 0.10f, 1.0f); +constexpr UIColor kPaneColor(0.11f, 0.11f, 0.11f, 1.0f); +constexpr UIColor kHeaderColor(0.12f, 0.12f, 0.12f, 1.0f); +constexpr UIColor kTextPrimary(0.840f, 0.840f, 0.840f, 1.0f); +constexpr UIColor kTextStrong(0.930f, 0.930f, 0.930f, 1.0f); +constexpr UIColor kTextMuted(0.580f, 0.580f, 0.580f, 1.0f); +constexpr UIColor kTileHoverColor(0.14f, 0.14f, 0.14f, 1.0f); +constexpr UIColor kTileSelectedColor(0.17f, 0.17f, 0.17f, 1.0f); +constexpr UIColor kTilePreviewFillColor(0.20f, 0.20f, 0.20f, 1.0f); +constexpr UIColor kTilePreviewShadeColor(0.15f, 0.15f, 0.15f, 1.0f); +constexpr UIColor kTilePreviewOutlineColor(0.920f, 0.920f, 0.920f, 0.25f); bool ContainsPoint(const UIRect& rect, const UIPoint& point) { return point.x >= rect.x && diff --git a/new_editor/app/Panels/ProductTreeViewStyle.h b/new_editor/app/Panels/ProductTreeViewStyle.h index 0e2a6d20..bff7c4b4 100644 --- a/new_editor/app/Panels/ProductTreeViewStyle.h +++ b/new_editor/app/Panels/ProductTreeViewStyle.h @@ -4,11 +4,11 @@ namespace XCEngine::UI::Editor::App { -inline constexpr ::XCEngine::UI::UIColor kProductTreeSurfaceColor(0.205f, 0.205f, 0.205f, 1.0f); -inline constexpr ::XCEngine::UI::UIColor kProductTreeHoverColor(0.245f, 0.245f, 0.245f, 1.0f); -inline constexpr ::XCEngine::UI::UIColor kProductTreeSelectedColor(0.300f, 0.300f, 0.300f, 1.0f); -inline constexpr ::XCEngine::UI::UIColor kProductTreeDisclosureColor(0.560f, 0.560f, 0.560f, 1.0f); -inline constexpr ::XCEngine::UI::UIColor kProductTreeTextColor(0.830f, 0.830f, 0.830f, 1.0f); +inline constexpr ::XCEngine::UI::UIColor kProductTreeSurfaceColor(0.10f, 0.10f, 0.10f, 1.0f); +inline constexpr ::XCEngine::UI::UIColor kProductTreeHoverColor(0.13f, 0.13f, 0.13f, 1.0f); +inline constexpr ::XCEngine::UI::UIColor kProductTreeSelectedColor(0.16f, 0.16f, 0.16f, 1.0f); +inline constexpr ::XCEngine::UI::UIColor kProductTreeDisclosureColor(0.620f, 0.620f, 0.620f, 1.0f); +inline constexpr ::XCEngine::UI::UIColor kProductTreeTextColor(0.900f, 0.900f, 0.900f, 1.0f); inline Widgets::UIEditorTreeViewMetrics BuildProductTreeViewMetrics() { Widgets::UIEditorTreeViewMetrics metrics = {}; diff --git a/new_editor/app/Workspace/ProductEditorWorkspace.cpp b/new_editor/app/Workspace/ProductEditorWorkspace.cpp index 55f3a1a7..03b4a13c 100644 --- a/new_editor/app/Workspace/ProductEditorWorkspace.cpp +++ b/new_editor/app/Workspace/ProductEditorWorkspace.cpp @@ -220,7 +220,7 @@ std::vector FilterHostedContentInputEventsForShellOwnership( void ProductEditorWorkspace::Initialize( const std::filesystem::path& repoRoot, Host::NativeRenderer& renderer) { - m_builtInIcons.Initialize(renderer, repoRoot); + m_builtInIcons.Initialize(renderer); m_hierarchyPanel.SetBuiltInIcons(&m_builtInIcons); m_projectPanel.SetBuiltInIcons(&m_builtInIcons); m_projectPanel.SetTextMeasurer(&renderer); diff --git a/new_editor/include/XCEditor/Shell/UIEditorMenuBar.h b/new_editor/include/XCEditor/Shell/UIEditorMenuBar.h index 145c243a..20982c32 100644 --- a/new_editor/include/XCEditor/Shell/UIEditorMenuBar.h +++ b/new_editor/include/XCEditor/Shell/UIEditorMenuBar.h @@ -30,7 +30,7 @@ struct UIEditorMenuBarMetrics { float horizontalInset = 0.0f; float verticalInset = 2.0f; float buttonGap = 1.0f; - float buttonPaddingX = 4.0f; + float buttonPaddingX = 7.0f; float labelFontSize = 13.0f; float estimatedGlyphWidth = 6.5f; float labelInsetY = -1.5f; diff --git a/new_editor/resources/Icons/folder_icon.png b/new_editor/resources/Icons/folder_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..55d061ce19eb02667d2109f894c953c78360c6ba GIT binary patch literal 270 zcmV+p0rCEcP)kdg0002hNkl7G6M!b!>XQf4-X;51gEfQB5;M1& literal 0 HcmV?d00001 diff --git a/new_editor/resources/Icons/gameobject_icon.png b/new_editor/resources/Icons/gameobject_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..39f08e89b074b550419b718a56369805104a511f GIT binary patch literal 741 zcmVkdg00084NklLw8 zVr!%gDa33HE>x6Y(u#Cb{Fi7nnmp&;B>p6GPZz<|naspdP`~B*c{txW?{_}weV?F` zW2$y`t*@7Yq4d>dGp`A-dbN0)T9lQ927)dPgi)0MTcK9psSQf$wgx1%XoU*89Gp;Z zczaR6RBCpe@6dN@R-)nHSM`K9C2Q7J|6c1>R)G9On*)Y~yroxw}r++C~m>2WOUU%N02}i1Wbq^YN>O#;3NA ze{lQpg{4Na25pg4r`5rS&x6GQ*&8~qyOM9VhX1KKMwsO(4ji@hUI8+hvd`@};5Z}X z<|~kt(zx>K(GqodfAouewjeoeUlfk}Y2U3t{hBNqKRHGjrD;0NH}vuZ=brs!E9aAI zt;J3fNN|S8)A(9KwI=QGcCD0jEjXs`@X;G6-9mjL=~ifO^>_Xc X>q)hk2U|pJ00000NkvXXu0mjfW;$lV literal 0 HcmV?d00001 diff --git a/new_editor/resources/Icons/logo.ico b/new_editor/resources/Icons/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..b2b11b88b4988e036ef7c45a763a1b681c2e2df2 GIT binary patch literal 19543 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�yM11~{Gn)-Ld*WLPD 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 E2U~tM!Tahpr|Mj$$Ah9 zDS{$G=xrf`>c#LaA(99JeTaPMkALD43$nyUA(kX9>87oE^?L3-ch3C&Pt4sj*VAox zy+TkA`@!79o%w#>@0;JuoHKLg%wiV*H-r%8mTg|y=Js-WQSt}E-n|25Onk<6+1S1? zolr8{+h0XLoWH@$2F+|y2;sU$qp>&z_lV3L8XB6H{)7+~=6QY>06gxTd)9mZ7y#T+ z;rGV>6R~vh*=RJ@h7jH}vyYkiBSinw#KgqaRZcVze`>X%`ON-NMBE`F2Swx}bD4r`h-93?I*%E+an+P9E+^HbKBSn$F zaP;WWh1EP$A`P}$jfa@&rzFCNBNy@uYZ7m4Y-}-l|1Jwt;;6_U!Z?hD+b<%+Dl*ZH zCpwAfw~UUCF1W0LMDX5kWul8wz*GYfd}21a6wbLfgeQ}$h!Eld@BNl6%T_i|omvXb z<|^;p%gj8SOc27Mk&%%_DNk?iF48)mJ$v>VMBJ&W7zIT5oOAi>?RNVKBI?XeMT`LU z_$<4&vGm^iVrSe`aoo&q72CoH)le_+lnn?kcc6P1&&f|>TjH77)aqHqLoAi!zto=DL`puoYu5twe!H2uPFY3H6z$eqakDXz#6DG32H0(8 zH}~p9v|6pzs{E;$9YOEkiQkvlKdp)CTIE@`nE=jorWz|i^jW=Lzcw}m*p;easz8We z0KkTJyM5F6`1qi6Zh2AUn?>krRqdE%#P6~!yFTUV&D}woeZBtYy^MG`C1Ic+opb9F zFUztOM6@T3N2uy=0C1ql^UsOspa`Gn#xtM5qIiDBJ3^Yh&$5+-eqUEuR2%zy?+Q zP*sLibxc%GtLkwTImFEG7e(=4CCAjstH`qPCEomsR;zVqt6pDim+k`H;IdlXYQ%j( z>ZtT3$d*iPd(*;l0Uqy9e_k}dOE4f%!_~|0sckC=?@t@-_ XcZCi2VE0t700000NkvXXu0mjfO}9gI literal 0 HcmV?d00001 diff --git a/new_editor/resources/Icons/logo_icon.png b/new_editor/resources/Icons/logo_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b9760f6d744f1108c4774a496512e8d341253bb3 GIT binary patch literal 926 zcmV;P17ZA$P)%O0Ybzaiw5Lqb*% zJm}F~JR~007%&LJq6D&ziQ{hfR9C-O?^X4a>ggKW*t;2%;AtNWHPrk1z0c|-*`{s! zzeq%sh;+kmadELbfqX|qda|_CtM%fk9vMi|dcP1HcDB-;1b7l10Kh>Jd4Wh?G{!t% z^E#UuG{zi7#50I^2?4IKwda}f^(Ygfe~{x!AkVY+MMS*ga0ukt2Q|Ofl-t30j=vUf+|BIqg0CP1cJ0fPHJj=2}HGe9cS(Y7Vrn@76u5#p}|bH`j7 zGkm*gyOkCes=BE(O`l}4x4m;t%2E*EJCR#E0`fFXpCW7jEWMY~J0WZDA>!F0%TDBZ ze%KbpJJ#B3wPP0m1)T>*9+7FSU-sUGs4*BZMt>Ua5#UB0X~|4Ci}m#bZ2=(S#UMw7 z-wy_Z{q?kL-RZHO0Onj>FGc{w!h91WVWN9xFxVe;vMk#pA~Q`pM8*8d%1TupnPj{w zbW2OU(3uuPnnf%^RX>YZb)DAfsVGZCr@i+B@BFU}a5CtV<%8s6-`+RE*Ng?_()|iG!JlVx27% zUsfrGkm@pwjPu@0nhsvwEY(f@D3kmbr^e`yV{=&qi$(EEm|O3hC$e{j!{7Ecbawaq z{h4N&i0Gv-niDx6Z?KJxBTPh0WUCDZ<`b>;J|;>-SC8sxuZO!fI{@ah8gyT4Jy+Mf zy|j_Jwzjs@Lh)0W)vzcC;Rg|Uq5_oXZ`1}W=Va||0QfK%2Y{y$&6{N5>w4D1*daiA zu$hTXqcu9aFfwk@F{9S{xe@=?j@tRV&N-^u*pId(0)$zIf2>UBycrJPYTDk^X_4pe zHI=eWBL%Nz$6d*A<%0x7#GX( z@^Ye-a&3w+19ch$g3)&Q`+xaRk#5sAC67pd0S}P({iWlJ!vFvP07*qoM6N<$f{G}( Awg3PC literal 0 HcmV?d00001 diff --git a/new_editor/resources/Icons/scene_icon.png b/new_editor/resources/Icons/scene_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b9760f6d744f1108c4774a496512e8d341253bb3 GIT binary patch literal 926 zcmV;P17ZA$P)%O0Ybzaiw5Lqb*% zJm}F~JR~007%&LJq6D&ziQ{hfR9C-O?^X4a>ggKW*t;2%;AtNWHPrk1z0c|-*`{s! zzeq%sh;+kmadELbfqX|qda|_CtM%fk9vMi|dcP1HcDB-;1b7l10Kh>Jd4Wh?G{!t% z^E#UuG{zi7#50I^2?4IKwda}f^(Ygfe~{x!AkVY+MMS*ga0ukt2Q|Ofl-t30j=vUf+|BIqg0CP1cJ0fPHJj=2}HGe9cS(Y7Vrn@76u5#p}|bH`j7 zGkm*gyOkCes=BE(O`l}4x4m;t%2E*EJCR#E0`fFXpCW7jEWMY~J0WZDA>!F0%TDBZ ze%KbpJJ#B3wPP0m1)T>*9+7FSU-sUGs4*BZMt>Ua5#UB0X~|4Ci}m#bZ2=(S#UMw7 z-wy_Z{q?kL-RZHO0Onj>FGc{w!h91WVWN9xFxVe;vMk#pA~Q`pM8*8d%1TupnPj{w zbW2OU(3uuPnnf%^RX>YZb)DAfsVGZCr@i+B@BFU}a5CtV<%8s6-`+RE*Ng?_()|iG!JlVx27% zUsfrGkm@pwjPu@0nhsvwEY(f@D3kmbr^e`yV{=&qi$(EEm|O3hC$e{j!{7Ecbawaq z{h4N&i0Gv-niDx6Z?KJxBTPh0WUCDZ<`b>;J|;>-SC8sxuZO!fI{@ah8gyT4Jy+Mf zy|j_Jwzjs@Lh)0W)vzcC;Rg|Uq5_oXZ`1}W=Va||0QfK%2Y{y$&6{N5>w4D1*daiA zu$hTXqcu9aFfwk@F{9S{xe@=?j@tRV&N-^u*pId(0)$zIf2>UBycrJPYTDk^X_4pe zHI=eWBL%Nz$6d*A<%0x7#GX( z@^Ye-a&3w+19ch$g3)&Q`+xaRk#5sAC67pd0S}P({iWlJ!vFvP07*qoM6N<$f{G}( Awg3PC literal 0 HcmV?d00001 diff --git a/new_editor/src/Foundation/UIEditorTheme.cpp b/new_editor/src/Foundation/UIEditorTheme.cpp index 1b5e467e..f438553d 100644 --- a/new_editor/src/Foundation/UIEditorTheme.cpp +++ b/new_editor/src/Foundation/UIEditorTheme.cpp @@ -4,12 +4,208 @@ namespace XCEngine::UI::Editor { namespace { +using ::XCEngine::UI::UIColor; + template const TValue& GetDefaultValue() { static const TValue value = {}; return value; } +Widgets::UIEditorMenuBarPalette BuildMenuBarPalette() { + Widgets::UIEditorMenuBarPalette palette = {}; + palette.barColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.buttonColor = UIColor(0.0f, 0.0f, 0.0f, 0.0f); + palette.buttonHoveredColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.buttonOpenColor = UIColor(0.17f, 0.17f, 0.17f, 1.0f); + palette.borderColor = UIColor(0.0f, 0.0f, 0.0f, 0.0f); + palette.focusedBorderColor = UIColor(0.0f, 0.0f, 0.0f, 0.0f); + palette.openBorderColor = UIColor(0.0f, 0.0f, 0.0f, 0.0f); + palette.textPrimary = UIColor(0.93f, 0.93f, 0.93f, 1.0f); + palette.textMuted = UIColor(0.72f, 0.72f, 0.72f, 1.0f); + palette.textDisabled = UIColor(0.45f, 0.45f, 0.45f, 1.0f); + return palette; +} + +Widgets::UIEditorMenuPopupPalette BuildMenuPopupPalette() { + Widgets::UIEditorMenuPopupPalette palette = {}; + palette.popupColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.borderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.itemHoverColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.itemOpenColor = UIColor(0.17f, 0.17f, 0.17f, 1.0f); + palette.separatorColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.textPrimary = UIColor(0.93f, 0.93f, 0.93f, 1.0f); + palette.textMuted = UIColor(0.68f, 0.68f, 0.68f, 1.0f); + palette.textDisabled = UIColor(0.45f, 0.45f, 0.45f, 1.0f); + palette.glyphColor = UIColor(0.90f, 0.90f, 0.90f, 1.0f); + return palette; +} + +Widgets::UIEditorListViewPalette BuildListViewPalette() { + Widgets::UIEditorListViewPalette palette = {}; + palette.surfaceColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.borderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.focusedBorderColor = UIColor(0.18f, 0.18f, 0.18f, 1.0f); + palette.rowHoverColor = UIColor(0.13f, 0.13f, 0.13f, 1.0f); + palette.rowSelectedColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.rowSelectedFocusedColor = UIColor(0.18f, 0.18f, 0.18f, 1.0f); + palette.primaryTextColor = UIColor(0.93f, 0.93f, 0.93f, 1.0f); + palette.secondaryTextColor = UIColor(0.67f, 0.67f, 0.67f, 1.0f); + return palette; +} + +Widgets::UIEditorTreeViewPalette BuildTreeViewPalette() { + Widgets::UIEditorTreeViewPalette palette = {}; + palette.surfaceColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.borderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.focusedBorderColor = UIColor(0.18f, 0.18f, 0.18f, 1.0f); + palette.rowHoverColor = UIColor(0.13f, 0.13f, 0.13f, 1.0f); + palette.rowSelectedColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.rowSelectedFocusedColor = UIColor(0.18f, 0.18f, 0.18f, 1.0f); + palette.disclosureColor = UIColor(0.62f, 0.62f, 0.62f, 1.0f); + palette.textColor = UIColor(0.92f, 0.92f, 0.92f, 1.0f); + return palette; +} + +Widgets::UIEditorScrollViewPalette BuildScrollViewPalette() { + Widgets::UIEditorScrollViewPalette palette = {}; + palette.surfaceColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.borderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.focusedBorderColor = UIColor(0.18f, 0.18f, 0.18f, 1.0f); + palette.scrollbarTrackColor = UIColor(0.08f, 0.08f, 0.08f, 1.0f); + palette.scrollbarThumbColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.scrollbarThumbHoverColor = UIColor(0.17f, 0.17f, 0.17f, 1.0f); + palette.scrollbarThumbActiveColor = UIColor(0.20f, 0.20f, 0.20f, 1.0f); + return palette; +} + +Widgets::UIEditorTabStripPalette BuildTabStripPalette() { + Widgets::UIEditorTabStripPalette palette = {}; + palette.stripBackgroundColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.headerBackgroundColor = UIColor(0.11f, 0.11f, 0.11f, 1.0f); + palette.contentBackgroundColor = UIColor(0.12f, 0.12f, 0.12f, 1.0f); + palette.stripBorderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.headerContentSeparatorColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.focusedBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.tabColor = UIColor(0.12f, 0.12f, 0.12f, 1.0f); + palette.tabHoveredColor = UIColor(0.15f, 0.15f, 0.15f, 1.0f); + palette.tabSelectedColor = UIColor(0.12f, 0.12f, 0.12f, 1.0f); + palette.tabBorderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.tabHoveredBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.tabSelectedBorderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.textPrimary = UIColor(0.92f, 0.92f, 0.92f, 1.0f); + palette.textSecondary = UIColor(0.72f, 0.72f, 0.72f, 1.0f); + palette.textMuted = UIColor(0.58f, 0.58f, 0.58f, 1.0f); + palette.closeButtonColor = UIColor(0.12f, 0.12f, 0.12f, 1.0f); + palette.closeButtonHoveredColor = UIColor(0.15f, 0.15f, 0.15f, 1.0f); + palette.closeButtonBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.closeGlyphColor = UIColor(0.85f, 0.85f, 0.85f, 1.0f); + palette.reorderPreviewColor = UIColor(0.92f, 0.92f, 0.92f, 0.90f); + return palette; +} + +Widgets::UIEditorStatusBarPalette BuildStatusBarPalette() { + Widgets::UIEditorStatusBarPalette palette = {}; + palette.surfaceColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.borderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.focusedBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.segmentColor = UIColor(0.12f, 0.12f, 0.12f, 1.0f); + palette.segmentHoveredColor = UIColor(0.15f, 0.15f, 0.15f, 1.0f); + palette.segmentActiveColor = UIColor(0.18f, 0.18f, 0.18f, 1.0f); + palette.segmentBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.separatorColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.textPrimary = UIColor(0.90f, 0.90f, 0.90f, 1.0f); + palette.textMuted = UIColor(0.64f, 0.64f, 0.64f, 1.0f); + palette.textAccent = UIColor(0.94f, 0.94f, 0.94f, 1.0f); + return palette; +} + +Widgets::UIEditorPanelFramePalette BuildPanelFramePalette() { + Widgets::UIEditorPanelFramePalette palette = {}; + palette.surfaceColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.headerColor = UIColor(0.11f, 0.11f, 0.11f, 1.0f); + palette.footerColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.borderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.hoveredBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.activeBorderColor = UIColor(0.18f, 0.18f, 0.18f, 1.0f); + palette.focusedBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.textPrimary = UIColor(0.92f, 0.92f, 0.92f, 1.0f); + palette.textSecondary = UIColor(0.68f, 0.68f, 0.68f, 1.0f); + palette.textMuted = UIColor(0.58f, 0.58f, 0.58f, 1.0f); + palette.actionButtonColor = UIColor(0.12f, 0.12f, 0.12f, 1.0f); + palette.actionButtonHoveredColor = UIColor(0.15f, 0.15f, 0.15f, 1.0f); + palette.actionButtonSelectedColor = UIColor(0.18f, 0.18f, 0.18f, 1.0f); + palette.actionButtonBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.actionGlyphColor = UIColor(0.84f, 0.84f, 0.84f, 1.0f); + return palette; +} + +Widgets::UIEditorDockHostPalette BuildDockHostPalette() { + Widgets::UIEditorDockHostPalette palette = {}; + palette.tabStripPalette = BuildTabStripPalette(); + palette.panelFramePalette = BuildPanelFramePalette(); + palette.splitterColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.splitterHoveredColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.splitterActiveColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.placeholderTitleColor = UIColor(0.92f, 0.92f, 0.92f, 1.0f); + palette.placeholderTextColor = UIColor(0.70f, 0.70f, 0.70f, 1.0f); + palette.placeholderMutedColor = UIColor(0.58f, 0.58f, 0.58f, 1.0f); + palette.dropPreviewFillColor = UIColor(0.92f, 0.92f, 0.92f, 0.08f); + palette.dropPreviewBorderColor = UIColor(0.96f, 0.96f, 0.96f, 0.70f); + return palette; +} + +Widgets::UIEditorViewportSlotPalette BuildViewportSlotPalette() { + Widgets::UIEditorViewportSlotPalette palette = {}; + palette.frameColor = UIColor(0.09f, 0.09f, 0.09f, 1.0f); + palette.topBarColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.surfaceColor = UIColor(0.08f, 0.08f, 0.08f, 1.0f); + palette.surfaceHoverOverlayColor = UIColor(0.18f, 0.18f, 0.18f, 0.12f); + palette.surfaceActiveOverlayColor = UIColor(0.22f, 0.22f, 0.22f, 0.10f); + palette.captureOverlayColor = UIColor(0.92f, 0.92f, 0.92f, 0.06f); + palette.borderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.focusedBorderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.surfaceBorderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.surfaceHoveredBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.surfaceActiveBorderColor = UIColor(0.18f, 0.18f, 0.18f, 1.0f); + palette.surfaceCapturedBorderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.toolColor = UIColor(0.12f, 0.12f, 0.12f, 1.0f); + palette.toolHoveredColor = UIColor(0.15f, 0.15f, 0.15f, 1.0f); + palette.toolSelectedColor = UIColor(0.18f, 0.18f, 0.18f, 1.0f); + palette.toolDisabledColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.toolBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.textPrimary = UIColor(0.92f, 0.92f, 0.92f, 1.0f); + palette.textSecondary = UIColor(0.68f, 0.68f, 0.68f, 1.0f); + palette.textMuted = UIColor(0.58f, 0.58f, 0.58f, 1.0f); + palette.imageTint = UIColor(1.0f, 1.0f, 1.0f, 1.0f); + palette.statusBarPalette = BuildStatusBarPalette(); + return palette; +} + +UIEditorShellComposePalette BuildShellComposePalette() { + UIEditorShellComposePalette palette = {}; + palette.surfaceColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.surfaceBorderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.menuBarPalette = BuildMenuBarPalette(); + palette.toolbarPalette.barColor = UIColor(0.10f, 0.10f, 0.10f, 1.0f); + palette.toolbarPalette.groupColor = UIColor(0.11f, 0.11f, 0.11f, 1.0f); + palette.toolbarPalette.groupBorderColor = UIColor(0.14f, 0.14f, 0.14f, 1.0f); + palette.toolbarPalette.buttonColor = UIColor(0.12f, 0.12f, 0.12f, 1.0f); + palette.toolbarPalette.buttonBorderColor = UIColor(0.16f, 0.16f, 0.16f, 1.0f); + palette.toolbarPalette.iconColor = UIColor(0.88f, 0.88f, 0.88f, 1.0f); + palette.dockHostPalette = BuildDockHostPalette(); + palette.viewportPalette = BuildViewportSlotPalette(); + palette.statusBarPalette = BuildStatusBarPalette(); + return palette; +} + +UIEditorShellInteractionPalette BuildShellInteractionPalette() { + UIEditorShellInteractionPalette palette = {}; + palette.shellPalette = BuildShellComposePalette(); + palette.popupPalette = BuildMenuPopupPalette(); + return palette; +} + #define XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(Name, Type) \ const Type& ResolveUIEditor##Name() { \ return GetDefaultValue(); \ @@ -38,32 +234,80 @@ XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ObjectFieldPalette, Widgets::UIEditorObjectF XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(AssetFieldMetrics, Widgets::UIEditorAssetFieldMetrics) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(AssetFieldPalette, Widgets::UIEditorAssetFieldPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(MenuPopupMetrics, Widgets::UIEditorMenuPopupMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(MenuPopupPalette, Widgets::UIEditorMenuPopupPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ListViewMetrics, Widgets::UIEditorListViewMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ListViewPalette, Widgets::UIEditorListViewPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(TreeViewMetrics, Widgets::UIEditorTreeViewMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(TreeViewPalette, Widgets::UIEditorTreeViewPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ScrollViewMetrics, Widgets::UIEditorScrollViewMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ScrollViewPalette, Widgets::UIEditorScrollViewPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(TabStripMetrics, Widgets::UIEditorTabStripMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(TabStripPalette, Widgets::UIEditorTabStripPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(MenuBarMetrics, Widgets::UIEditorMenuBarMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(MenuBarPalette, Widgets::UIEditorMenuBarPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(StatusBarMetrics, Widgets::UIEditorStatusBarMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(StatusBarPalette, Widgets::UIEditorStatusBarPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(PanelFrameMetrics, Widgets::UIEditorPanelFrameMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(PanelFramePalette, Widgets::UIEditorPanelFramePalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(DockHostMetrics, Widgets::UIEditorDockHostMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(DockHostPalette, Widgets::UIEditorDockHostPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ViewportSlotMetrics, Widgets::UIEditorViewportSlotMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ViewportSlotPalette, Widgets::UIEditorViewportSlotPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ShellComposeMetrics, UIEditorShellComposeMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ShellComposePalette, UIEditorShellComposePalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ShellInteractionMetrics, UIEditorShellInteractionMetrics) -XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(ShellInteractionPalette, UIEditorShellInteractionPalette) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(PropertyGridMetrics, Widgets::UIEditorPropertyGridMetrics) XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS(PropertyGridPalette, Widgets::UIEditorPropertyGridPalette) +const Widgets::UIEditorMenuPopupPalette& ResolveUIEditorMenuPopupPalette() { + static const Widgets::UIEditorMenuPopupPalette palette = BuildMenuPopupPalette(); + return palette; +} + +const Widgets::UIEditorListViewPalette& ResolveUIEditorListViewPalette() { + static const Widgets::UIEditorListViewPalette palette = BuildListViewPalette(); + return palette; +} + +const Widgets::UIEditorTreeViewPalette& ResolveUIEditorTreeViewPalette() { + static const Widgets::UIEditorTreeViewPalette palette = BuildTreeViewPalette(); + return palette; +} + +const Widgets::UIEditorScrollViewPalette& ResolveUIEditorScrollViewPalette() { + static const Widgets::UIEditorScrollViewPalette palette = BuildScrollViewPalette(); + return palette; +} + +const Widgets::UIEditorTabStripPalette& ResolveUIEditorTabStripPalette() { + static const Widgets::UIEditorTabStripPalette palette = BuildTabStripPalette(); + return palette; +} + +const Widgets::UIEditorMenuBarPalette& ResolveUIEditorMenuBarPalette() { + static const Widgets::UIEditorMenuBarPalette palette = BuildMenuBarPalette(); + return palette; +} + +const Widgets::UIEditorStatusBarPalette& ResolveUIEditorStatusBarPalette() { + static const Widgets::UIEditorStatusBarPalette palette = BuildStatusBarPalette(); + return palette; +} + +const Widgets::UIEditorPanelFramePalette& ResolveUIEditorPanelFramePalette() { + static const Widgets::UIEditorPanelFramePalette palette = BuildPanelFramePalette(); + return palette; +} + +const Widgets::UIEditorDockHostPalette& ResolveUIEditorDockHostPalette() { + static const Widgets::UIEditorDockHostPalette palette = BuildDockHostPalette(); + return palette; +} + +const Widgets::UIEditorViewportSlotPalette& ResolveUIEditorViewportSlotPalette() { + static const Widgets::UIEditorViewportSlotPalette palette = BuildViewportSlotPalette(); + return palette; +} + +const UIEditorShellComposePalette& ResolveUIEditorShellComposePalette() { + static const UIEditorShellComposePalette palette = BuildShellComposePalette(); + return palette; +} + +const UIEditorShellInteractionPalette& ResolveUIEditorShellInteractionPalette() { + static const UIEditorShellInteractionPalette palette = BuildShellInteractionPalette(); + return palette; +} + #undef XCUIEDITOR_DEFINE_DEFAULT_ACCESSORS } // namespace XCEngine::UI::Editor diff --git a/new_editor/src/Widgets/UIEditorFieldRowLayout.cpp b/new_editor/src/Widgets/UIEditorFieldRowLayout.cpp index c4e59319..cdf4e6b5 100644 --- a/new_editor/src/Widgets/UIEditorFieldRowLayout.cpp +++ b/new_editor/src/Widgets/UIEditorFieldRowLayout.cpp @@ -18,7 +18,39 @@ bool AreEqual(float lhs, float rhs) { } // namespace const UIEditorInspectorFieldStyleTokens& GetUIEditorInspectorFieldStyleTokens() { - static const UIEditorInspectorFieldStyleTokens kTokens = {}; + static const UIEditorInspectorFieldStyleTokens kTokens = [] { + UIEditorInspectorFieldStyleTokens tokens = {}; + tokens.rowHoverColor = ::XCEngine::UI::UIColor(0.12f, 0.12f, 0.12f, 1.0f); + tokens.rowActiveColor = ::XCEngine::UI::UIColor(0.15f, 0.15f, 0.15f, 1.0f); + tokens.labelColor = ::XCEngine::UI::UIColor(0.78f, 0.78f, 0.78f, 1.0f); + tokens.valueColor = ::XCEngine::UI::UIColor(0.92f, 0.92f, 0.92f, 1.0f); + tokens.readOnlyValueColor = ::XCEngine::UI::UIColor(0.60f, 0.60f, 0.60f, 1.0f); + tokens.controlColor = ::XCEngine::UI::UIColor(0.12f, 0.12f, 0.12f, 1.0f); + tokens.controlHoverColor = ::XCEngine::UI::UIColor(0.15f, 0.15f, 0.15f, 1.0f); + tokens.controlEditingColor = ::XCEngine::UI::UIColor(0.18f, 0.18f, 0.18f, 1.0f); + tokens.controlReadOnlyColor = ::XCEngine::UI::UIColor(0.10f, 0.10f, 0.10f, 1.0f); + tokens.controlBorderColor = ::XCEngine::UI::UIColor(0.14f, 0.14f, 0.14f, 1.0f); + tokens.controlFocusedBorderColor = ::XCEngine::UI::UIColor(0.18f, 0.18f, 0.18f, 1.0f); + tokens.prefixColor = ::XCEngine::UI::UIColor(0.12f, 0.12f, 0.12f, 1.0f); + tokens.prefixBorderColor = ::XCEngine::UI::UIColor(0.15f, 0.15f, 0.15f, 1.0f); + tokens.popupColor = ::XCEngine::UI::UIColor(0.10f, 0.10f, 0.10f, 1.0f); + tokens.popupBorderColor = ::XCEngine::UI::UIColor(0.14f, 0.14f, 0.14f, 1.0f); + tokens.popupHeaderColor = ::XCEngine::UI::UIColor(0.11f, 0.11f, 0.11f, 1.0f); + tokens.popupTitleColor = ::XCEngine::UI::UIColor(0.93f, 0.93f, 0.93f, 1.0f); + tokens.popupTextColor = ::XCEngine::UI::UIColor(0.86f, 0.86f, 0.86f, 1.0f); + tokens.popupTextMutedColor = ::XCEngine::UI::UIColor(0.68f, 0.68f, 0.68f, 1.0f); + tokens.previewBorderColor = ::XCEngine::UI::UIColor(0.14f, 0.14f, 0.14f, 1.0f); + tokens.previewBaseColor = ::XCEngine::UI::UIColor(0.12f, 0.12f, 0.12f, 1.0f); + tokens.checkerLightColor = ::XCEngine::UI::UIColor(0.26f, 0.26f, 0.26f, 1.0f); + tokens.checkerDarkColor = ::XCEngine::UI::UIColor(0.16f, 0.16f, 0.16f, 1.0f); + tokens.sliderBorderColor = ::XCEngine::UI::UIColor(0.14f, 0.14f, 0.14f, 1.0f); + tokens.numericBoxColor = ::XCEngine::UI::UIColor(0.12f, 0.12f, 0.12f, 1.0f); + tokens.numericBoxBorderColor = ::XCEngine::UI::UIColor(0.14f, 0.14f, 0.14f, 1.0f); + tokens.numericBoxTextColor = ::XCEngine::UI::UIColor(0.92f, 0.92f, 0.92f, 1.0f); + tokens.closeButtonHoverColor = ::XCEngine::UI::UIColor(0.15f, 0.15f, 0.15f, 1.0f); + tokens.closeGlyphColor = ::XCEngine::UI::UIColor(0.85f, 0.85f, 0.85f, 1.0f); + return tokens; + }(); return kTokens; }