Files
Herwig Birke 8f63d174f3 added Doxygen
2018-11-07 13:08:42 +01:00

277 lines
5.4 KiB
C++

#ifndef QXTSPANSLIDER_H
/****************************************************************************
** Copyright (c) 2006 - 2011, the LibQxt project.
** See the Qxt AUTHORS file for a list of authors and copyright holders.
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the LibQxt project nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
** <http://libqxt.org> <foundation@libqxt.org>
*****************************************************************************/
#define QXTSPANSLIDER_H
#include <QSlider>
//#include "qxtnamespace.h"
//#include "qxtglobal.h"
class QxtSpanSliderPrivate;
/*!
\brief
\class QxtSpanSlider qxtspanslider.h "qxtspanslider.h"
*/
class QxtSpanSlider : public QSlider {
Q_OBJECT
//QXT_DECLARE_PRIVATE(QxtSpanSlider)
Q_PROPERTY(int lowerValue READ lowerValue WRITE setLowerValue)
Q_PROPERTY(int upperValue READ upperValue WRITE setUpperValue)
Q_PROPERTY(int lowerPosition READ lowerPosition WRITE setLowerPosition)
Q_PROPERTY(int upperPosition READ upperPosition WRITE setUpperPosition)
Q_PROPERTY(HandleMovementMode handleMovementMode READ handleMovementMode WRITE setHandleMovementMode)
Q_ENUMS(HandleMovementMode)
public:
/*!
\brief
\fn QxtSpanSlider
\param parent
*/
explicit QxtSpanSlider(QWidget* parent = 0);
/*!
\brief
\fn QxtSpanSlider
\param orientation
\param parent
*/
explicit QxtSpanSlider(Qt::Orientation orientation, QWidget* parent = 0);
/*!
\brief
\fn ~QxtSpanSlider
*/
virtual ~QxtSpanSlider();
/*!
\brief
\enum HandleMovementMode
*/
enum HandleMovementMode
{
FreeMovement,
NoCrossing,
NoOverlapping
};
/*!
\brief
\enum SpanHandle
*/
enum SpanHandle
{
NoHandle,
LowerHandle,
UpperHandle
};
/*!
\brief
\fn handleMovementMode
\return HandleMovementMode
*/
HandleMovementMode handleMovementMode() const;
/*!
\brief
\fn setHandleMovementMode
\param mode
*/
void setHandleMovementMode(HandleMovementMode mode);
/*!
\brief
\fn lowerValue
\return int
*/
int lowerValue() const;
/*!
\brief
\fn upperValue
\return int
*/
int upperValue() const;
/*!
\brief
\fn lowerPosition
\return int
*/
int lowerPosition() const;
/*!
\brief
\fn upperPosition
\return int
*/
int upperPosition() const;
public Q_SLOTS:
/*!
\brief
\fn setLowerValue
\param lower
*/
void setLowerValue(int lower);
/*!
\brief
\fn setUpperValue
\param upper
*/
void setUpperValue(int upper);
/*!
\brief
\fn setSpan
\param lower
\param upper
*/
void setSpan(int lower, int upper);
/*!
\brief
\fn setLowerPosition
\param lower
*/
void setLowerPosition(int lower);
/*!
\brief
\fn setUpperPosition
\param upper
*/
void setUpperPosition(int upper);
Q_SIGNALS:
/*!
\brief
\fn spanChanged
\param lower
\param upper
*/
void spanChanged(int lower, int upper);
/*!
\brief
\fn lowerValueChanged
\param lower
*/
void lowerValueChanged(int lower);
/*!
\brief
\fn upperValueChanged
\param upper
*/
void upperValueChanged(int upper);
/*!
\brief
\fn lowerPositionChanged
\param lower
*/
void lowerPositionChanged(int lower);
/*!
\brief
\fn upperPositionChanged
\param upper
*/
void upperPositionChanged(int upper);
/*!
\brief
\fn sliderPressed
\param handle
*/
void sliderPressed(SpanHandle handle);
protected:
/*!
\brief
\fn keyPressEvent
\param event
*/
virtual void keyPressEvent(QKeyEvent* event);
/*!
\brief
\fn mousePressEvent
\param event
*/
virtual void mousePressEvent(QMouseEvent* event);
/*!
\brief
\fn mouseMoveEvent
\param event
*/
virtual void mouseMoveEvent(QMouseEvent* event);
/*!
\brief
\fn mouseReleaseEvent
\param event
*/
virtual void mouseReleaseEvent(QMouseEvent* event);
/*!
\brief
\fn paintEvent
\param event
*/
virtual void paintEvent(QPaintEvent* event);
private:
QxtSpanSliderPrivate* d_ptr; /*!< TODO: describe */
friend class QxtSpanSliderPrivate;
};
#endif // QXTSPANSLIDER_H