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

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

namespace KWin {

class WobblyWindowsConfig : public KConfigSkeleton
{
  public:

    static WobblyWindowsConfig *self();
    static void instance(const QString& cfgfilename);
    static void instance(KSharedConfig::Ptr config);
    ~WobblyWindowsConfig() override;

    /**
      Set WobblynessLevel
    */
    static
    void setWobblynessLevel( uint v )
    {
      if (!self()->isWobblynessLevelImmutable())
        self()->mWobblynessLevel = v;
    }

    /**
      Get WobblynessLevel
    */
    static
    uint wobblynessLevel()
    {
      return self()->mWobblynessLevel;
    }

    /**
      Is WobblynessLevel Immutable
    */
    static
    bool isWobblynessLevelImmutable()
    {
      return self()->isImmutable( QStringLiteral( "WobblynessLevel" ) );
    }

    /**
      Set Settings
    */
    static
    void setSettings( const QString & v )
    {
      if (!self()->isSettingsImmutable())
        self()->mSettings = v;
    }

    /**
      Get Settings
    */
    static
    QString settings()
    {
      return self()->mSettings;
    }

    /**
      Is Settings Immutable
    */
    static
    bool isSettingsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Settings" ) );
    }

    /**
      Set MoveWobble
    */
    static
    void setMoveWobble( bool v )
    {
      if (!self()->isMoveWobbleImmutable())
        self()->mMoveWobble = v;
    }

    /**
      Get MoveWobble
    */
    static
    bool moveWobble()
    {
      return self()->mMoveWobble;
    }

