Files
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

50 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
class FTextLayout;
/**
* Interface used to get/set the raw text to/from a text layout
*/
class ITextLayoutMarshaller
{
public:
virtual ~ITextLayoutMarshaller() {}
/**
* Populate the text layout from the string
*/
virtual void SetText(const FString& SourceString, FTextLayout& TargetTextLayout) = 0;
/**
* Populate the string from the text layout
*/
virtual void GetText(FString& TargetString, const FTextLayout& SourceTextLayout) = 0;
/**
* Return true if the marshaller requires the text be updated "live" (eg, because it inserts formatting directly into the source text)
* Returning true will cause SetText to be called every time the source text is changed, which is costly, but required for things like syntax highlighting
*/
virtual bool RequiresLiveUpdate() const = 0;
/**
* Mark this text layout as dirty (eg, because some settings have changed), so that it will cause SetText to be called on the next Tick
*/
virtual void MakeDirty() = 0;
/**
* Mark this text layout as clean once it's been updated
*/
virtual void ClearDirty() = 0;
/**
* Is this text layout dirty? (eg, because some settings have changed)
* If so, you should call SetText on it to update the text layout
*/
virtual bool IsDirty() const = 0;
};