Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef MARKSBAR_H
Toshihiro Shimizu 890ddd
#define MARKSBAR_H
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//Toonz includes
Toshihiro Shimizu 890ddd
#include "tcommon.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//Qt includes
Toshihiro Shimizu 890ddd
#include <qframe></qframe>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#undef DVAPI
Toshihiro Shimizu 890ddd
#undef DVVAR
Toshihiro Shimizu 890ddd
#ifdef TOONZQT_EXPORTS
Toshihiro Shimizu 890ddd
#define DVAPI DV_EXPORT_API
Toshihiro Shimizu 890ddd
#define DVVAR DV_EXPORT_VAR
Toshihiro Shimizu 890ddd
#else
Toshihiro Shimizu 890ddd
#define DVAPI DV_IMPORT_API
Toshihiro Shimizu 890ddd
#define DVVAR DV_IMPORT_VAR
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
// MarksBar
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
/*!
Toshihiro Shimizu 890ddd
  A MarksBar is a generalized slider with multiple values.
Toshihiro Shimizu 890ddd
*/
Toshihiro Shimizu 890ddd
class DVAPI MarksBar : public QFrame
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	Q_OBJECT
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
protected:
Toshihiro Shimizu 890ddd
	int m_min, m_max, m_sortDist;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	QVector<int> m_values;</int>
Toshihiro Shimizu 890ddd
	QVector<qcolor> m_colors;</qcolor>
Toshihiro Shimizu 890ddd
	int m_selectedMark;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	bool m_markUp;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	MarksBar(QWidget *parent = 0, bool markUp = true);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void setRange(int min, int max, int sortDistance = -1);
Toshihiro Shimizu 890ddd
	int minimum() const { return m_min; }
Toshihiro Shimizu 890ddd
	int maximum() const { return m_max; }
Toshihiro Shimizu 890ddd
	int sortDistance() const { return m_sortDist; }
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	const QVector<int> &values() const { return m_values; }</int>
Toshihiro Shimizu 890ddd
	QVector<int> &values() { return m_values; }</int>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	const QVector<qcolor> &colors() const { return m_colors; }</qcolor>
Toshihiro Shimizu 890ddd
	QVector<qcolor> &colors() { return m_colors; }</qcolor>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void setMarkSide(bool up);
Toshihiro Shimizu 890ddd
	bool markSide() const { return m_markUp; }
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void conformValues(bool preferRollDown = true);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
protected:
Toshihiro Shimizu 890ddd
	virtual void drawMark(QPainter &p, int pos, const QColor &color);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	int valToPos(int val);
Toshihiro Shimizu 890ddd
	int posToVal(int pos);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void paintEvent(QPaintEvent *pe);
Toshihiro Shimizu 890ddd
	void mousePressEvent(QMouseEvent *me);
Toshihiro Shimizu 890ddd
	void mouseMoveEvent(QMouseEvent *me);
Toshihiro Shimizu 890ddd
	void mouseReleaseEvent(QMouseEvent *me);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
signals:
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void marksUpdated();
Toshihiro Shimizu 890ddd
	void marksReleased();
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif //MARKSBAR_H