#pragma once #include "Containers/UnrealString.h" ////////////////////////////////////////////////////////////// // // ConsoleOutput // // This class stores the text that's in the unreal console. // It stores it as one great big string, which contains // newlines to denote line breaks. // // This class also contains a 'dirty' bit. Each time somebody // appends a line of text to the console, the dirty bit is // automatically set. The bit can be checked using 'IsDirty' // and cleared using 'ClearDirty'. This makes it so that // you don't have to update the unreal widget unless the // text has actually changed. // ////////////////////////////////////////////////////////////// class FlxConsoleOutput { private: FString Content; bool Dirty; // Truncate the console to a reasonable number of // lines. The length is hardwired. void Truncate(); // Add a newline if there isn't one. Returns true if it changed anything. bool MaybeAppendNewline(); // Append text. Returns true if it changed anything. bool MaybeAppendText(const FString& text); public: // Append a line of text to the console. void Append(const FString& text); // Append a line of text to the console on a line by itself. void AppendLine(const FString& text); // Get the console text as a string. const FString& Get() const { return Content; } // Return if the dirty flag is set. bool IsDirty() const { return Dirty; } // Clear the dirty flag. void ClearDirty() { Dirty = false; } };