// This file is generated by kconfig_compiler_kf6 from kdominate.kcfg.
// All changes you do to this file will be lost.
#ifndef PREFS_H
#define PREFS_H

#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

class Prefs : public KConfigSkeleton
{
  public:
    class EnumSkill1
    {
      public:
      enum type { Beginner, Novice, Average, Strong, Expert, COUNT };
    };
    class EnumSkill2
    {
      public:
      enum type { Beginner, Novice, Average, Strong, Expert, COUNT };
    };
    class EnumThemeIndex
    {
      public:
      enum type { Simple, Plastic, Glass, COUNT };
    };

    static Prefs *self();
    ~Prefs() override;

    /**
      Get Color of obstacle tiles.
    */
    static
    QColor color0()
    {
      return self()->mColor0;
    }

    /**
      Is Color of obstacle tiles. Immutable
    */
    static
    bool isColor0Immutable()
    {
      return self()->isImmutable( QStringLiteral( "Color0" ) );
    }

    /**
      Get Color of player 1.
    */
    static
    QColor color1()
    {
      return self()->mColor1;
    }

    /**
      Is Color of player 1. Immutable
    */
    static
    bool isColor1Immutable()
    {
      return self()->isImmutable( QStringLiteral( "Color1" ) );
    }

    /**
      Get Color of player 2.
    */
    static
    QColor color2()
    {
      return self()->mColor2;
    }

    /**
      Is Color of player 2. Immutable
    */
    static
    bool isColor2Immutable()
    {
      return self()->isImmutable( QStringLiteral( "Color2" ) );
    }

    /**
      Get Whether player 1 is played by the computer.
    */
    static
    bool computerPlayer1()
    {
      return self()->mComputerPlayer1;
    }

    /**
      Is Whether player 1 is played by the computer. Immutable
    */
    static
    bool isComputerPlayer1Immutable()
    {
      return self()->isImmutable( QStringLiteral( "ComputerPlayer1" ) );
    }

    /**
      Get Skill of computer player 1.
    */
    static
    int skill1()
    {
      return self()->mSkill1;
    }

    /**
      Is Skill of computer player 1. Immutable
    */
    static
    bool isSkill1Immutable()
    {
      return self()->isImmutable( QStringLiteral( "Skill1" ) );
    }

    /**
      Get Whether player 2 is played by the computer.
    */
    static
    bool computerPlayer2()
    {
      return self()->mComputerPlayer2;
    }

    /**
      Is Whether player 2 is played by the computer. Immutable
    */
    static
    bool isComputerPlayer2Immutable()
    {
      return self()->isImmutable( QStringLiteral( "ComputerPlayer2" ) );
    }

    /**
      Get Skill of computer player 2.
    */
    static
    int skill2()
    {
      return self()->mSkill2;
    }

    /**
      Is Skill of computer player 2. Immutable
    */
    static
    bool isSkill2Immutable()
    {
      return self()->isImmutable( QStringLiteral( "Skill2" ) );
    }

    /**
      Get Pause before each computer move.
    */
    static
    bool pauseForComputer()
    {
      return self()->mPauseForComputer;
    }

    /**
      Is Pause before each computer move. Immutable
    */
    static
    bool isPauseForComputerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PauseForComputer" ) );
    }

    /**
      Set Predefined map selection
    */
    static
    void setMapIndex( int v )
    {
      if (!self()->isMapIndexImmutable())
        self()->mMapIndex = v;
    }

    /**
      Get Predefined map selection
    */
    static
    int mapIndex()
    {
      return self()->mMapIndex;
    }

    /**
      Is Predefined map selection Immutable
    */
    static
    bool isMapIndexImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MapIndex" ) );
    }

    /**
      Get Visual theme for the tiles.
    */
    static
    int themeIndex()
    {
      return self()->mThemeIndex;
    }

    /**
      Is Visual theme for the tiles. Immutable
    */
    static
    bool isThemeIndexImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ThemeIndex" ) );
    }

  protected:
    Prefs();
    friend class PrefsHelper;


    // Game
    QColor mColor0;
    QColor mColor1;
    QColor mColor2;
    bool mComputerPlayer1;
    int mSkill1;
    bool mComputerPlayer2;
    int mSkill2;
    bool mPauseForComputer;
    int mMapIndex;
    int mThemeIndex;
};

#endif

