/**
 * @file layouts_settings.h
 * @ingroup CoreSettings
 * @brief TODO: Document this.
 */

#ifndef LAYOUTSSETTINGS_H
#define LAYOUTSSETTINGS_H

#include "settings_manager.h"

#include <QSize>

class LayoutsSettings : public SettingsManager
{
    Q_OBJECT
    friend class SettingsCache;

public:
    void setMainWindowGeometry(const QByteArray &value);

    void setDeckEditorLayoutState(const QByteArray &value);
    void setDeckEditorGeometry(const QByteArray &value);

    void setVisualDeckEditorLayoutState(const QByteArray &value);
    void setVisualDeckEditorGeometry(const QByteArray &value);

    void setDeckEditorDbHeaderState(const QByteArray &value);
    void setSetsDialogHeaderState(const QByteArray &value);
    void setSetsDialogGeometry(const QByteArray &value);
    void setTokenDialogGeometry(const QByteArray &value);

    void setGamePlayAreaGeometry(const QByteArray &value);
    void setGamePlayAreaState(const QByteArray &value);

    void setReplayPlayAreaGeometry(const QByteArray &value);
    void setReplayPlayAreaState(const QByteArray &value);

    QByteArray getMainWindowGeometry() const;

    QByteArray getDeckEditorLayoutState() const;
    QByteArray getDeckEditorGeometry() const;

    QByteArray getVisualDeckEditorLayoutState() const;
    QByteArray getVisualDeckEditorGeometry() const;

    QByteArray getDeckEditorDbHeaderState() const;
    QByteArray getSetsDialogHeaderState() const;
    QByteArray getSetsDialogGeometry() const;
    QByteArray getTokenDialogGeometry() const;

    QByteArray getGamePlayAreaLayoutState() const;
    QByteArray getGamePlayAreaGeometry() const;

    QByteArray getReplayPlayAreaLayoutState() const;
    QByteArray getReplayPlayAreaGeometry() const;
signals:

public slots:

private:
    explicit LayoutsSettings(const QString &settingPath, QObject *parent = nullptr);
    LayoutsSettings(const LayoutsSettings & /*other*/);
};

#endif // LAYOUTSSETTINGS_H
