// This file is generated by kconfig_compiler_kf5 from breezesettingsdata.kcfg.
// All changes you do to this file will be lost.
#ifndef BREEZE_INTERNALSETTINGS_H
#define BREEZE_INTERNALSETTINGS_H

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

namespace Breeze {

class InternalSettings : public KConfigSkeleton
{
  public:
    enum EnumBorderSize { BorderNone, BorderNoSides, BorderTiny, BorderNormal, BorderLarge, BorderVeryLarge, BorderHuge, BorderVeryHuge, BorderOversized };
    enum EnumTitleAlignment { AlignLeft, AlignCenter, AlignCenterFullWidth, AlignRight };
    enum EnumButtonSize { ButtonTiny, ButtonSmall, ButtonDefault, ButtonLarge, ButtonVeryLarge };
    enum EnumExceptionType { ExceptionWindowClassName, ExceptionWindowTitle };

    InternalSettings( );
    ~InternalSettings();

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

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

      if (!isImmutable( QStringLiteral( "ShadowStrength" ) ))
        mShadowStrength = v;
    }

    /**
      Get ShadowStrength
    */
    int shadowStrength() const
    {
      return mShadowStrength;
    }

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

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

      if (!isImmutable( QStringLiteral( "ShadowSize" ) ))
        mShadowSize = v;
    }

    /**
      Get ShadowSize
    */
    int shadowSize() const
    {
      return mShadowSize;
    }

    /**
      Set ShadowColor
    */
    void setShadowColor( const QColor & v )
    {
      if (!isImmutable( QStringLiteral( "ShadowColor" ) ))
        mShadowColor = v;
    }

    /**
      Get ShadowColor
    */
    QColor shadowColor() const
    {
      return mShadowColor;
    }

    /**
      Set OutlineCloseButton
    */
    void setOutlineCloseButton( bool v )
    {
      if (!isImmutable( QStringLiteral( "OutlineCloseButton" ) ))
        mOutlineCloseButton = v;
    }

    /**
      Get OutlineCloseButton
    */
    bool outlineCloseButton() const
    {
      return mOutlineCloseButton;
    }

    /**
      Set BorderSize
    */
    void setBorderSize( int v )
    {
      if (!isImmutable( QStringLiteral( "BorderSize" ) ))
        mBorderSize = v;
    }

    /**
      Get BorderSize
    */
    int borderSize() const
    {
      return mBorderSize;
    }

    /**
      Set TitleAlignment
    */
    void setTitleAlignment( int v )
    {
      if (!isImmutable( QStringLiteral( "TitleAlignment" ) ))
        mTitleAlignment = v;
    }

    /**
      Get TitleAlignment
    */
    int titleAlignment() const
    {
      return mTitleAlignment;
    }

    /**
      Set ButtonSize
    */
    void setButtonSize( int v )
    {
      if (!isImmutable( QStringLiteral( "ButtonSize" ) ))
        mButtonSize = v;
    }

    /**
      Get ButtonSize
    */
    int buttonSize() const
    {
      return mButtonSize;
    }

    /**
      Set DrawBorderOnMaximizedWindows
    */
    void setDrawBorderOnMaximizedWindows( bool v )
    {
      if (!isImmutable( QStringLiteral( "DrawBorderOnMaximizedWindows" ) ))
        mDrawBorderOnMaximizedWindows = v;
    }

    /**
      Get DrawBorderOnMaximizedWindows
    */
    bool drawBorderOnMaximizedWindows() const
    {
      return mDrawBorderOnMaximizedWindows;
    }

    /**
      Set DrawBackgroundGradient
    */
    void setDrawBackgroundGradient( bool v )
    {
      if (!isImmutable( QStringLiteral( "DrawBackgroundGradient" ) ))
        mDrawBackgroundGradient = v;
    }

    /**
      Get DrawBackgroundGradient
    */
    bool drawBackgroundGradient() const
    {
      return mDrawBackgroundGradient;
    }

    /**
      Set DrawSizeGrip
    */
    void setDrawSizeGrip( bool v )
    {
      if (!isImmutable( QStringLiteral( "DrawSizeGrip" ) ))
        mDrawSizeGrip = v;
    }

    /**
      Get DrawSizeGrip
    */
    bool drawSizeGrip() const
    {
      return mDrawSizeGrip;
    }

    /**
      Set AnimationsEnabled
    */
    void setAnimationsEnabled( bool v )
    {
      if (!isImmutable( QStringLiteral( "AnimationsEnabled" ) ))
        mAnimationsEnabled = v;
    }

    /**
      Get AnimationsEnabled
    */
    bool animationsEnabled() const
    {
      return mAnimationsEnabled;
    }

    /**
      Set AnimationsDuration
    */
    void setAnimationsDuration( int v )
    {
      if (!isImmutable( QStringLiteral( "AnimationsDuration" ) ))
        mAnimationsDuration = v;
    }

    /**
      Get AnimationsDuration
    */
    int animationsDuration() const
    {
      return mAnimationsDuration;
    }

    /**
      Set HideTitleBar
    */
    void setHideTitleBar( bool v )
    {
      if (!isImmutable( QStringLiteral( "HideTitleBar" ) ))
        mHideTitleBar = v;
    }

    /**
      Get HideTitleBar
    */
    bool hideTitleBar() const
    {
      return mHideTitleBar;
    }

    /**
      Set ExceptionType
    */
    void setExceptionType( int v )
    {
      if (!isImmutable( QStringLiteral( "ExceptionType" ) ))
        mExceptionType = v;
    }

    /**
      Get ExceptionType
    */
    int exceptionType() const
    {
      return mExceptionType;
    }

    /**
      Set ExceptionPattern
    */
    void setExceptionPattern( const QString & v )
    {
      if (!isImmutable( QStringLiteral( "ExceptionPattern" ) ))
        mExceptionPattern = v;
    }

    /**
      Get ExceptionPattern
    */
    QString exceptionPattern() const
    {
      return mExceptionPattern;
    }

    /**
      Set Enabled
    */
    void setEnabled( bool v )
    {
      if (!isImmutable( QStringLiteral( "Enabled" ) ))
        mEnabled = v;
    }

    /**
      Get Enabled
    */
    bool enabled() const
    {
      return mEnabled;
    }

    /**
      Set Mask
    */
    void setMask( int v )
    {
      if (!isImmutable( QStringLiteral( "Mask" ) ))
        mMask = v;
    }

    /**
      Get Mask
    */
    int mask() const
    {
      return mMask;
    }

  protected:

    // Common
    int mShadowStrength;
    int mShadowSize;
    QColor mShadowColor;
    bool mOutlineCloseButton;

    // Windeco
    int mBorderSize;
    int mTitleAlignment;
    int mButtonSize;
    bool mDrawBorderOnMaximizedWindows;
    bool mDrawBackgroundGradient;
    bool mDrawSizeGrip;
    bool mAnimationsEnabled;
    int mAnimationsDuration;
    bool mHideTitleBar;
    int mExceptionType;
    QString mExceptionPattern;
    bool mEnabled;
    int mMask;

  private:
};

}

#endif

