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

#include <choqok_export.h>
#include <klocalizedstring.h>

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

#include <QFontDatabase>

namespace Choqok {

class CHOQOK_EXPORT AppearanceSettings : public KConfigSkeleton
{
  public:

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

    /**
      Set isEmoticonsEnabled
    */
    static
    void setIsEmoticonsEnabled( bool v )
    {
      if (!self()->isIsEmoticonsEnabledImmutable())
        self()->mIsEmoticonsEnabled = v;
    }

    /**
      Get isEmoticonsEnabled
    */
    static
    bool isEmoticonsEnabled()
    {
      return self()->mIsEmoticonsEnabled;
    }

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

    /**
      Get Item object corresponding to isEmoticonsEnabled()
    */
    ItemBool *isEmoticonsEnabledItem()
    {
      return mIsEmoticonsEnabledItem;
    }

    /**
      Set isCustomUi
    */
    static
    void setIsCustomUi( bool v )
    {
      if (!self()->isIsCustomUiImmutable())
        self()->mIsCustomUi = v;
    }

    /**
      Get isCustomUi
    */
    static
    bool isCustomUi()
    {
      return self()->mIsCustomUi;
    }

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

    /**
      Get Item object corresponding to isCustomUi()
    */
    ItemBool *isCustomUiItem()
    {
      return mIsCustomUiItem;
    }

    /**
      Set readBackColor
    */
    static
    void setReadBackColor( const QColor & v )
    {
      if (!self()->isReadBackColorImmutable())
        self()->mReadBackColor = v;
    }

    /**
      Get readBackColor
    */
    static
    QColor readBackColor()
    {
      return self()->mReadBackColor;
    }

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

    /**
      Get Item object corresponding to readBackColor()
    */
    ItemColor *readBackColorItem()
    {
      return mReadBackColorItem;
    }

    /**
      Set unreadBackColor
    */
    static
    void setUnreadBackColor( const QColor & v )
    {
      if (!self()->isUnreadBackColorImmutable())
        self()->mUnreadBackColor = v;
    }

    /**
      Get unreadBackColor
    */
    static
    QColor unreadBackColor()
    {
      return self()->mUnreadBackColor;
    }

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

    /**
      Get Item object corresponding to unreadBackColor()
    */
    ItemColor *unreadBackColorItem()
    {
      return mUnreadBackColorItem;
    }

    /**
      Set ownBackColor
    */
    static
    void setOwnBackColor( const QColor & v )
    {
      if (!self()->isOwnBackColorImmutable())
        self()->mOwnBackColor = v;
    }

    /**
      Get ownBackColor
    */
    static
    QColor ownBackColor()
    {
      return self()->mOwnBackColor;
    }

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

    /**
      Get Item object corresponding to ownBackColor()
    */
    ItemColor *ownBackColorItem()
    {
      return mOwnBackColorItem;
    }

    /**
      Set readForeColor
    */
    static
    void setReadForeColor( const QColor & v )
    {
      if (!self()->isReadForeColorImmutable())
        self()->mReadForeColor = v;
    }

    /**
      Get readForeColor
    */
    static
    QColor readForeColor()
    {
      return self()->mReadForeColor;
    }

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

    /**
      Get Item object corresponding to readForeColor()
    */
    ItemColor *readForeColorItem()
    {
      return mReadForeColorItem;
    }

    /**
      Set unreadForeColor
    */
    static
    void setUnreadForeColor( const QColor & v )
    {
      if (!self()->isUnreadForeColorImmutable())
        self()->mUnreadForeColor = v;
    }

    /**
      Get unreadForeColor
    */
    static
    QColor unreadForeColor()
    {
      return self()->mUnreadForeColor;
    }

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

    /**
      Get Item object corresponding to unreadForeColor()
    */
    ItemColor *unreadForeColorItem()
    {
      return mUnreadForeColorItem;
    }

    /**
      Set ownForeColor
    */
    static
    void setOwnForeColor( const QColor & v )
    {
      if (!self()->isOwnForeColorImmutable())
        self()->mOwnForeColor = v;
    }

    /**
      Get ownForeColor
    */
    static
    QColor ownForeColor()
    {
      return self()->mOwnForeColor;
    }

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

    /**
      Get Item object corresponding to ownForeColor()
    */
    ItemColor *ownForeColorItem()
    {
      return mOwnForeColorItem;
    }

