slider-ignorewheel.hpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include "obs.hpp"
  3. #include <QSlider>
  4. #include <QInputEvent>
  5. #include <QtCore/QObject>
  6. #include <QAccessibleWidget>
  7. class SliderIgnoreScroll : public QSlider {
  8. Q_OBJECT
  9. public:
  10. SliderIgnoreScroll(QWidget *parent = nullptr);
  11. SliderIgnoreScroll(Qt::Orientation orientation,
  12. QWidget *parent = nullptr);
  13. protected:
  14. virtual void wheelEvent(QWheelEvent *event) override;
  15. };
  16. class VolumeSlider : public SliderIgnoreScroll {
  17. Q_OBJECT
  18. public:
  19. obs_fader_t *fad;
  20. VolumeSlider(obs_fader_t *fader, QWidget *parent = nullptr);
  21. VolumeSlider(obs_fader_t *fader, Qt::Orientation orientation,
  22. QWidget *parent = nullptr);
  23. };
  24. class VolumeAccessibleInterface : public QAccessibleWidget {
  25. public:
  26. VolumeAccessibleInterface(QWidget *w);
  27. QVariant currentValue() const;
  28. void setCurrentValue(const QVariant &value);
  29. QVariant maximumValue() const;
  30. QVariant minimumValue() const;
  31. QVariant minimumStepSize() const;
  32. private:
  33. VolumeSlider *slider() const;
  34. protected:
  35. virtual QAccessible::Role role() const override;
  36. virtual QString text(QAccessible::Text t) const override;
  37. };