    /**
      Is MoveWobble Immutable
    */
    static
    bool isMoveWobbleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MoveWobble" ) );
    }

    /**
      Set ResizeWobble
    */
    static
    void setResizeWobble( bool v )
    {
      if (!self()->isResizeWobbleImmutable())
        self()->mResizeWobble = v;
    }

    /**
      Get ResizeWobble
    */
    static
    bool resizeWobble()
    {
      return self()->mResizeWobble;
    }

    /**
      Is ResizeWobble Immutable
    */
    static
    bool isResizeWobbleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ResizeWobble" ) );
    }

    /**
      Set AdvancedMode
    */
    static
    void setAdvancedMode( bool v )
    {
      if (!self()->isAdvancedModeImmutable())
        self()->mAdvancedMode = v;
    }

    /**
      Get AdvancedMode
    */
    static
    bool advancedMode()
    {
      return self()->mAdvancedMode;
    }

    /**
      Is AdvancedMode Immutable
    */
    static
    bool isAdvancedModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AdvancedMode" ) );
    }

    /**
      Set Stiffness
    */
    static
    void setStiffness( double v )
    {
      if (!self()->isStiffnessImmutable())
        self()->mStiffness = v;
    }

    /**
      Get Stiffness
    */
    static
    double stiffness()
    {
      return self()->mStiffness;
    }

    /**
      Is Stiffness Immutable
    */
    static
    bool isStiffnessImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Stiffness" ) );
    }

    /**
      Set Drag
    */
    static
    void setDrag( double v )
    {
      if (!self()->isDragImmutable())
        self()->mDrag = v;
    }

    /**
      Get Drag
    */
    static
    double drag()
    {
      return self()->mDrag;
    }

    /**
      Is Drag Immutable
    */
    static
    bool isDragImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Drag" ) );
    }

    /**
      Set MoveFactor
    */
    static
    void setMoveFactor( double v )
    {
      if (!self()->isMoveFactorImmutable())
        self()->mMoveFactor = v;
    }

    /**
      Get MoveFactor
    */
    static
    double moveFactor()
    {
      return self()->mMoveFactor;
    }

    /**
      Is MoveFactor Immutable
    */
    static
    bool isMoveFactorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MoveFactor" ) );
    }

    /**
      Set XTesselation
    */
    static
    void setXTesselation( double v )
    {
      if (!self()->isXTesselationImmutable())
        self()->mXTesselation = v;
    }

    /**
      Get XTesselation
    */
    static
    double xTesselation()
    {
      return self()->mXTesselation;
    }

    /**
      Is XTesselation Immutable
    */
    static
    bool isXTesselationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XTesselation" ) );
    }

    /**
      Set YTesselation
    */
    static
    void setYTesselation( double v )
    {
      if (!self()->isYTesselationImmutable())
        self()->mYTesselation = v;
    }

    /**
      Get YTesselation
    */
    static
    double yTesselation()
    {
      return self()->mYTesselation;
    }

    /**
      Is YTesselation Immutable
    */
    static
    bool isYTesselationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "YTesselation" ) );
    }

    /**
      Set MinVelocity
    */
    static
    void setMinVelocity( double v )
    {
      if (!self()->isMinVelocityImmutable())
        self()->mMinVelocity = v;
    }

    /**
      Get MinVelocity
    */
    static
    double minVelocity()
    {
      return self()->mMinVelocity;
    }

    /**
      Is MinVelocity Immutable
    */
    static
    bool isMinVelocityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MinVelocity" ) );
    }

    /**
      Set MaxVelocity
    */
    static
    void setMaxVelocity( double v )
    {
      if (!self()->isMaxVelocityImmutable())
        self()->mMaxVelocity = v;
    }

    /**
      Get MaxVelocity
    */
    static
    double maxVelocity()
    {
      return self()->mMaxVelocity;
    }

    /**
      Is MaxVelocity Immutable
    */
    static
    bool isMaxVelocityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxVelocity" ) );
    }

    /**
      Set StopVelocity
    */
    static
    void setStopVelocity( double v )
    {
      if (!self()->isStopVelocityImmutable())
        self()->mStopVelocity = v;
    }

    /**
      Get StopVelocity
    */
    static
    double stopVelocity()
    {
      return self()->mStopVelocity;
    }

    /**
      Is StopVelocity Immutable
    */
    static
    bool isStopVelocityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StopVelocity" ) );
    }

    /**
      Set MinAcceleration
    */
    static
    void setMinAcceleration( double v )
    {
      if (!self()->isMinAccelerationImmutable())
        self()->mMinAcceleration = v;
    }

    /**
      Get MinAcceleration
    */
    static
    double minAcceleration()
    {
      return self()->mMinAcceleration;
    }

    /**
      Is MinAcceleration Immutable
    */
    static
    bool isMinAccelerationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MinAcceleration" ) );
    }

    /**
      Set MaxAcceleration
    */
    static
    void setMaxAcceleration( double v )
    {
      if (!self()->isMaxAccelerationImmutable())
        self()->mMaxAcceleration = v;
    }

    /**
      Get MaxAcceleration
    */
    static
    double maxAcceleration()
    {
      return self()->mMaxAcceleration;
    }

    /**
      Is MaxAcceleration Immutable
    */
    static
    bool isMaxAccelerationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxAcceleration" ) );
    }

    /**
      Set StopAcceleration
    */
    static
    void setStopAcceleration( double v )
    {
      if (!self()->isStopAccelerationImmutable())
        self()->mStopAcceleration = v;
    }

    /**
      Get StopAcceleration
    */
    static
    double stopAcceleration()
    {
      return self()->mStopAcceleration;
    }

    /**
      Is StopAcceleration Immutable
    */
    static
    bool isStopAccelerationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StopAcceleration" ) );
    }

  protected:
    WobblyWindowsConfig(KSharedConfig::Ptr config);
    friend class WobblyWindowsConfigHelper;


    // Effect-wobblywindows
    uint mWobblynessLevel;
    QString mSettings;
    bool mMoveWobble;
    bool mResizeWobble;
    bool mAdvancedMode;
    double mStiffness;
    double mDrag;
    double mMoveFactor;
    double mXTesselation;
    double mYTesselation;
    double mMinVelocity;
    double mMaxVelocity;
    double mStopVelocity;
    double mMinAcceleration;
    double mMaxAcceleration;
    double mStopAcceleration;
};

}

#endif

