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

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

#include <QFontDatabase>
class Settings : public KConfigSkeleton
{
  public:
    class EnumDefaultEquationForm
    {
      public:
      enum type { Function, Implicit, COUNT };
    };

    static Settings *self();
    ~Settings();

    /**
      Set Axis-line width
    */
    static
    void setAxesLineWidth( double v )
    {
      if (!self()->isImmutable( QStringLiteral( "AxesLineWidth" ) ))
        self()->mAxesLineWidth = v;
    }

    /**
      Get Axis-line width
    */
    static
    double axesLineWidth()
    {
      return self()->mAxesLineWidth;
    }

    /**
      Set Checked if labels are visible
    */
    static
    void setShowLabel( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "ShowLabel" ) ))
        self()->mShowLabel = v;
    }

    /**
      Get Checked if labels are visible
    */
    static
    bool showLabel()
    {
      return self()->mShowLabel;
    }

    /**
      Set Checked if axes are visible
    */
    static
    void setShowAxes( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "ShowAxes" ) ))
        self()->mShowAxes = v;
    }

    /**
      Get Checked if axes are visible
    */
    static
    bool showAxes()
    {
      return self()->mShowAxes;
    }

    /**
      Set Checked if arrows are visible
    */
    static
    void setShowArrows( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "ShowArrows" ) ))
        self()->mShowArrows = v;
    }

    /**
      Get Checked if arrows are visible
    */
    static
    bool showArrows()
    {
      return self()->mShowArrows;
    }

    /**
      Set Grid Line Width
    */
    static
    void setGridLineWidth( double v )
    {
      if (!self()->isImmutable( QStringLiteral( "GridLineWidth" ) ))
        self()->mGridLineWidth = v;
    }

    /**
      Get Grid Line Width
    */
    static
    double gridLineWidth()
    {
      return self()->mGridLineWidth;
    }

    /**
      Set Grid Style
    */
    static
    void setGridStyle( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "GridStyle" ) ))
        self()->mGridStyle = v;
    }

    /**
      Get Grid Style
    */
    static
    int gridStyle()
    {
      return self()->mGridStyle;
    }

    /**
      Set Tic length
    */
    static
    void setTicLength( double v )
    {
      if (!self()->isImmutable( QStringLiteral( "TicLength" ) ))
        self()->mTicLength = v;
    }

    /**
      Get Tic length
    */
    static
    double ticLength()
    {
      return self()->mTicLength;
    }

    /**
      Set Tic width
    */
    static
    void setTicWidth( double v )
    {
      if (!self()->isImmutable( QStringLiteral( "TicWidth" ) ))
        self()->mTicWidth = v;
    }

    /**
      Get Tic width
    */
    static
    double ticWidth()
    {
      return self()->mTicWidth;
    }

    /**
      Set Left boundary
    */
    static
    void setXMin( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "XMin" ) ))
        self()->mXMin = v;
    }

    /**
      Get Left boundary
    */
    static
    QString xMin()
    {
      return self()->mXMin;
    }

    /**
      Set Right boundary
    */
    static
    void setXMax( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "XMax" ) ))
        self()->mXMax = v;
    }

    /**
      Get Right boundary
    */
    static
    QString xMax()
    {
      return self()->mXMax;
    }

    /**
      Set Lower boundary
    */
    static
    void setYMin( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "YMin" ) ))
        self()->mYMin = v;
    }

    /**
      Get Lower boundary
    */
    static
    QString yMin()
    {
      return self()->mYMin;
    }

    /**
      Set Upper boundary
    */
    static
    void setYMax( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "YMax" ) ))
        self()->mYMax = v;
    }

    /**
      Get Upper boundary
    */
    static
    QString yMax()
    {
      return self()->mYMax;
    }

    /**
      Set Label to Horizontal Axis
    */
    static
    void setLabelHorizontalAxis( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "LabelHorizontalAxis" ) ))
        self()->mLabelHorizontalAxis = v;
    }

    /**
      Get Label to Horizontal Axis
    */
    static
    QString labelHorizontalAxis()
    {
      return self()->mLabelHorizontalAxis;
    }

    /**
      Set Label to Vertical Axis
    */
    static
    void setLabelVerticalAxis( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "LabelVerticalAxis" ) ))
        self()->mLabelVerticalAxis = v;
    }

    /**
      Get Label to Vertical Axis
    */
    static
    QString labelVerticalAxis()
    {
      return self()->mLabelVerticalAxis;
    }

    /**
      Set Whether to use automatic or custom scaling.
    */
    static
    void setXScalingMode( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "XScalingMode" ) ))
        self()->mXScalingMode = v;
    }

    /**
      Get Whether to use automatic or custom scaling.
    */
    static
    int xScalingMode()
    {
      return self()->mXScalingMode;
    }

    /**
      Set Whether to use automatic or custom scaling.
    */
    static
    void setYScalingMode( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "YScalingMode" ) ))
        self()->mYScalingMode = v;
    }

    /**
      Get Whether to use automatic or custom scaling.
    */
    static
    int yScalingMode()
    {
      return self()->mYScalingMode;
    }

    /**
      Set Width of a unit from tic to tic
    */
    static
    void setXScaling( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "XScaling" ) ))
        self()->mXScaling = v;
    }

    /**
      Get Width of a unit from tic to tic
    */
    static
    QString xScaling()
    {
      return self()->mXScaling;
    }

    /**
      Set Height of a unit from tic to tic
    */
    static
    void setYScaling( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "YScaling" ) ))
        self()->mYScaling = v;
    }

    /**
      Get Height of a unit from tic to tic
    */
    static
    QString yScaling()
    {
      return self()->mYScaling;
    }

    /**
      Set Font of the axis labels
    */
    static
    void setAxesFont( const QFont & v )
    {
      if (!self()->isImmutable( QStringLiteral( "AxesFont" ) ))
        self()->mAxesFont = v;
    }

    /**
      Get Font of the axis labels
    */
    static
    QFont axesFont()
    {
      return self()->mAxesFont;
    }

    /**
      Set Font of the printed header table
    */
    static
    void setHeaderTableFont( const QFont & v )
    {
      if (!self()->isImmutable( QStringLiteral( "HeaderTableFont" ) ))
        self()->mHeaderTableFont = v;
    }

    /**
      Get Font of the printed header table
    */
    static
    QFont headerTableFont()
    {
      return self()->mHeaderTableFont;
    }

    /**
      Set Font of diagram labels
    */
    static
    void setLabelFont( const QFont & v )
    {
      if (!self()->isImmutable( QStringLiteral( "LabelFont" ) ))
        self()->mLabelFont = v;
    }

    /**
      Get Font of diagram labels
    */
    static
    QFont labelFont()
    {
      return self()->mLabelFont;
    }

    /**
      Set Axis-line color
    */
    static
    void setAxesColor( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "AxesColor" ) ))
        self()->mAxesColor = v;
    }

    /**
      Get Axis-line color
    */
    static
    QColor axesColor()
    {
      return self()->mAxesColor;
    }

    /**
      Set Grid Color
    */
    static
    void setGridColor( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "GridColor" ) ))
        self()->mGridColor = v;
    }

    /**
      Get Grid Color
    */
    static
    QColor gridColor()
    {
      return self()->mGridColor;
    }

    /**
      Set Color of function 1
    */
    static
    void setColor0( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Color0" ) ))
        self()->mColor0 = v;
    }

    /**
      Get Color of function 1
    */
    static
    QColor color0()
    {
      return self()->mColor0;
    }

    /**
      Set Color of function 2
    */
    static
    void setColor1( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Color1" ) ))
        self()->mColor1 = v;
    }

    /**
      Get Color of function 2
    */
    static
    QColor color1()
    {
      return self()->mColor1;
    }

    /**
      Set Color of function 3
    */
    static
    void setColor2( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Color2" ) ))
        self()->mColor2 = v;
    }

    /**
      Get Color of function 3
    */
    static
    QColor color2()
    {
      return self()->mColor2;
    }

    /**
      Set Color of function 4
    */
    static
    void setColor3( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Color3" ) ))
        self()->mColor3 = v;
    }

    /**
      Get Color of function 4
    */
    static
    QColor color3()
    {
      return self()->mColor3;
    }

    /**
      Set Color of function 5
    */
    static
    void setColor4( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Color4" ) ))
        self()->mColor4 = v;
    }

    /**
      Get Color of function 5
    */
    static
    QColor color4()
    {
      return self()->mColor4;
    }

    /**
      Set Color of function 6
    */
    static
    void setColor5( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Color5" ) ))
        self()->mColor5 = v;
    }

    /**
      Get Color of function 6
    */
    static
    QColor color5()
    {
      return self()->mColor5;
    }

    /**
      Set Color of function 7
    */
    static
    void setColor6( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Color6" ) ))
        self()->mColor6 = v;
    }

    /**
      Get Color of function 7
    */
    static
    QColor color6()
    {
      return self()->mColor6;
    }

    /**
      Set Color of function 8
    */
    static
    void setColor7( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Color7" ) ))
        self()->mColor7 = v;
    }

    /**
      Get Color of function 8
    */
    static
    QColor color7()
    {
      return self()->mColor7;
    }

    /**
      Set Color of function 9
    */
    static
    void setColor8( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Color8" ) ))
        self()->mColor8 = v;
    }

    /**
      Get Color of function 9
    */
    static
    QColor color8()
    {
      return self()->mColor8;
    }

    /**
      Set Color of function 10
    */
    static
    void setColor9( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "Color9" ) ))
        self()->mColor9 = v;
    }

    /**
      Get Color of function 10
    */
    static
    QColor color9()
    {
      return self()->mColor9;
    }

    /**
      Set Radians instead of degrees
    */
    static
    void setAnglemode( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "anglemode" ) ))
        self()->mAnglemode = v;
    }

    /**
      Get Radians instead of degrees
    */
    static
    int anglemode()
    {
      return self()->mAnglemode;
    }

    /**
      Set Background color
    */
    static
    void setBackgroundcolor( const QColor & v )
    {
      if (!self()->isImmutable( QStringLiteral( "backgroundcolor" ) ))
        self()->mBackgroundcolor = v;
    }

    /**
      Get Background color
    */
    static
    QColor backgroundcolor()
    {
      return self()->mBackgroundcolor;
    }

    /**
      Set Zoom-in step
    */
    static
    void setZoomInStep( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "zoomInStep" ) ))
        self()->mZoomInStep = v;
    }

    /**
      Get Zoom-in step
    */
    static
    int zoomInStep()
    {
      return self()->mZoomInStep;
    }

    /**
      Set Zoom-out step
    */
    static
    void setZoomOutStep( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "zoomOutStep" ) ))
        self()->mZoomOutStep = v;
    }

    /**
      Get Zoom-out step
    */
    static
    int zoomOutStep()
    {
      return self()->mZoomOutStep;
    }

    /**
      Set Extra detail when tracing
    */
    static
    void setDetailedTracing( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "DetailedTracing" ) ))
        self()->mDetailedTracing = v;
    }

    /**
      Get Extra detail when tracing
    */
    static
    bool detailedTracing()
    {
      return self()->mDetailedTracing;
    }

    /**
      Set DefaultEquationForm
    */
    static
    void setDefaultEquationForm( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "DefaultEquationForm" ) ))
        self()->mDefaultEquationForm = v;
    }

    /**
      Get DefaultEquationForm
    */
    static
    int defaultEquationForm()
    {
      return self()->mDefaultEquationForm;
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // Coordinate System
    double mAxesLineWidth;
    bool mShowLabel;
    bool mShowAxes;
    bool mShowArrows;
    double mGridLineWidth;
    int mGridStyle;
    double mTicLength;
    double mTicWidth;
    QString mXMin;
    QString mXMax;
    QString mYMin;
    QString mYMax;
    QString mLabelHorizontalAxis;
    QString mLabelVerticalAxis;

    // Scaling
    int mXScalingMode;
    int mYScalingMode;
    QString mXScaling;
    QString mYScaling;

    // Fonts
    QFont mAxesFont;
    QFont mHeaderTableFont;
    QFont mLabelFont;

    // Colors
    QColor mAxesColor;
    QColor mGridColor;
    QColor mColor0;
    QColor mColor1;
    QColor mColor2;
    QColor mColor3;
    QColor mColor4;
    QColor mColor5;
    QColor mColor6;
    QColor mColor7;
    QColor mColor8;
    QColor mColor9;

    // General
    int mAnglemode;
    QColor mBackgroundcolor;
    int mZoomInStep;
    int mZoomOutStep;
    bool mDetailedTracing;
    int mDefaultEquationForm;

  private:
};

#endif

