Files
XCEngine/new_editor/include/XCEditor/Fields/UIEditorTextFieldInteraction.h

42 lines
1.2 KiB
C
Raw Normal View History

2026-04-08 02:52:28 +08:00
#pragma once
#include <XCEditor/Fields/UIEditorEditableFieldCore.h>
2026-04-10 00:41:28 +08:00
#include <XCEditor/Fields/UIEditorTextField.h>
2026-04-08 02:52:28 +08:00
#include <string>
#include <vector>
namespace XCEngine::UI::Editor {
struct UIEditorTextFieldInteractionState {
UIEditorEditableFieldSession session = {};
2026-04-08 02:52:28 +08:00
Widgets::UIEditorTextFieldState textFieldState = {};
};
struct UIEditorTextFieldInteractionResult {
bool consumed = false;
bool focusChanged = false;
bool valueChanged = false;
bool editStarted = false;
bool editCommitted = false;
bool editCanceled = false;
Widgets::UIEditorTextFieldHitTarget hitTarget = {};
std::string valueBefore = {};
std::string valueAfter = {};
std::string committedText = {};
};
struct UIEditorTextFieldInteractionFrame {
Widgets::UIEditorTextFieldLayout layout = {};
UIEditorTextFieldInteractionResult result = {};
};
UIEditorTextFieldInteractionFrame UpdateUIEditorTextFieldInteraction(
UIEditorTextFieldInteractionState& state,
Widgets::UIEditorTextFieldSpec& spec,
const ::XCEngine::UI::UIRect& bounds,
const std::vector<::XCEngine::UI::UIInputEvent>& inputEvents,
const Widgets::UIEditorTextFieldMetrics& metrics = {});
} // namespace XCEngine::UI::Editor