2016-05-17 03:04:11 +12:00
|
|
|
#pragma once
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
#ifndef MARKSBAR_H
|
|
|
|
#define MARKSBAR_H
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
// Toonz includes
|
2016-03-19 06:57:51 +13:00
|
|
|
#include "tcommon.h"
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
// Qt includes
|
2016-03-19 06:57:51 +13:00
|
|
|
#include <QFrame>
|
|
|
|
|
|
|
|
#undef DVAPI
|
|
|
|
#undef DVVAR
|
|
|
|
#ifdef TOONZQT_EXPORTS
|
|
|
|
#define DVAPI DV_EXPORT_API
|
|
|
|
#define DVVAR DV_EXPORT_VAR
|
|
|
|
#else
|
|
|
|
#define DVAPI DV_IMPORT_API
|
|
|
|
#define DVVAR DV_IMPORT_VAR
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MarksBar
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
/*!
|
|
|
|
A MarksBar is a generalized slider with multiple values.
|
|
|
|
*/
|
2016-06-29 18:17:12 +12:00
|
|
|
class DVAPI MarksBar final : public QFrame {
|
2016-06-15 18:43:10 +12:00
|
|
|
Q_OBJECT
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
protected:
|
2016-06-15 18:43:10 +12:00
|
|
|
int m_min, m_max, m_sortDist;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
QVector<int> m_values;
|
|
|
|
QVector<QColor> m_colors;
|
|
|
|
int m_selectedMark;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
bool m_markUp;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
MarksBar(QWidget *parent = 0, bool markUp = true);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void setRange(int min, int max, int sortDistance = -1);
|
|
|
|
int minimum() const { return m_min; }
|
|
|
|
int maximum() const { return m_max; }
|
|
|
|
int sortDistance() const { return m_sortDist; }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
const QVector<int> &values() const { return m_values; }
|
|
|
|
QVector<int> &values() { return m_values; }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
const QVector<QColor> &colors() const { return m_colors; }
|
|
|
|
QVector<QColor> &colors() { return m_colors; }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void setMarkSide(bool up);
|
|
|
|
bool markSide() const { return m_markUp; }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void conformValues(bool preferRollDown = true);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
protected:
|
2016-06-15 18:43:10 +12:00
|
|
|
virtual void drawMark(QPainter &p, int pos, const QColor &color);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
int valToPos(int val);
|
|
|
|
int posToVal(int pos);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-19 20:06:29 +12:00
|
|
|
void paintEvent(QPaintEvent *pe) override;
|
|
|
|
void mousePressEvent(QMouseEvent *me) override;
|
|
|
|
void mouseMoveEvent(QMouseEvent *me) override;
|
|
|
|
void mouseReleaseEvent(QMouseEvent *me) override;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
signals:
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void marksUpdated();
|
|
|
|
void marksReleased();
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
#endif // MARKSBAR_H
|