1
0

AbsoluteSlider.hpp 941 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include <slider-ignorewheel.hpp>
  3. class AbsoluteSlider : public SliderIgnoreScroll {
  4. Q_OBJECT
  5. Q_PROPERTY(QColor tickColor READ getTickColor WRITE setTickColor DESIGNABLE true)
  6. public:
  7. AbsoluteSlider(QWidget *parent = nullptr);
  8. AbsoluteSlider(Qt::Orientation orientation, QWidget *parent = nullptr);
  9. bool getDisplayTicks() const;
  10. void setDisplayTicks(bool display);
  11. QColor getTickColor() const;
  12. void setTickColor(QColor c);
  13. signals:
  14. void absoluteSliderHovered(int value);
  15. protected:
  16. virtual void mouseMoveEvent(QMouseEvent *event) override;
  17. virtual void mousePressEvent(QMouseEvent *event) override;
  18. virtual void mouseReleaseEvent(QMouseEvent *event) override;
  19. virtual bool eventFilter(QObject *obj, QEvent *event) override;
  20. int posToRangeValue(QMouseEvent *event);
  21. virtual void paintEvent(QPaintEvent *event) override;
  22. private:
  23. bool dragging = false;
  24. bool displayTicks = false;
  25. QColor tickColor;
  26. };