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

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

namespace KWin {

class MagnifierConfig : public KConfigSkeleton
{
  public:

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

    /**
      Set Width
    */
    static
    void setWidth( uint v )
    {
      if (!self()->isWidthImmutable())
        self()->mWidth = v;
    }

    /**
      Get Width
    */
    static
    uint width()
    {
      return self()->mWidth;
    }

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

    /**
      Set Height
    */
    static
    void setHeight( uint v )
    {
      if (!self()->isHeightImmutable())
        self()->mHeight = v;
    }

    /**
      Get Height
    */
    static
    uint height()
    {
      return self()->mHeight;
    }

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

    /**
      Set ZoomFactor
    */
    static
    void setZoomFactor( double v )
    {
      if (!self()->isZoomFactorImmutable())
        self()->mZoomFactor = v;
    }

    /**
      Get ZoomFactor
    */
    static
    double zoomFactor()
    {
      return self()->mZoomFactor;
    }

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

    /**
      Set InitialZoom
    */
    static
    void setInitialZoom( double v )
    {
      if (!self()->isInitialZoomImmutable())
        self()->mInitialZoom = v;
    }

    /**
      Get InitialZoom
    */
    static
    double initialZoom()
    {
      return self()->mInitialZoom;
    }

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

    /**
      Set PointerAxisGestureModifiers
    */
    static
    void setPointerAxisGestureModifiers( const QString & v )
    {
      if (!self()->isPointerAxisGestureModifiersImmutable())
        self()->mPointerAxisGestureModifiers = v;
    }

    /**
      Get PointerAxisGestureModifiers
    */
    static
    QString pointerAxisGestureModifiers()
    {
      return self()->mPointerAxisGestureModifiers;
    }

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

  protected:
    MagnifierConfig(KSharedConfig::Ptr config);
    friend class MagnifierConfigHelper;


    // Effect-magnifier
    uint mWidth;
    uint mHeight;

    // Effect-zoom
    double mZoomFactor;
    double mInitialZoom;
    QString mPointerAxisGestureModifiers;
};

}

#endif

