#pragma once

#include <filesystem>
#include <string>

class FontItem
{
public:
    FontItem(const std::string& faceName = "Arial", unsigned size = 16)
        : mFaceName(faceName),
          mSize(size)
    {

    }

    bool hasPath() const
    {
        return !mPath.empty();
    }

    const std::filesystem::path& getPath() const
    {
        return mPath;
    }

    void setPath(std::filesystem::path path)
    {
        mPath = path;
    }

    const std::string& getFaceName() const
    {
        return mFaceName;
    }

    unsigned getSize() const
    {
        return mSize;
    }

    bool operator==(const FontItem& rhs) const
    {
       return (mSize == rhs.mSize)
       && (mFaceName == rhs.mFaceName);
    }

    bool operator!=(const FontItem& rhs) const
    {
      return !operator==(rhs);
    }

private:
    unsigned mSize{24};
    std::string mFaceName;
    std::filesystem::path mPath;
};
