tahoma2d/toonz/sources/include/toonzqt/marksbar.h

78 lines
1.7 KiB
C
Raw Normal View History

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-15 18:43:10 +12:00
class DVAPI MarksBar : public QFrame {
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-15 18:43:10 +12:00
void paintEvent(QPaintEvent *pe);
void mousePressEvent(QMouseEvent *me);
void mouseMoveEvent(QMouseEvent *me);
void mouseReleaseEvent(QMouseEvent *me);
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