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

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

namespace Breeze {

class StyleConfigData : public KConfigSkeleton
{
  public:
    enum EnumShadowSize { ShadowNone, ShadowSmall, ShadowMedium, ShadowLarge, ShadowVeryLarge };
    enum EnumMnemonicsMode { MN_NEVER, MN_AUTO, MN_ALWAYS };
    enum EnumWindowDragMode { WD_NONE, WD_MINIMAL, WD_FULL };

    static StyleConfigData *self();
    ~StyleConfigData() override;

    /**
      Set ShadowStrength
    */
    static
    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 (!self()->isShadowStrengthImmutable())
        self()->mShadowStrength = v;
    }

    /**
      Get ShadowStrength
    */
    static
    int shadowStrength()
    {
      return self()->mShadowStrength;
    }

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

    /**
      Set ShadowSize
    */
    static
    void setShadowSize( int v )
    {
      if (!self()->isShadowSizeImmutable())
        self()->mShadowSize = v;
    }

    /**
      Get ShadowSize
    */
    static
    int shadowSize()
    {
      return self()->mShadowSize;
    }

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

    /**
      Set ShadowColor
    */
    static
    void setShadowColor( const QColor & v )
    {
      if (!self()->isShadowColorImmutable())
        self()->mShadowColor = v;
    }

    /**
      Get ShadowColor
    */
    static
    QColor shadowColor()
    {
      return self()->mShadowColor;
    }

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

    /**
      Set OutlineCloseButton
    */
    static
    void setOutlineCloseButton( bool v )
    {
      if (!self()->isOutlineCloseButtonImmutable())
        self()->mOutlineCloseButton = v;
    }

    /**
      Get OutlineCloseButton
    */
    static
    bool outlineCloseButton()
    {
      return self()->mOutlineCloseButton;
    }

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

    /**
      Set AnimationsEnabled
    */
    static
    void setAnimationsEnabled( bool v )
    {
      if (!self()->isAnimationsEnabledImmutable())
        self()->mAnimationsEnabled = v;
    }

    /**
      Get AnimationsEnabled
    */
    static
    bool animationsEnabled()
    {
      return self()->mAnimationsEnabled;
    }

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

    /**
      Set AnimationSteps
    */
    static
    void setAnimationSteps( int v )
    {
      if (!self()->isAnimationStepsImmutable())
        self()->mAnimationSteps = v;
    }

    /**
      Get AnimationSteps
    */
    static
    int animationSteps()
    {
      return self()->mAnimationSteps;
    }

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

    /**
      Set AnimationsDuration
    */
    static
    void setAnimationsDuration( int v )
    {
      if (!self()->isAnimationsDurationImmutable())
        self()->mAnimationsDuration = v;
    }

    /**
      Get AnimationsDuration
    */
    static
    int animationsDuration()
    {
      return self()->mAnimationsDuration;
    }

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

    /**
      Set StackedWidgetTransitionsEnabled
    */
    static
    void setStackedWidgetTransitionsEnabled( bool v )
    {
      if (!self()->isStackedWidgetTransitionsEnabledImmutable())
        self()->mStackedWidgetTransitionsEnabled = v;
    }

    /**
      Get StackedWidgetTransitionsEnabled
    */
    static
    bool stackedWidgetTransitionsEnabled()
    {
      return self()->mStackedWidgetTransitionsEnabled;
    }

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

    /**
      Set ProgressBarAnimated
    */
    static
    void setProgressBarAnimated( bool v )
    {
      if (!self()->isProgressBarAnimatedImmutable())
        self()->mProgressBarAnimated = v;
    }

    /**
      Get ProgressBarAnimated
    */
    static
    bool progressBarAnimated()
    {
      return self()->mProgressBarAnimated;
    }

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

    /**
      Set ProgressBarBusyStepDuration
    */
    static
    void setProgressBarBusyStepDuration( int v )
    {
      if (!self()->isProgressBarBusyStepDurationImmutable())
        self()->mProgressBarBusyStepDuration = v;
    }

    /**
      Get ProgressBarBusyStepDuration
    */
    static
    int progressBarBusyStepDuration()
    {
      return self()->mProgressBarBusyStepDuration;
    }

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

    /**
      Set ScrollBarAddLineButtons
    */
    static
    void setScrollBarAddLineButtons( int v )
    {
      if (!self()->isScrollBarAddLineButtonsImmutable())
        self()->mScrollBarAddLineButtons = v;
    }

    /**
      Get ScrollBarAddLineButtons
    */
    static
    int scrollBarAddLineButtons()
    {
      return self()->mScrollBarAddLineButtons;
    }

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

