#ifndef INK_H
#define INK_H

#include <Model/interfaz.h>
#include <Model/inktextoption.h>
#include <QVector>

/*!
 * \brief The Ink class. Represents Ink screens.
 */
class Ink : public Interfaz
{

;
public:

    /*!
     * \brief Ink constructor.
     */
    Ink();

    /*!
     * \brief addColor Adds color at the specified position.
     * \param position Position to add the color
     * \param color Color to be added.
     */
    void addColor(int position, QColor color);

    /*!
     * \brief getColor Returns the color at the specified position.
     * \param position Position of the color.
     * \return Color at the specified position.
     */
    QColor getColor(int position);

    /*!
     * \brief setNumberOfElements Resize the number of interface elements.
     * \param numberOfElements Number of elements in the interface.
     */
    void setNumberOfElements(int numberOfElements);

    /*!
     * \brief createByEdit Returns if the interfaces has been created by edition.
     * \return \c True if the interface is made by edition, \c false otherwise.
     */
    bool createByEdit();

    /*!
     * \brief getTextOption Returns the text option of the screen.
     * \return Text option.
     */
    InkTextOption getTextOption() const;

    /*!
     * \brief setTextOption Raplaces the text option.
     * \param value Text Option.
     */
    void setTextOption(const InkTextOption &value);        

    /*!
     * \brief isComplete Returns if the interface is complete.
     * \return \c True if the interface is complete, \c false otherwise.
     */
    bool isComplete();

    /*!
     * \brief getInkColors Returns the colors of the interface.
     * \return List of the interface colors.
     */
    QVector<QColor> *getInkColors() const;

    /*!
     * \brief createInkColors Create the interface color list.
     * \param number Size of the list.
     */
    void createInkColors(int number);

private:

    /*!
     * \brief textOption Specifies the text option of the interface.
     */
    InkTextOption textOption;

    /*!
     * \brief inkColors Interface color list.
     */
    QVector<QColor> *inkColors;
};

#endif // INK_H
