The Utility interface provides utility functions. It looks like this:

class UIMGUI_PUBLIC_API Utility
{
public:
    static void sanitiseFilepath(FString& str) noexcept;

    static void keyToText(FString& text, const uint16_t& key, bool bLong) noexcept;
    static FString keyToText(const uint16_t& key, bool bLong) noexcept;
    static void keyToText(FString& text, const InputAction& action, bool bLong) noexcept;
    static FString keyToText(const InputAction& action, bool bLong) noexcept;

    // DO NOT USE THIS, THIS IS ONLY HERE FOR INTERNAL REASONS!!! REALLY KNOW WHAT YOU'RE DOING WHEN USING THIS
    static Global& getGlobal() noexcept;

    static void removeConsole() noexcept;

    static FString toLower(String str) noexcept;
    static void toLower(FString& str) noexcept;

    static FString toUpper(String str) noexcept;
    static void toUpper(FString& str) noexcept;

    static TVector<FString> splitString(const FString& str, String token) noexcept;

    static void sleep(uint64_t milliseconds) noexcept;

    static KeyStringsArrType& getKeyStrings() noexcept;
};

Reference for the functions:

  1. toUpper - Converts a string to all uppercase characters
  2. toLower - Converts a string to all lowercase characters
  3. splitString - Splits a string
  4. removeConsole - Removes the console window on Windows
  5. getGlobal - Returns a reference to the internal global class, DO NOT TOUCH!!!
  6. keyToText - Converts a key code to text in short or long form for usage in UI
  7. sanitizeFilepath - Sanitizes file paths, such as replacing \ with / on Windows
  8. sleep - Puts the current thread to sleep for X milliseconds
  9. getKeyStrings - Returns the internal string table for each keyboard key. Don't use manually, instead use one of the keyToText functions

Event safety

The whole interface is flagged as event safe at Any time.

C API

The C API is severely downsized, by removing most string operation functions. It uses the standard C API development rules as defined here. It looks like this:

// Event Safety - Any time
UIMGUI_PUBLIC_API UImGui_String UImGui_Utility_sanitiseFilepath(UImGui_String str);

// Event Safety - Any time
UIMGUI_PUBLIC_API UImGui_String UImGui_Utility_keyToText(uint16_t key, bool bLong);

// Event Safety - Any time
UIMGUI_PUBLIC_API UImGui_String UImGui_Utility_keyToTextInputAction(UImGui_CInputAction* action, bool bLong);

// Event Safety - Any time
UIMGUI_PUBLIC_API void UImGui_Utility_removeConsole();

// Event Safety - Any time
// Sleep for X milliseconds
UIMGUI_PUBLIC_API void UImGui_Utility_sleep(uint64_t milliseconds);


UIMGUI_PUBLIC_API void UImGui_Utility_loadContext(void* context);

UIMGUI_PUBLIC_API UImGui_String UImGui_Utility_toLower(char* str);
UIMGUI_PUBLIC_API UImGui_String UImGui_Utility_toUpper(char* str);

// Event Safety - Any time
UIMGUI_PUBLIC_API UImGui_CGlobal* UImGui_Global_get(UImGui_CGlobal* parent);

Most functions in the C API are available, except for some that are considered internal and are not needed.