// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Core/Types/String.h"
#include "Engine/Core/Collections/Array.h"
///
/// Interface for GUI data object container.
///
class IGuiData
{
public:
///
/// The GUI data types.
///
enum class Type
{
Unknown,
Text,
Files
};
public:
///
/// Gets the data type.
///
/// The data type.
virtual Type GetType() const = 0;
///
/// Gets data value as text.
///
/// The text.
virtual String GetAsText() const = 0;
///
/// Gets data value as array of file paths.
///
/// An array to fill with paths.
virtual void GetAsFiles(Array* files) const = 0;
};