50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "UINode.hpp"
|
|
|
|
namespace gui {
|
|
class TrackBar : public UINode {
|
|
protected:
|
|
glm::vec4 trackColor {1.0f, 1.0f, 1.0f, 0.4f};
|
|
doublesupplier supplier = nullptr;
|
|
doubleconsumer consumer = nullptr;
|
|
doubleconsumer subconsumer = nullptr;
|
|
double min;
|
|
double max;
|
|
double value;
|
|
double step;
|
|
int trackWidth;
|
|
bool changeOnRelease = false;
|
|
public:
|
|
TrackBar(double min,
|
|
double max,
|
|
double value,
|
|
double step=1.0,
|
|
int trackWidth=12);
|
|
virtual void draw(const DrawContext* pctx, Assets* assets) override;
|
|
|
|
virtual void setSupplier(doublesupplier);
|
|
virtual void setConsumer(doubleconsumer);
|
|
virtual void setSubConsumer(doubleconsumer);
|
|
|
|
virtual void mouseMove(GUI*, int x, int y) override;
|
|
virtual void mouseRelease(GUI*, int x, int y) override;
|
|
|
|
virtual double getValue() const;
|
|
virtual double getMin() const;
|
|
virtual double getMax() const;
|
|
virtual double getStep() const;
|
|
virtual int getTrackWidth() const;
|
|
virtual glm::vec4 getTrackColor() const;
|
|
virtual bool isChangeOnRelease() const;
|
|
|
|
virtual void setValue(double);
|
|
virtual void setMin(double);
|
|
virtual void setMax(double);
|
|
virtual void setStep(double);
|
|
virtual void setTrackWidth(int);
|
|
virtual void setTrackColor(glm::vec4);
|
|
virtual void setChangeOnRelease(bool);
|
|
};
|
|
}
|