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

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

namespace KWin {

class ZoomConfig : public KConfigSkeleton
{
  public:

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

    /**
      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 MousePointer
    */
    static
    void setMousePointer( uint v )
    {
      if (!self()->isMousePointerImmutable())
        self()->mMousePointer = v;
    }

    /**
      Get MousePointer
    */
    static
    uint mousePointer()
    {
      return self()->mMousePointer;
    }

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

    /**
      Set MouseTracking
    */
    static
    void setMouseTracking( uint v )
    {
      if (!self()->isMouseTrackingImmutable())
        self()->mMouseTracking = v;
    }

    /**
      Get MouseTracking
    */
    static
    uint mouseTracking()
    {
      return self()->mMouseTracking;
    }

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

    /**
      Set EnableFocusTracking
    */
    static
    void setEnableFocusTracking( bool v )
    {
      if (!self()->isEnableFocusTrackingImmutable())
        self()->mEnableFocusTracking = v;
    }

    /**
      Get EnableFocusTracking
    */
    static
    bool enableFocusTracking()
    {
      return self()->mEnableFocusTracking;
    }

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

    /**
      Set EnableTextCaretTracking
    */
    static
    void setEnableTextCaretTracking( bool v )
    {
      if (!self()->isEnableTextCaretTrackingImmutable())
        self()->mEnableTextCaretTracking = v;
    }

    /**
      Get EnableTextCaretTracking
    */
    static
    bool enableTextCaretTracking()
    {
      return self()->mEnableTextCaretTracking;
    }

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

    /**
      Set FocusDelay
    */
    static
    void setFocusDelay( uint v )
    {
      if (!self()->isFocusDelayImmutable())
        self()->mFocusDelay = v;
    }

    /**
      Get FocusDelay
    */
    static
    uint focusDelay()
    {
      return self()->mFocusDelay;
    }

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

    /**
      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 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 PixelGridZoom
    */
    static
    void setPixelGridZoom( double v )
    {
      if (!self()->isPixelGridZoomImmutable())
        self()->mPixelGridZoom = v;
    }

    /**
      Get PixelGridZoom
    */
    static
    double pixelGridZoom()
    {
      return self()->mPixelGridZoom;
    }

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

  protected:
    ZoomConfig(KSharedConfig::Ptr config);
    friend class ZoomConfigHelper;


    // Effect-zoom
    double mZoomFactor;
    uint mMousePointer;
    uint mMouseTracking;
    bool mEnableFocusTracking;
    bool mEnableTextCaretTracking;
    uint mFocusDelay;
    double mMoveFactor;
    double mInitialZoom;
    double mPixelGridZoom;
};

}

#endif

