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

#include <nightcolormanager.h>

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

namespace KWin {

class NightColorSettings : public KConfigSkeleton
{
  public:

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

    /**
      Set Active
    */
    static
    void setActive( bool v )
    {
      if (!self()->isActiveImmutable())
        self()->mActive = v;
    }

    /**
      Get Active
    */
    static
    bool active()
    {
      return self()->mActive;
    }

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

    /**
      Set Mode
    */
    static
    void setMode( KWin::NightColorMode v )
    {
      if (!self()->isModeImmutable())
        self()->mMode = v;
    }

    /**
      Get Mode
    */
    static
    KWin::NightColorMode mode()
    {
      return static_cast<KWin::NightColorMode>(self()->mMode);
    }

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

    /**
      Set DayTemperature
    */
    static
    void setDayTemperature( int v )
    {
      if (!self()->isDayTemperatureImmutable())
        self()->mDayTemperature = v;
    }

    /**
      Get DayTemperature
    */
    static
    int dayTemperature()
    {
      return self()->mDayTemperature;
    }

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

    /**
      Set NightTemperature
    */
    static
    void setNightTemperature( int v )
    {
      if (!self()->isNightTemperatureImmutable())
        self()->mNightTemperature = v;
    }

    /**
      Get NightTemperature
    */
    static
    int nightTemperature()
    {
      return self()->mNightTemperature;
    }

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

    /**
      Set LatitudeAuto
    */
    static
    void setLatitudeAuto( double v )
    {
      if (!self()->isLatitudeAutoImmutable())
        self()->mLatitudeAuto = v;
    }

    /**
      Get LatitudeAuto
    */
    static
    double latitudeAuto()
    {
      return self()->mLatitudeAuto;
    }

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

    /**
      Set LongitudeAuto
    */
    static
    void setLongitudeAuto( double v )
    {
      if (!self()->isLongitudeAutoImmutable())
        self()->mLongitudeAuto = v;
    }

    /**
      Get LongitudeAuto
    */
    static
    double longitudeAuto()
    {
      return self()->mLongitudeAuto;
    }

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

    /**
      Set LatitudeFixed
    */
    static
    void setLatitudeFixed( double v )
    {
      if (!self()->isLatitudeFixedImmutable())
        self()->mLatitudeFixed = v;
    }

    /**
      Get LatitudeFixed
    */
    static
    double latitudeFixed()
    {
      return self()->mLatitudeFixed;
    }

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

    /**
      Set LongitudeFixed
    */
    static
    void setLongitudeFixed( double v )
    {
      if (!self()->isLongitudeFixedImmutable())
        self()->mLongitudeFixed = v;
    }

    /**
      Get LongitudeFixed
    */
    static
    double longitudeFixed()
    {
      return self()->mLongitudeFixed;
    }

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

    /**
      Set MorningBeginFixed
    */
    static
    void setMorningBeginFixed( const QString & v )
    {
      if (!self()->isMorningBeginFixedImmutable())
        self()->mMorningBeginFixed = v;
    }

    /**
      Get MorningBeginFixed
    */
    static
    QString morningBeginFixed()
    {
      return self()->mMorningBeginFixed;
    }

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

    /**
      Set EveningBeginFixed
    */
    static
    void setEveningBeginFixed( const QString & v )
    {
      if (!self()->isEveningBeginFixedImmutable())
        self()->mEveningBeginFixed = v;
    }

    /**
      Get EveningBeginFixed
    */
    static
    QString eveningBeginFixed()
    {
      return self()->mEveningBeginFixed;
    }

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

    /**
      Set TransitionTime
    */
    static
    void setTransitionTime( int v )
    {
      if (!self()->isTransitionTimeImmutable())
        self()->mTransitionTime = v;
    }

    /**
      Get TransitionTime
    */
    static
    int transitionTime()
    {
      return self()->mTransitionTime;
    }

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

  protected:
    NightColorSettings(KSharedConfig::Ptr config);
    friend class NightColorSettingsHelper;


    // NightColor
    bool mActive;
    int mMode;
    int mDayTemperature;
    int mNightTemperature;
    double mLatitudeAuto;
    double mLongitudeAuto;
    double mLatitudeFixed;
    double mLongitudeFixed;
    QString mMorningBeginFixed;
    QString mEveningBeginFixed;
    int mTransitionTime;
};

}

#endif

