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

#include "effect/globals.h"

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

namespace KWin {

class KWinScreenEdgeSettings : public KConfigSkeleton
{
  public:

    KWinScreenEdgeSettings( QObject *parent = nullptr );
    ~KWinScreenEdgeSettings() override;

    /**
      Set ElectricBorders
    */
    void setElectricBorders( int v )
    {
      if (!isElectricBordersImmutable())
        mElectricBorders = v;
    }

    /**
      Get ElectricBorders
    */
    int electricBorders() const
    {
      return mElectricBorders;
    }

    /**
      Is ElectricBorders Immutable
    */
    bool isElectricBordersImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorders" ) );
    }

    /**
      Get ElectricBorders default value
    */
    int defaultElectricBordersValue() const
    {
        return defaultElectricBordersValue_helper();
    }

    /**
      Set ElectricBorderDelay
    */
    void setElectricBorderDelay( int v )
    {
      if (!isElectricBorderDelayImmutable())
        mElectricBorderDelay = v;
    }

    /**
      Get ElectricBorderDelay
    */
    int electricBorderDelay() const
    {
      return mElectricBorderDelay;
    }

    /**
      Is ElectricBorderDelay Immutable
    */
    bool isElectricBorderDelayImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderDelay" ) );
    }

    /**
      Get ElectricBorderDelay default value
    */
    int defaultElectricBorderDelayValue() const
    {
        return defaultElectricBorderDelayValue_helper();
    }

    /**
      Set ElectricBorderCooldown
    */
    void setElectricBorderCooldown( int v )
    {
      if (!isElectricBorderCooldownImmutable())
        mElectricBorderCooldown = v;
    }

    /**
      Get ElectricBorderCooldown
    */
    int electricBorderCooldown() const
    {
      return mElectricBorderCooldown;
    }

    /**
      Is ElectricBorderCooldown Immutable
    */
    bool isElectricBorderCooldownImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderCooldown" ) );
    }

    /**
      Get ElectricBorderCooldown default value
    */
    int defaultElectricBorderCooldownValue() const
    {
        return defaultElectricBorderCooldownValue_helper();
    }

    /**
      Set ElectricBorderMaximize
    */
    void setElectricBorderMaximize( bool v )
    {
      if (!isElectricBorderMaximizeImmutable())
        mElectricBorderMaximize = v;
    }

    /**
      Get ElectricBorderMaximize
    */
    bool electricBorderMaximize() const
    {
      return mElectricBorderMaximize;
    }

    /**
      Is ElectricBorderMaximize Immutable
    */
    bool isElectricBorderMaximizeImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderMaximize" ) );
    }

    /**
      Get ElectricBorderMaximize default value
    */
    bool defaultElectricBorderMaximizeValue() const
    {
        return defaultElectricBorderMaximizeValue_helper();
    }

    /**
      Set ElectricBorderTiling
    */
    void setElectricBorderTiling( bool v )
    {
      if (!isElectricBorderTilingImmutable())
        mElectricBorderTiling = v;
    }

    /**
      Get ElectricBorderTiling
    */
    bool electricBorderTiling() const
    {
      return mElectricBorderTiling;
    }

    /**
      Is ElectricBorderTiling Immutable
    */
    bool isElectricBorderTilingImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderTiling" ) );
    }

    /**
      Get ElectricBorderTiling default value
    */
    bool defaultElectricBorderTilingValue() const
    {
        return defaultElectricBorderTilingValue_helper();
    }

    /**
      Set ElectricBorderCornerRatio
    */
    void setElectricBorderCornerRatio( double v )
    {
      if (!isElectricBorderCornerRatioImmutable())
        mElectricBorderCornerRatio = v;
    }

    /**
      Get ElectricBorderCornerRatio
    */
    double electricBorderCornerRatio() const
    {
      return mElectricBorderCornerRatio;
    }

    /**
      Is ElectricBorderCornerRatio Immutable
    */
    bool isElectricBorderCornerRatioImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderCornerRatio" ) );
    }

    /**
      Get ElectricBorderCornerRatio default value
    */
    double defaultElectricBorderCornerRatioValue() const
    {
        return defaultElectricBorderCornerRatioValue_helper();
    }

    /**
      Set ElectricBorderAllScreenCorner
    */
    void setElectricBorderAllScreenCorner( bool v )
    {
      if (!isElectricBorderAllScreenCornerImmutable())
        mElectricBorderAllScreenCorner = v;
    }

    /**
      Get ElectricBorderAllScreenCorner
    */
    bool electricBorderAllScreenCorner() const
    {
      return mElectricBorderAllScreenCorner;
    }

    /**
      Is ElectricBorderAllScreenCorner Immutable
    */
    bool isElectricBorderAllScreenCornerImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderAllScreenCorner" ) );
    }

    /**
      Get ElectricBorderAllScreenCorner default value
    */
    bool defaultElectricBorderAllScreenCornerValue() const
    {
        return defaultElectricBorderAllScreenCornerValue_helper();
    }

    /**
      Set Top
    */
    void setTop( const QString & v )
    {
      if (!isTopImmutable())
        mTop = v;
    }

    /**
      Get Top
    */
    QString top() const
    {
      return mTop;
    }

    /**
      Is Top Immutable
    */
    bool isTopImmutable() const
    {
      return isImmutable( QStringLiteral( "Top" ) );
    }

    /**
      Get Top default value
    */
    QString defaultTopValue() const
    {
        return defaultTopValue_helper();
    }

    /**
      Set TopRight
    */
    void setTopRight( const QString & v )
    {
      if (!isTopRightImmutable())
        mTopRight = v;
    }

    /**
      Get TopRight
    */
    QString topRight() const
    {
      return mTopRight;
    }

    /**
      Is TopRight Immutable
    */
    bool isTopRightImmutable() const
    {
      return isImmutable( QStringLiteral( "TopRight" ) );
    }

    /**
      Get TopRight default value
    */
    QString defaultTopRightValue() const
    {
        return defaultTopRightValue_helper();
    }

    /**
      Set Right
    */
    void setRight( const QString & v )
    {
      if (!isRightImmutable())
        mRight = v;
    }

    /**
      Get Right
    */
    QString right() const
    {
      return mRight;
    }

    /**
      Is Right Immutable
    */
    bool isRightImmutable() const
    {
      return isImmutable( QStringLiteral( "Right" ) );
    }

    /**
      Get Right default value
    */
    QString defaultRightValue() const
    {
        return defaultRightValue_helper();
    }

    /**
      Set BottomRight
    */
    void setBottomRight( const QString & v )
    {
      if (!isBottomRightImmutable())
        mBottomRight = v;
    }

    /**
      Get BottomRight
    */
    QString bottomRight() const
    {
      return mBottomRight;
    }

    /**
      Is BottomRight Immutable
    */
    bool isBottomRightImmutable() const
    {
      return isImmutable( QStringLiteral( "BottomRight" ) );
    }

    /**
      Get BottomRight default value
    */
    QString defaultBottomRightValue() const
    {
        return defaultBottomRightValue_helper();
    }

    /**
      Set Bottom
    */
    void setBottom( const QString & v )
    {
      if (!isBottomImmutable())
        mBottom = v;
    }

    /**
      Get Bottom
    */
    QString bottom() const
    {
      return mBottom;
    }

    /**
      Is Bottom Immutable
    */
    bool isBottomImmutable() const
    {
      return isImmutable( QStringLiteral( "Bottom" ) );
    }

    /**
      Get Bottom default value
    */
    QString defaultBottomValue() const
    {
        return defaultBottomValue_helper();
    }

    /**
      Set BottomLeft
    */
    void setBottomLeft( const QString & v )
    {
      if (!isBottomLeftImmutable())
        mBottomLeft = v;
    }

    /**
      Get BottomLeft
    */
    QString bottomLeft() const
    {
      return mBottomLeft;
    }

    /**
      Is BottomLeft Immutable
    */
    bool isBottomLeftImmutable() const
    {
      return isImmutable( QStringLiteral( "BottomLeft" ) );
    }

    /**
      Get BottomLeft default value
    */
    QString defaultBottomLeftValue() const
    {
        return defaultBottomLeftValue_helper();
    }

    /**
      Set Left
    */
    void setLeft( const QString & v )
    {
      if (!isLeftImmutable())
        mLeft = v;
    }

    /**
      Get Left
    */
    QString left() const
    {
      return mLeft;
    }

    /**
      Is Left Immutable
    */
    bool isLeftImmutable() const
    {
      return isImmutable( QStringLiteral( "Left" ) );
    }

    /**
      Get Left default value
    */
    QString defaultLeftValue() const
    {
        return defaultLeftValue_helper();
    }

    /**
      Set TopLeft
    */
    void setTopLeft( const QString & v )
    {
      if (!isTopLeftImmutable())
        mTopLeft = v;
    }

    /**
      Get TopLeft
    */
    QString topLeft() const
    {
      return mTopLeft;
    }

    /**
      Is TopLeft Immutable
    */
    bool isTopLeftImmutable() const
    {
      return isImmutable( QStringLiteral( "TopLeft" ) );
    }

    /**
      Get TopLeft default value
    */
    QString defaultTopLeftValue() const
    {
        return defaultTopLeftValue_helper();
    }

    /**
      Set BorderActivateAll
    */
    void setBorderActivateAll( const QList<int> & v )
    {
      if (!isBorderActivateAllImmutable())
        mBorderActivateAll = v;
    }

    /**
      Get BorderActivateAll
    */
    QList<int> borderActivateAll() const
    {
      return mBorderActivateAll;
    }

    /**
      Is BorderActivateAll Immutable
    */
    bool isBorderActivateAllImmutable() const
    {
      return isImmutable( QStringLiteral( "BorderActivateAll" ) );
    }

    /**
      Get BorderActivateAll default value
    */
    QList<int> defaultBorderActivateAllValue() const
    {
        return defaultBorderActivateAllValue_helper();
    }

    /**
      Set BorderActivate
    */
    void setBorderActivatePresentWindows( const QList<int> & v )
    {
      if (!isBorderActivatePresentWindowsImmutable())
        mBorderActivatePresentWindows = v;
    }

    /**
      Get BorderActivate
    */
    QList<int> borderActivatePresentWindows() const
    {
      return mBorderActivatePresentWindows;
    }

    /**
      Is BorderActivate Immutable
    */
    bool isBorderActivatePresentWindowsImmutable() const
    {
      return isImmutable( QStringLiteral( "BorderActivatePresentWindows" ) );
    }

    /**
      Get BorderActivate default value
    */
    QList<int> defaultBorderActivatePresentWindowsValue() const
    {
        return defaultBorderActivatePresentWindowsValue_helper();
    }

    /**
      Set BorderActivateClass
    */
    void setBorderActivateClass( const QList<int> & v )
    {
      if (!isBorderActivateClassImmutable())
        mBorderActivateClass = v;
    }

    /**
      Get BorderActivateClass
    */
    QList<int> borderActivateClass() const
    {
      return mBorderActivateClass;
    }

    /**
      Is BorderActivateClass Immutable
    */
    bool isBorderActivateClassImmutable() const
    {
      return isImmutable( QStringLiteral( "BorderActivateClass" ) );
    }

    /**
      Get BorderActivateClass default value
    */
    QList<int> defaultBorderActivateClassValue() const
    {
        return defaultBorderActivateClassValue_helper();
    }

    /**
      Set BorderActivate
    */
    void setBorderActivateOverview( const QList<int> & v )
    {
      if (!isBorderActivateOverviewImmutable())
        mBorderActivateOverview = v;
    }

    /**
      Get BorderActivate
    */
    QList<int> borderActivateOverview() const
    {
      return mBorderActivateOverview;
    }

    /**
      Is BorderActivate Immutable
    */
    bool isBorderActivateOverviewImmutable() const
    {
      return isImmutable( QStringLiteral( "BorderActivateOverview" ) );
    }

    /**
      Get BorderActivate default value
    */
    QList<int> defaultBorderActivateOverviewValue() const
    {
        return defaultBorderActivateOverviewValue_helper();
    }

    /**
      Set GridBorderActivate
    */
    void setBorderActivateGrid( const QList<int> & v )
    {
      if (!isBorderActivateGridImmutable())
        mBorderActivateGrid = v;
    }

    /**
      Get GridBorderActivate
    */
    QList<int> borderActivateGrid() const
    {
      return mBorderActivateGrid;
    }

    /**
      Is GridBorderActivate Immutable
    */
    bool isBorderActivateGridImmutable() const
    {
      return isImmutable( QStringLiteral( "BorderActivateGrid" ) );
    }

    /**
      Get GridBorderActivate default value
    */
    QList<int> defaultBorderActivateGridValue() const
    {
        return defaultBorderActivateGridValue_helper();
    }

    /**
      Set BorderActivate
    */
    void setBorderActivateTabBox( const QList<int> & v )
    {
      if (!isBorderActivateTabBoxImmutable())
        mBorderActivateTabBox = v;
    }

    /**
      Get BorderActivate
    */
    QList<int> borderActivateTabBox() const
    {
      return mBorderActivateTabBox;
    }

    /**
      Is BorderActivate Immutable
    */
    bool isBorderActivateTabBoxImmutable() const
    {
      return isImmutable( QStringLiteral( "BorderActivateTabBox" ) );
    }

    /**
      Get BorderActivate default value
    */
    QList<int> defaultBorderActivateTabBoxValue() const
    {
        return defaultBorderActivateTabBoxValue_helper();
    }

    /**
      Set BorderAlternativeActivate
    */
    void setBorderAlternativeActivate( const QList<int> & v )
    {
      if (!isBorderAlternativeActivateImmutable())
        mBorderAlternativeActivate = v;
    }

    /**
      Get BorderAlternativeActivate
    */
    QList<int> borderAlternativeActivate() const
    {
      return mBorderAlternativeActivate;
    }

    /**
      Is BorderAlternativeActivate Immutable
    */
    bool isBorderAlternativeActivateImmutable() const
    {
      return isImmutable( QStringLiteral( "BorderAlternativeActivate" ) );
    }

    /**
      Get BorderAlternativeActivate default value
    */
    QList<int> defaultBorderAlternativeActivateValue() const
    {
        return defaultBorderAlternativeActivateValue_helper();
    }

    /**
      Set RemainActiveOnFullscreen
    */
    void setRemainActiveOnFullscreen( bool v )
    {
      if (!isRemainActiveOnFullscreenImmutable())
        mRemainActiveOnFullscreen = v;
    }

    /**
      Get RemainActiveOnFullscreen
    */
    bool remainActiveOnFullscreen() const
    {
      return mRemainActiveOnFullscreen;
    }

    /**
      Is RemainActiveOnFullscreen Immutable
    */
    bool isRemainActiveOnFullscreenImmutable() const
    {
      return isImmutable( QStringLiteral( "RemainActiveOnFullscreen" ) );
    }

    /**
      Get RemainActiveOnFullscreen default value
    */
    bool defaultRemainActiveOnFullscreenValue() const
    {
        return defaultRemainActiveOnFullscreenValue_helper();
    }

    /**
      Set CornerBarrier
    */
    void setCornerBarrier( bool v )
    {
      if (!isCornerBarrierImmutable())
        mCornerBarrier = v;
    }

    /**
      Get CornerBarrier
    */
    bool cornerBarrier() const
    {
      return mCornerBarrier;
    }

    /**
      Is CornerBarrier Immutable
    */
    bool isCornerBarrierImmutable() const
    {
      return isImmutable( QStringLiteral( "CornerBarrier" ) );
    }

    /**
      Get CornerBarrier default value
    */
    bool defaultCornerBarrierValue() const
    {
        return defaultCornerBarrierValue_helper();
    }

    /**
      Set EdgeBarrier
    */
    void setEdgeBarrier( int v )
    {
      if (v < 0)
      {
        qDebug() << "setEdgeBarrier: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 1000)
      {
        qDebug() << "setEdgeBarrier: value " << v << " is greater than the maximum value of 1000";
        v = 1000;
      }

      if (!isEdgeBarrierImmutable())
        mEdgeBarrier = v;
    }

    /**
      Get EdgeBarrier
    */
    int edgeBarrier() const
    {
      return mEdgeBarrier;
    }

    /**
      Is EdgeBarrier Immutable
    */
    bool isEdgeBarrierImmutable() const
    {
      return isImmutable( QStringLiteral( "EdgeBarrier" ) );
    }

    /**
      Get EdgeBarrier default value
    */
    int defaultEdgeBarrierValue() const
    {
        return defaultEdgeBarrierValue_helper();
    }

  protected:

    // Windows
    int mElectricBorders;
    int defaultElectricBordersValue_helper() const;
    int mElectricBorderDelay;
    int defaultElectricBorderDelayValue_helper() const;
    int mElectricBorderCooldown;
    int defaultElectricBorderCooldownValue_helper() const;
    bool mElectricBorderMaximize;
    bool defaultElectricBorderMaximizeValue_helper() const;
    bool mElectricBorderTiling;
    bool defaultElectricBorderTilingValue_helper() const;
    double mElectricBorderCornerRatio;
    double defaultElectricBorderCornerRatioValue_helper() const;
    bool mElectricBorderAllScreenCorner;
    bool defaultElectricBorderAllScreenCornerValue_helper() const;

    // ElectricBorders
    QString mTop;
    QString defaultTopValue_helper() const;
    QString mTopRight;
    QString defaultTopRightValue_helper() const;
    QString mRight;
    QString defaultRightValue_helper() const;
    QString mBottomRight;
    QString defaultBottomRightValue_helper() const;
    QString mBottom;
    QString defaultBottomValue_helper() const;
    QString mBottomLeft;
    QString defaultBottomLeftValue_helper() const;
    QString mLeft;
    QString defaultLeftValue_helper() const;
    QString mTopLeft;
    QString defaultTopLeftValue_helper() const;

    // Effect-windowview
    QList<int> mBorderActivateAll;
    QList<int> defaultBorderActivateAllValue_helper() const;
    QList<int> mBorderActivatePresentWindows;
    QList<int> defaultBorderActivatePresentWindowsValue_helper() const;
    QList<int> mBorderActivateClass;
    QList<int> defaultBorderActivateClassValue_helper() const;

    // Effect-overview
    QList<int> mBorderActivateOverview;
    QList<int> defaultBorderActivateOverviewValue_helper() const;
    QList<int> mBorderActivateGrid;
    QList<int> defaultBorderActivateGridValue_helper() const;

    // TabBox
    QList<int> mBorderActivateTabBox;
    QList<int> defaultBorderActivateTabBoxValue_helper() const;
    QList<int> mBorderAlternativeActivate;
    QList<int> defaultBorderAlternativeActivateValue_helper() const;

    // ScreenEdges
    bool mRemainActiveOnFullscreen;
    bool defaultRemainActiveOnFullscreenValue_helper() const;

    // EdgeBarrier
    bool mCornerBarrier;
    bool defaultCornerBarrierValue_helper() const;
    int mEdgeBarrier;
    int defaultEdgeBarrierValue_helper() const;
};

}

#endif

