record-button.hpp 886 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include <QPushButton>
  3. #include <QBoxLayout>
  4. #include <QScopedPointer>
  5. class RecordButton : public QPushButton {
  6. Q_OBJECT
  7. public:
  8. inline RecordButton(QWidget *parent = nullptr) : QPushButton(parent) {}
  9. virtual void resizeEvent(QResizeEvent *event) override;
  10. };
  11. class OBSBasic;
  12. class ControlsSplitButton : public QHBoxLayout {
  13. Q_OBJECT
  14. public:
  15. ControlsSplitButton(const QString &text, const QVariant &themeID,
  16. void (OBSBasic::*clicked)());
  17. void addIcon(const QString &name, const QVariant &themeID,
  18. void (OBSBasic::*clicked)());
  19. void removeIcon();
  20. void insert(int index);
  21. inline QPushButton *first() { return button.data(); }
  22. inline QPushButton *second() { return icon.data(); }
  23. protected:
  24. virtual bool eventFilter(QObject *obj, QEvent *event) override;
  25. private:
  26. QScopedPointer<QPushButton> button;
  27. QScopedPointer<QPushButton> icon;
  28. };