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

#include <kpanelextension.h>

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

#include <tdeapplication.h>
#include <kpanelextension.h>
#include <unhidetrigger.h>
class ExtensionSettings : public TDEConfigSkeleton
{
  public:

    ExtensionSettings( TDESharedConfig::Ptr config = TDEGlobal::sharedConfig() );
    ~ExtensionSettings();

    /**
      Set Whether this panel actually exists or not. Primarily to work around the fact that TDEConfigXT won't write a config file unless there is at least one non-default entry.
    */
    void setIExist( bool v )
    {
      if (!isImmutable( TQString::fromLatin1( "IExist" ) ))
        mIExist = v;
    }

    /**
      Get Whether this panel actually exists or not. Primarily to work around the fact that TDEConfigXT won't write a config file unless there is at least one non-default entry.
    */
    bool iExist() const
    {
      return mIExist;
    }

    /**
      Set The position of the panel
    */
    void setPosition( int v )
    {
      if (v < 0)
      {
        kdDebug() << "setPosition: value " << v << " is less than the minimum value of 0" << endl;
        v = 0;
      }

      if (v > 3)
      {
        kdDebug() << "setPosition: value " << v << " is greater than the maximum value of 3" << endl;
        v = 3;
      }

      if (!isImmutable( TQString::fromLatin1( "Position" ) ))
        mPosition = v;
    }

    /**
      Get The position of the panel
    */
    int position() const
    {
      return mPosition;
    }

    /**
      Set The alignment of the panel
    */
    void setAlignment( int v )
    {
      if (v < 0)
      {
        kdDebug() << "setAlignment: value " << v << " is less than the minimum value of 0" << endl;
        v = 0;
      }

      if (v > 2)
      {
        kdDebug() << "setAlignment: value " << v << " is greater than the maximum value of 2" << endl;
        v = 2;
      }

      if (!isImmutable( TQString::fromLatin1( "Alignment" ) ))
        mAlignment = v;
    }

    /**
      Get The alignment of the panel
    */
    int alignment() const
    {
      return mAlignment;
    }

    /**
      Set Primary xinerama screen
    */
    void setXineramaScreen( int v )
    {
      if (!isImmutable( TQString::fromLatin1( "XineramaScreen" ) ))
        mXineramaScreen = v;
    }

    /**
      Get Primary xinerama screen
    */
    int xineramaScreen() const
    {
      return mXineramaScreen;
    }

    /**
      Set Hide button size
    */
    void setHideButtonSize( int v )
    {
      if (v < 3)
      {
        kdDebug() << "setHideButtonSize: value " << v << " is less than the minimum value of 3" << endl;
        v = 3;
      }

      if (v > 48)
      {
        kdDebug() << "setHideButtonSize: value " << v << " is greater than the maximum value of 48" << endl;
        v = 48;
      }

      if (!isImmutable( TQString::fromLatin1( "HideButtonSize" ) ))
        mHideButtonSize = v;
    }

    /**
      Get Hide button size
    */
    int hideButtonSize() const
    {
      return mHideButtonSize;
    }

    /**
      Set Show left panel hide button
    */
    void setShowLeftHideButton( bool v )
    {
      if (!isImmutable( TQString::fromLatin1( "ShowLeftHideButton" ) ))
        mShowLeftHideButton = v;
    }

    /**
      Get Show left panel hide button
    */
    bool showLeftHideButton() const
    {
      return mShowLeftHideButton;
    }

    /**
      Set Show right panel hide button
    */
    void setShowRightHideButton( bool v )
    {
      if (!isImmutable( TQString::fromLatin1( "ShowRightHideButton" ) ))
        mShowRightHideButton = v;
    }

    /**
      Get Show right panel hide button
    */
    bool showRightHideButton() const
    {
      return mShowRightHideButton;
    }

    /**
      Set Auto hide panel
    */
    void setAutoHidePanel( bool v )
    {
      if (!isImmutable( TQString::fromLatin1( "AutoHidePanel" ) ))
        mAutoHidePanel = v;
    }

    /**
      Get Auto hide panel
    */
    bool autoHidePanel() const
    {
      return mAutoHidePanel;
    }

    /**
      Set Enable auto hide
    */
    void setAutoHideSwitch( bool v )
    {
      if (!isImmutable( TQString::fromLatin1( "AutoHideSwitch" ) ))
        mAutoHideSwitch = v;
    }

    /**
      Get Enable auto hide
    */
    bool autoHideSwitch() const
    {
      return mAutoHideSwitch;
    }

    /**
      Set Auto hide when Xinerama screen is not available
    */
    void setXineramaHideSwitch( bool v )
    {
      if (!isImmutable( TQString::fromLatin1( "XineramaHideSwitch" ) ))
        mXineramaHideSwitch = v;
    }

