Files
XCEngine/editor/app/Windowing/Content/EditorUtilityWindowContentController.h

46 lines
1.6 KiB
C
Raw Normal View History

2026-04-25 16:46:01 +08:00
#pragma once
#include "Windowing/Content/EditorWindowContentController.h"
2026-04-25 16:46:01 +08:00
#include <XCEditor/Shell/UIEditorShellInteraction.h>
#include <XCEngine/UI/Types.h>
#include <memory>
namespace XCEngine::UI::Editor::App {
class EditorUtilityWindowPanel;
struct EditorUtilityWindowDescriptor;
class EditorUtilityWindowContentController final
: public EditorWindowContentController {
public:
EditorUtilityWindowContentController(
std::unique_ptr<EditorUtilityWindowPanel> panel,
const ::XCEngine::UI::UISize& minimumOuterSize);
~EditorUtilityWindowContentController() override;
2026-04-25 17:51:37 +08:00
EditorWindowContentCapabilities GetCapabilities() const override;
2026-04-25 16:46:01 +08:00
void Shutdown() override;
void ResetInteractionState() override;
EditorWindowFrameTransferRequests UpdateAndAppend(
const EditorWindowContentFrameContext& context,
::XCEngine::UI::UIDrawData& drawData) override;
const UIEditorShellInteractionFrame& GetShellFrame() const override;
const UIEditorShellInteractionState& GetShellInteractionState() const override;
::XCEngine::UI::UISize ResolveMinimumOuterSize() const override;
private:
std::unique_ptr<EditorUtilityWindowPanel> m_panel = {};
::XCEngine::UI::UISize m_minimumOuterSize = {};
UIEditorShellInteractionState m_shellInteractionState = {};
UIEditorShellInteractionFrame m_shellFrame = {};
bool m_windowFocused = true;
};
std::unique_ptr<EditorWindowContentController> CreateEditorUtilityWindowContentController(
const EditorUtilityWindowDescriptor& descriptor);
} // namespace XCEngine::UI::Editor::App