// This file is generated by tdeconfig_compiler from ktouch.kcfg.
// All changes you do to this file will be lost.
#ifndef PREFS_H
#define PREFS_H

#include <tdeglobalsettings.h>

#include <tdeconfigskeleton.h>
#include <kdebug.h>

class Prefs : public TDEConfigSkeleton
{
  public:

    static Prefs *self();
    ~Prefs();

    /**
      Set The number of the current color scheme.
    */
    static
    void setCurrentColorScheme( int v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "CurrentColorScheme" ) ))
        self()->mCurrentColorScheme = v;
    }

    /**
      Get The number of the current color scheme.
    */
    static
    int currentColorScheme()
    {
      return self()->mCurrentColorScheme;
    }

    /**
      Set Use the same typing line colors independent of color scheme.
    */
    static
    void setCommonTypingLineColors( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "CommonTypingLineColors" ) ))
        self()->mCommonTypingLineColors = v;
    }

    /**
      Get Use the same typing line colors independent of color scheme.
    */
    static
    bool commonTypingLineColors()
    {
      return self()->mCommonTypingLineColors;
    }

    /**
      Set The background color for the teacher's line.
    */
    static
    void setTeacherBackgroundColor( const TQColor & v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "TeacherBackgroundColor" ) ))
        self()->mTeacherBackgroundColor = v;
    }

    /**
      Get The background color for the teacher's line.
    */
    static
    TQColor teacherBackgroundColor()
    {
      return self()->mTeacherBackgroundColor;
    }

    /**
      Set The text color for the teacher's line
    */
    static
    void setTeacherTextColor( const TQColor & v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "TeacherTextColor" ) ))
        self()->mTeacherTextColor = v;
    }

    /**
      Get The text color for the teacher's line
    */
    static
    TQColor teacherTextColor()
    {
      return self()->mTeacherTextColor;
    }

    /**
      Set The background color for the student's line.
    */
    static
    void setStudentBackgroundColor( const TQColor & v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "StudentBackgroundColor" ) ))
        self()->mStudentBackgroundColor = v;
    }

    /**
      Get The background color for the student's line.
    */
    static
    TQColor studentBackgroundColor()
    {
      return self()->mStudentBackgroundColor;
    }

    /**
      Set The text color for the student's line
    */
    static
    void setStudentTextColor( const TQColor & v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "StudentTextColor" ) ))
        self()->mStudentTextColor = v;
    }

    /**
      Get The text color for the student's line
    */
    static
    TQColor studentTextColor()
    {
      return self()->mStudentTextColor;
    }

    /**
      Set Whether to use a different background for wrong text or not.
    */
    static
    void setColorOnError( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "ColorOnError" ) ))
        self()->mColorOnError = v;
    }

    /**
      Get Whether to use a different background for wrong text or not.
    */
    static
    bool colorOnError()
    {
      return self()->mColorOnError;
    }

    /**
      Set The background color for wrong text (students line).
    */
    static
    void setErrorBackgroundColor( const TQColor & v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "ErrorBackgroundColor" ) ))
        self()->mErrorBackgroundColor = v;
    }

    /**
      Get The background color for wrong text (students line).
    */
    static
    TQColor errorBackgroundColor()
    {
      return self()->mErrorBackgroundColor;
    }

    /**
      Set The text color for wrong text (students line).
    */
    static
    void setErrorTextColor( const TQColor & v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "ErrorTextColor" ) ))
        self()->mErrorTextColor = v;
    }

    /**
      Get The text color for wrong text (students line).
    */
    static
    TQColor errorTextColor()
    {
      return self()->mErrorTextColor;
    }

    /**
      Set Emit a beep on each typing error
    */
    static
    void setBeepOnError( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "BeepOnError" ) ))
        self()->mBeepOnError = v;
    }

    /**
      Get Emit a beep on each typing error
    */
    static
    bool beepOnError()
    {
      return self()->mBeepOnError;
    }

    /**
      Set Play a sound on automatic level change
    */
    static
    void setSoundOnLevel( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "SoundOnLevel" ) ))
        self()->mSoundOnLevel = v;
    }

    /**
      Get Play a sound on automatic level change
    */
    static
    bool soundOnLevel()
    {
      return self()->mSoundOnLevel;
    }

    /**
      Set The sliding speed
    */
    static
    void setSlidingSpeed( int v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "SlidingSpeed" ) ))
        self()->mSlidingSpeed = v;
    }

    /**
      Get The sliding speed
    */
    static
    int slidingSpeed()
    {
      return self()->mSlidingSpeed;
    }

    /**
      Set The maximum height of the sliding widget
    */
    static
    void setMaxSlidingWidgetHeight( int v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "MaxSlidingWidgetHeight" ) ))
        self()->mMaxSlidingWidgetHeight = v;
    }

    /**
      Get The maximum height of the sliding widget
    */
    static
    int maxSlidingWidgetHeight()
    {
      return self()->mMaxSlidingWidgetHeight;
    }

    /**
      Set Override the default/predefined lecture fonts.
    */
    static
    void setOverrideLectureFont( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "OverrideLectureFont" ) ))
        self()->mOverrideLectureFont = v;
    }

    /**
      Get Override the default/predefined lecture fonts.
    */
    static
    bool overrideLectureFont()
    {
      return self()->mOverrideLectureFont;
    }

    /**
      Set The font for the student and teacher lines
    */
    static
    void setFont( const TQFont & v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "Font" ) ))
        self()->mFont = v;
    }

    /**
      Get The font for the student and teacher lines
    */
    static
    TQFont font()
    {
      return self()->mFont;
    }

    /**
      Set The currently loaded lecture file
    */
    static
    void setCurrentLectureFile( const TQString & v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "CurrentLectureFile" ) ))
        self()->mCurrentLectureFile = v;
    }

    /**
      Get The currently loaded lecture file
    */
    static
    TQString currentLectureFile()
    {
      return self()->mCurrentLectureFile;
    }

    /**
      Set Whether we use right-to-left typing.
    */
    static
    void setRight2LeftTyping( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "Right2LeftTyping" ) ))
        self()->mRight2LeftTyping = v;
    }

    /**
      Get Whether we use right-to-left typing.
    */
    static
    bool right2LeftTyping()
    {
      return self()->mRight2LeftTyping;
    }

    /**
      Set Whether to use colors on the keys or not.
    */
    static
    void setShowAnimation( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "ShowAnimation" ) ))
        self()->mShowAnimation = v;
    }

    /**
      Get Whether to use colors on the keys or not.
    */
    static
    bool showAnimation()
    {
      return self()->mShowAnimation;
    }

    /**
      Set Whether to hide the keyboard display.
    */
    static
    void setHideKeyboard( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "HideKeyboard" ) ))
        self()->mHideKeyboard = v;
    }

    /**
      Get Whether to hide the keyboard display.
    */
    static
    bool hideKeyboard()
    {
      return self()->mHideKeyboard;
    }

    /**
      Set Whether to override the default/predefined keyboard fonts.
    */
    static
    void setOverrideKeyboardFont( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "OverrideKeyboardFont" ) ))
        self()->mOverrideKeyboardFont = v;
    }

    /**
      Get Whether to override the default/predefined keyboard fonts.
    */
    static
    bool overrideKeyboardFont()
    {
      return self()->mOverrideKeyboardFont;
    }

    /**
      Set The font for the keys on the keyboard
    */
    static
    void setKeyboardFont( const TQFont & v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "KeyboardFont" ) ))
        self()->mKeyboardFont = v;
    }

    /**
      Get The font for the keys on the keyboard
    */
    static
    TQFont keyboardFont()
    {
      return self()->mKeyboardFont;
    }

    /**
      Set The currently loaded keyboard file
    */
    static
    void setCurrentKeyboardFile( const TQString & v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "CurrentKeyboardFile" ) ))
        self()->mCurrentKeyboardFile = v;
    }

    /**
      Get The currently loaded keyboard file
    */
    static
    TQString currentKeyboardFile()
    {
      return self()->mCurrentKeyboardFile;
    }

    /**
      Set Allow automatic level adjustments
    */
    static
    void setAutoLevelChange( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "AutoLevelChange" ) ))
        self()->mAutoLevelChange = v;
    }

    /**
      Get Allow automatic level adjustments
    */
    static
    bool autoLevelChange()
    {
      return self()->mAutoLevelChange;
    }

    /**
      Set Disable manual level adjustments when auto-level change is enabled
    */
    static
    void setDisableManualLevelChange( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "DisableManualLevelChange" ) ))
        self()->mDisableManualLevelChange = v;
    }

    /**
      Get Disable manual level adjustments when auto-level change is enabled
    */
    static
    bool disableManualLevelChange()
    {
      return self()->mDisableManualLevelChange;
    }

    /**
      Set Remember the current level for the next KTouch start
    */
    static
    void setRememberLevel( bool v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "RememberLevel" ) ))
        self()->mRememberLevel = v;
    }

    /**
      Get Remember the current level for the next KTouch start
    */
    static
    bool rememberLevel()
    {
      return self()->mRememberLevel;
    }

    /**
      Set The current training level
    */
    static
    void setCurrentTrainingLevel( int v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "CurrentTrainingLevel" ) ))
        self()->mCurrentTrainingLevel = v;
    }

    /**
      Get The current training level
    */
    static
    int currentTrainingLevel()
    {
      return self()->mCurrentTrainingLevel;
    }

    /**
      Set Number of chars per minute to increase a level
    */
    static
    void setUpSpeedLimit( int v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "UpSpeedLimit" ) ))
        self()->mUpSpeedLimit = v;
    }

    /**
      Get Number of chars per minute to increase a level
    */
    static
    int upSpeedLimit()
    {
      return self()->mUpSpeedLimit;
    }

    /**
      Set Percentage of correctness to increase a level
    */
    static
    void setUpCorrectLimit( int v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "UpCorrectLimit" ) ))
        self()->mUpCorrectLimit = v;
    }

    /**
      Get Percentage of correctness to increase a level
    */
    static
    int upCorrectLimit()
    {
      return self()->mUpCorrectLimit;
    }

    /**
      Set Number of chars per minute to decrease a level
    */
    static
    void setDownSpeedLimit( int v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "DownSpeedLimit" ) ))
        self()->mDownSpeedLimit = v;
    }

    /**
      Get Number of chars per minute to decrease a level
    */
    static
    int downSpeedLimit()
    {
      return self()->mDownSpeedLimit;
    }

    /**
      Set Percentage of correctness to decrease a level
    */
    static
    void setDownCorrectLimit( int v )
    {
      if (!self()->isImmutable( TQString::fromLatin1( "DownCorrectLimit" ) ))
        self()->mDownCorrectLimit = v;
    }

    /**
      Get Percentage of correctness to decrease a level
    */
    static
    int downCorrectLimit()
    {
      return self()->mDownCorrectLimit;
    }

    static
    void writeConfig()
    {
      static_cast<TDEConfigSkeleton*>(self())->writeConfig();
    }
  protected:
    Prefs();
    static Prefs *mSelf;


    // Colors
    int mCurrentColorScheme;
    bool mCommonTypingLineColors;
    TQColor mTeacherBackgroundColor;
    TQColor mTeacherTextColor;
    TQColor mStudentBackgroundColor;
    TQColor mStudentTextColor;
    bool mColorOnError;
    TQColor mErrorBackgroundColor;
    TQColor mErrorTextColor;

    // General
    bool mBeepOnError;
    bool mSoundOnLevel;
    int mSlidingSpeed;
    int mMaxSlidingWidgetHeight;
    bool mOverrideLectureFont;
    TQFont mFont;
    TQString mCurrentLectureFile;
    bool mRight2LeftTyping;

    // Keyboard
    bool mShowAnimation;
    bool mHideKeyboard;
    bool mOverrideKeyboardFont;
    TQFont mKeyboardFont;
    TQString mCurrentKeyboardFile;

    // Training
    bool mAutoLevelChange;
    bool mDisableManualLevelChange;
    bool mRememberLevel;
    int mCurrentTrainingLevel;
    int mUpSpeedLimit;
    int mUpCorrectLimit;
    int mDownSpeedLimit;
    int mDownCorrectLimit;

  private:
};

#endif