    /**
      Get Auto hide when Xinerama screen is not available
    */
    bool xineramaHideSwitch() const
    {
      return mXineramaHideSwitch;
    }

    /**
      Set Delay before auto hide
    */
    void setAutoHideDelay( int v )
    {
      if (!isImmutable( TQString::fromLatin1( "AutoHideDelay" ) ))
        mAutoHideDelay = v;
    }

    /**
      Get Delay before auto hide
    */
    int autoHideDelay() const
    {
      return mAutoHideDelay;
    }

    /**
      Set The trigger location for unhides
    */
    void setUnhideLocation( int v )
    {
      if (v < UnhideTrigger::None)
      {
        kdDebug() << "setUnhideLocation: value " << v << " is less than the minimum value of UnhideTrigger::None" << endl;
        v = UnhideTrigger::None;
      }

      if (v > UnhideTrigger::TopLeft)
      {
        kdDebug() << "setUnhideLocation: value " << v << " is greater than the maximum value of UnhideTrigger::TopLeft" << endl;
        v = UnhideTrigger::TopLeft;
      }

      if (!isImmutable( TQString::fromLatin1( "UnhideLocation" ) ))
        mUnhideLocation = v;
    }

    /**
      Get The trigger location for unhides
    */
    int unhideLocation() const
    {
      return mUnhideLocation;
    }

    /**
      Set Enable background hiding
    */
    void setBackgroundHide( bool v )
    {
      if (!isImmutable( TQString::fromLatin1( "BackgroundHide" ) ))
        mBackgroundHide = v;
    }

    /**
      Get Enable background hiding
    */
    bool backgroundHide() const
    {
      return mBackgroundHide;
    }

    /**
      Set Animate panel hiding
    */
    void setHideAnimation( bool v )
    {
      if (!isImmutable( TQString::fromLatin1( "HideAnimation" ) ))
        mHideAnimation = v;
    }

    /**
      Get Animate panel hiding
    */
    bool hideAnimation() const
    {
      return mHideAnimation;
    }

    /**
      Set Panel hiding animation speed
    */
    void setHideAnimationSpeed( int v )
    {
      if (!isImmutable( TQString::fromLatin1( "HideAnimationSpeed" ) ))
        mHideAnimationSpeed = v;
    }

    /**
      Get Panel hiding animation speed
    */
    int hideAnimationSpeed() const
    {
      return mHideAnimationSpeed;
    }

    /**
      Set Length in percentage
    */
    void setSizePercentage( int v )
    {
      if (v < 1)
      {
        kdDebug() << "setSizePercentage: value " << v << " is less than the minimum value of 1" << endl;
        v = 1;
      }

      if (v > 100)
      {
        kdDebug() << "setSizePercentage: value " << v << " is greater than the maximum value of 100" << endl;
        v = 100;
      }

      if (!isImmutable( TQString::fromLatin1( "SizePercentage" ) ))
        mSizePercentage = v;
    }

    /**
      Get Length in percentage
    */
    int sizePercentage() const
    {
      return mSizePercentage;
    }

    /**
      Set Expand as required to fit contents
    */
    void setExpandSize( bool v )
    {
      if (!isImmutable( TQString::fromLatin1( "ExpandSize" ) ))
        mExpandSize = v;
    }

    /**
      Get Expand as required to fit contents
    */
    bool expandSize() const
    {
      return mExpandSize;
    }

    /**
      Set Size
    */
    void setSize( int v )
    {
      if (!isImmutable( TQString::fromLatin1( "Size" ) ))
        mSize = v;
    }

    /**
      Get Size
    */
    int size() const
    {
      return mSize;
    }

    /**
      Set Custom size
    */
    void setCustomSize( int v )
    {
      if (v < 16)
      {
        kdDebug() << "setCustomSize: value " << v << " is less than the minimum value of 16" << endl;
        v = 16;
      }
      if (!isImmutable( TQString::fromLatin1( "CustomSize" ) ))
        mCustomSize = v;
    }

    /**
      Get Custom size
    */
    int customSize() const
    {
      return mCustomSize;
    }

  protected:

    // General
    bool mIExist;
    int mPosition;
    int mAlignment;
    int mXineramaScreen;
    int mHideButtonSize;
    bool mShowLeftHideButton;
    bool mShowRightHideButton;
    bool mAutoHidePanel;
    bool mAutoHideSwitch;
    bool mXineramaHideSwitch;
    int mAutoHideDelay;
    int mUnhideLocation;
    bool mBackgroundHide;
    bool mHideAnimation;
    int mHideAnimationSpeed;
    int mSizePercentage;
    bool mExpandSize;
    int mSize;
    int mCustomSize;

  private:
};

#endif