    /**
      Set ScrollBarSubLineButtons
    */
    static
    void setScrollBarSubLineButtons( int v )
    {
      if (!self()->isScrollBarSubLineButtonsImmutable())
        self()->mScrollBarSubLineButtons = v;
    }

    /**
      Get ScrollBarSubLineButtons
    */
    static
    int scrollBarSubLineButtons()
    {
      return self()->mScrollBarSubLineButtons;
    }

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

    /**
      Set MnemonicsMode
    */
    static
    void setMnemonicsMode( int v )
    {
      if (!self()->isMnemonicsModeImmutable())
        self()->mMnemonicsMode = v;
    }

    /**
      Get MnemonicsMode
    */
    static
    int mnemonicsMode()
    {
      return self()->mMnemonicsMode;
    }

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

    /**
      Set ToolBarDrawItemSeparator
    */
    static
    void setToolBarDrawItemSeparator( bool v )
    {
      if (!self()->isToolBarDrawItemSeparatorImmutable())
        self()->mToolBarDrawItemSeparator = v;
    }

    /**
      Get ToolBarDrawItemSeparator
    */
    static
    bool toolBarDrawItemSeparator()
    {
      return self()->mToolBarDrawItemSeparator;
    }

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

    /**
      Set ViewDrawFocusIndicator
    */
    static
    void setViewDrawFocusIndicator( bool v )
    {
      if (!self()->isViewDrawFocusIndicatorImmutable())
        self()->mViewDrawFocusIndicator = v;
    }

    /**
      Get ViewDrawFocusIndicator
    */
    static
    bool viewDrawFocusIndicator()
    {
      return self()->mViewDrawFocusIndicator;
    }

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

    /**
      Set SliderDrawTickMarks
    */
    static
    void setSliderDrawTickMarks( bool v )
    {
      if (!self()->isSliderDrawTickMarksImmutable())
        self()->mSliderDrawTickMarks = v;
    }

    /**
      Get SliderDrawTickMarks
    */
    static
    bool sliderDrawTickMarks()
    {
      return self()->mSliderDrawTickMarks;
    }

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

    /**
      Set ViewDrawTreeBranchLines
    */
    static
    void setViewDrawTreeBranchLines( bool v )
    {
      if (!self()->isViewDrawTreeBranchLinesImmutable())
        self()->mViewDrawTreeBranchLines = v;
    }

    /**
      Get ViewDrawTreeBranchLines
    */
    static
    bool viewDrawTreeBranchLines()
    {
      return self()->mViewDrawTreeBranchLines;
    }

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

    /**
      Set ViewInvertSortIndicator
    */
    static
    void setViewInvertSortIndicator( bool v )
    {
      if (!self()->isViewInvertSortIndicatorImmutable())
        self()->mViewInvertSortIndicator = v;
    }

    /**
      Get ViewInvertSortIndicator
    */
    static
    bool viewInvertSortIndicator()
    {
      return self()->mViewInvertSortIndicator;
    }

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

    /**
      Set TabBarDrawCenteredTabs
    */
    static
    void setTabBarDrawCenteredTabs( bool v )
    {
      if (!self()->isTabBarDrawCenteredTabsImmutable())
        self()->mTabBarDrawCenteredTabs = v;
    }

    /**
      Get TabBarDrawCenteredTabs
    */
    static
    bool tabBarDrawCenteredTabs()
    {
      return self()->mTabBarDrawCenteredTabs;
    }

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

    /**
      Set DockWidgetDrawFrame
    */
    static
    void setDockWidgetDrawFrame( bool v )
    {
      if (!self()->isDockWidgetDrawFrameImmutable())
        self()->mDockWidgetDrawFrame = v;
    }

    /**
      Get DockWidgetDrawFrame
    */
    static
    bool dockWidgetDrawFrame()
    {
      return self()->mDockWidgetDrawFrame;
    }

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

    /**
      Set SidePanelDrawFrame
    */
    static
    void setSidePanelDrawFrame( bool v )
    {
      if (!self()->isSidePanelDrawFrameImmutable())
        self()->mSidePanelDrawFrame = v;
    }

    /**
      Get SidePanelDrawFrame
    */
    static
    bool sidePanelDrawFrame()
    {
      return self()->mSidePanelDrawFrame;
    }

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

    /**
      Set MenuItemDrawStrongFocus
    */
    static
    void setMenuItemDrawStrongFocus( bool v )
    {
      if (!self()->isMenuItemDrawStrongFocusImmutable())
        self()->mMenuItemDrawStrongFocus = v;
    }

