#ifndef BEFORESTART_H
#define BEFORESTART_H

#include <QWidget>

namespace Ui {
class BeforeStart;
}

/*!
 * \brief The BeforeStart class.
 */
class BeforeStart : public QWidget
{
    Q_OBJECT

public:
    /*!
     * \brief BeforeStart constructor.
     * \param mainWindow Main window.
     * \param parent Parent of before start view.
     */
    explicit BeforeStart(QWidget *mainWindow, QWidget *parent = 0);
    ~BeforeStart();

    /*!
     * \brief show Shows before start window.
     * \param size Size of the main window.
     * \param pos Position of the main window.
     */
    void show(QSize size, QPoint pos);

signals:

    /*!
     * \brief startMainWindow The signal is emitted when the user clicked start button.
     */
    void startMainWindow();

private slots:

    /*!
     * \brief on_nextBtn_clicked This slot is executed when the user clicked next button.
     */
    void on_nextBtn_clicked();

    /*!
     * \brief on_prevBtn_clicked This slot is executed when the user clicked previous button.
     */
    void on_prevBtn_clicked();

    /*!
     * \brief on_firstPageRadio_clicked This slot is executed when the user clicked first radio button.
     */
    void on_firstPageRadio_clicked();

    /*!
     * \brief on_secondPageRadio_clicked This slot is executed when the user clicked second radio button.
     */
    void on_secondPageRadio_clicked();

    /*!
     * \brief on_thirdPageRadio_clicked This slot is executed when the user clicked third radio button.
     */
    void on_thirdPageRadio_clicked();

    /*!
     * \brief on_startBtn_clicked This slot is executed when the user clicked start button.
     */
    void on_startBtn_clicked();

    /*!
     * \brief on_fourthPageRadio_clicked This slot is executed when the user clicked fourth radio button.
     */
    void on_fourthPageRadio_clicked();

    /*!
     * \brief on_initTipsCheck_clicked This slot is executed when the user clicked dont show again check box.
     * \param checked
     */
    void on_initTipsCheck_clicked(bool checked);

private:

    /*!
     * \brief setNormalState Restores the before start state to normal.
     */
    void setNormalState();

    /*!
     * \brief initElements Initialices before start elements.
     */
    void initElements();

    /*!
     * \brief setInfo Sets the information into before start screen.
     * \param imagePath Image path to show.
     * \param text Texto to show.
     * \param leftImage Left image to show.
     * \param rightImage Right image to show.
     */
    void setInfo(QString imagePath, QString text, QString leftImage = "", QString rightImage = "");

    /*!
     * \brief nextScreenInfo Changes the information to show.
     * \param index Before start page index.
     */
    void nextScreenInfo(int index);

private:

    /*!
     * \brief ui
     */
    Ui::BeforeStart *ui;

    /*!
     * \brief mainwindow
     */
    QWidget *mainwindow;
};

#endif // BEFORESTART_H