    /**
      Set showRetweetsInChoqokWay
    */
    static
    void setShowRetweetsInChoqokWay( bool v )
    {
      if (!self()->isShowRetweetsInChoqokWayImmutable())
        self()->mShowRetweetsInChoqokWay = v;
    }

    /**
      Get showRetweetsInChoqokWay
    */
    static
    bool showRetweetsInChoqokWay()
    {
      return self()->mShowRetweetsInChoqokWay;
    }

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

    /**
      Get Item object corresponding to showRetweetsInChoqokWay()
    */
    ItemBool *showRetweetsInChoqokWayItem()
    {
      return mShowRetweetsInChoqokWayItem;
    }

    /**
      Set useReverseOrder
    */
    static
    void setUseReverseOrder( bool v )
    {
      if (!self()->isUseReverseOrderImmutable())
        self()->mUseReverseOrder = v;
    }

    /**
      Get useReverseOrder
    */
    static
    bool useReverseOrder()
    {
      return self()->mUseReverseOrder;
    }

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

    /**
      Get Item object corresponding to useReverseOrder()
    */
    ItemBool *useReverseOrderItem()
    {
      return mUseReverseOrderItem;
    }

    /**
      Set font
    */
    static
    void setFont( const QFont & v )
    {
      if (!self()->isFontImmutable())
        self()->mFont = v;
    }

    /**
      Get font
    */
    static
    QFont font()
    {
      return self()->mFont;
    }

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

    /**
      Get Item object corresponding to font()
    */
    ItemFont *fontItem()
    {
      return mFontItem;
    }

    /**
      Set TabBarPosition
    */
    static
    void setTabBarPosition( int v )
    {
      if (!self()->isTabBarPositionImmutable())
        self()->mTabBarPosition = v;
    }

    /**
      Get TabBarPosition
    */
    static
    int tabBarPosition()
    {
      return self()->mTabBarPosition;
    }

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

    /**
      Get Item object corresponding to TabBarPosition()
    */
    ItemInt *tabBarPositionItem()
    {
      return mTabBarPositionItem;
    }

    /**
      Set TabBarSize
    */
    static
    void setTabBarSize( int v )
    {
      if (!self()->isTabBarSizeImmutable())
        self()->mTabBarSize = v;
    }

    /**
      Get TabBarSize
    */
    static
    int tabBarSize()
    {
      return self()->mTabBarSize;
    }

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

    /**
      Get Item object corresponding to TabBarSize()
    */
    ItemInt *tabBarSizeItem()
    {
      return mTabBarSizeItem;
    }

    /**
      Set TabBarIsStyled
    */
    static
    void setTabBarIsStyled( bool v )
    {
      if (!self()->isTabBarIsStyledImmutable())
        self()->mTabBarIsStyled = v;
    }

    /**
      Get TabBarIsStyled
    */
    static
    bool tabBarIsStyled()
    {
      return self()->mTabBarIsStyled;
    }

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

    /**
      Get Item object corresponding to TabBarIsStyled()
    */
    ItemBool *tabBarIsStyledItem()
    {
      return mTabBarIsStyledItem;
    }

  protected:
    AppearanceSettings();
    friend class AppearanceSettingsHelper;


    // Appearance
    bool mIsEmoticonsEnabled;
    bool mIsCustomUi;
    QColor mReadBackColor;
    QColor mUnreadBackColor;
    QColor mOwnBackColor;
    QColor mReadForeColor;
    QColor mUnreadForeColor;
    QColor mOwnForeColor;
    bool mShowRetweetsInChoqokWay;
    bool mUseReverseOrder;
    QFont mFont;

    // TabBar
    int mTabBarPosition;
    int mTabBarSize;
    bool mTabBarIsStyled;

  private:
    ItemBool *mIsEmoticonsEnabledItem;
    ItemBool *mIsCustomUiItem;
    ItemColor *mReadBackColorItem;
    ItemColor *mUnreadBackColorItem;
    ItemColor *mOwnBackColorItem;
    ItemColor *mReadForeColorItem;
    ItemColor *mUnreadForeColorItem;
    ItemColor *mOwnForeColorItem;
    ItemBool *mShowRetweetsInChoqokWayItem;
    ItemBool *mUseReverseOrderItem;
    ItemFont *mFontItem;
    ItemInt *mTabBarPositionItem;
    ItemInt *mTabBarSizeItem;
    ItemBool *mTabBarIsStyledItem;
};

}

#endif