    /**
      Get MenuItemDrawStrongFocus
    */
    static
    bool menuItemDrawStrongFocus()
    {
      return self()->mMenuItemDrawStrongFocus;
    }

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

    /**
      Set WindowDragMode
    */
    static
    void setWindowDragMode( int v )
    {
      if (!self()->isWindowDragModeImmutable())
        self()->mWindowDragMode = v;
    }

    /**
      Get WindowDragMode
    */
    static
    int windowDragMode()
    {
      return self()->mWindowDragMode;
    }

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

    /**
      Set WindowDragWhiteList
    */
    static
    void setWindowDragWhiteList( const QStringList & v )
    {
      if (!self()->isWindowDragWhiteListImmutable())
        self()->mWindowDragWhiteList = v;
    }

    /**
      Get WindowDragWhiteList
    */
    static
    QStringList windowDragWhiteList()
    {
      return self()->mWindowDragWhiteList;
    }

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

    /**
      Set WindowDragBlackList
    */
    static
    void setWindowDragBlackList( const QStringList & v )
    {
      if (!self()->isWindowDragBlackListImmutable())
        self()->mWindowDragBlackList = v;
    }

    /**
      Get WindowDragBlackList
    */
    static
    QStringList windowDragBlackList()
    {
      return self()->mWindowDragBlackList;
    }

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

    /**
      Set SplitterProxyEnabled
    */
    static
    void setSplitterProxyEnabled( bool v )
    {
      if (!self()->isSplitterProxyEnabledImmutable())
        self()->mSplitterProxyEnabled = v;
    }

    /**
      Get SplitterProxyEnabled
    */
    static
    bool splitterProxyEnabled()
    {
      return self()->mSplitterProxyEnabled;
    }

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

    /**
      Set SplitterProxyWidth
    */
    static
    void setSplitterProxyWidth( int v )
    {
      if (!self()->isSplitterProxyWidthImmutable())
        self()->mSplitterProxyWidth = v;
    }

    /**
      Get SplitterProxyWidth
    */
    static
    int splitterProxyWidth()
    {
      return self()->mSplitterProxyWidth;
    }

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

    /**
      Set WidgetExplorerEnabled
    */
    static
    void setWidgetExplorerEnabled( bool v )
    {
      if (!self()->isWidgetExplorerEnabledImmutable())
        self()->mWidgetExplorerEnabled = v;
    }

    /**
      Get WidgetExplorerEnabled
    */
    static
    bool widgetExplorerEnabled()
    {
      return self()->mWidgetExplorerEnabled;
    }

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

    /**
      Set DrawWidgetRects
    */
    static
    void setDrawWidgetRects( bool v )
    {
      if (!self()->isDrawWidgetRectsImmutable())
        self()->mDrawWidgetRects = v;
    }

    /**
      Get DrawWidgetRects
    */
    static
    bool drawWidgetRects()
    {
      return self()->mDrawWidgetRects;
    }

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

    /**
      Set MenuOpacity
    */
    static
    void setMenuOpacity( int v )
    {
      if (!self()->isMenuOpacityImmutable())
        self()->mMenuOpacity = v;
    }

    /**
      Get MenuOpacity
    */
    static
    int menuOpacity()
    {
      return self()->mMenuOpacity;
    }

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

  protected:
    StyleConfigData();
    friend class StyleConfigDataHelper;


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

    // Style
    bool mAnimationsEnabled;
    int mAnimationSteps;
    int mAnimationsDuration;
    bool mStackedWidgetTransitionsEnabled;
    bool mProgressBarAnimated;
    int mProgressBarBusyStepDuration;
    int mScrollBarAddLineButtons;
    int mScrollBarSubLineButtons;
    int mMnemonicsMode;
    bool mToolBarDrawItemSeparator;
    bool mViewDrawFocusIndicator;
    bool mSliderDrawTickMarks;
    bool mViewDrawTreeBranchLines;
    bool mViewInvertSortIndicator;
    bool mTabBarDrawCenteredTabs;
    bool mDockWidgetDrawFrame;
    bool mSidePanelDrawFrame;
    bool mMenuItemDrawStrongFocus;
    int mWindowDragMode;
    QStringList mWindowDragWhiteList;
    QStringList mWindowDragBlackList;
    bool mSplitterProxyEnabled;
    int mSplitterProxyWidth;
    bool mWidgetExplorerEnabled;
    bool mDrawWidgetRects;
    int mMenuOpacity;

  private:
};

}

#endif

