#ifndef FLUID_LEVEL_INDICATOR_HPP_
#define FLUID_LEVEL_INDICATOR_HPP_

#include <Widget/Widget.hpp>

/**
 * @brief The fluid indicator widget such as from a barrel.
 */
class FluidLevelIndicator : public Widget
{
private:
    const std::string &m_fluidName;
    const int &m_amount;
    int m_capacity;

public:
    /**
     * @brief Construct a fluid level indicator.
     * 
     * @param fluidName Reference to the fluid name variable.
     * @param amount Reference to the amount variable.
     * @param capacity The capacity of the container.
     */
    FluidLevelIndicator(const std::string &fluidName, const int &amount, int capacity);

    virtual glm::ivec2 getMinSize() override;
    virtual void draw(GraphicsContext &context) override;
};

#endif