Files
oak-editor/ui/labelslider.h
T

67 lines
1.3 KiB
C++

#ifndef LABELSLIDER_H
#define LABELSLIDER_H
#include <QLabel>
#include <QUndoCommand>
enum LabelSliderDisplayType {
LABELSLIDER_NORMAL,
LABELSLIDER_FRAMENUMBER,
LABELSLIDER_PERCENT,
LABELSLIDER_DECIBEL
};
class LabelSlider : public QLabel
{
Q_OBJECT
public:
LabelSlider(QWidget* parent = 0);
void set_frame_rate(double d);
void set_display_type(int type);
void set_value(double v, bool userSet);
void set_default_value(double v);
void set_minimum_value(double v);
void set_maximum_value(double v);
double value();
bool is_set();
bool is_dragging();
QString valueToString(double v);
double getPreviousValue();
void set_previous_value();
void set_color(QString c = 0);
int decimal_places;
protected:
void mousePressEvent(QMouseEvent *ev);
void mouseMoveEvent(QMouseEvent *ev);
void mouseReleaseEvent(QMouseEvent *ev);
private:
double default_value;
double internal_value;
double drag_start_value;
double previous_value;
bool min_enabled;
double min_value;
bool max_enabled;
double max_value;
bool drag_start;
bool drag_proc;
int drag_start_x;
int drag_start_y;
bool set;
int display_type;
double frame_rate;
void set_default_cursor();
void set_active_cursor();
signals:
void valueChanged();
void clicked();
};
#endif // LABELSLIDER_H