FlowGraphNodeWidget.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef FLOWGRAPHNODEWIDGET_H
  2. #define FLOWGRAPHNODEWIDGET_H
  3. #include <QWidget>
  4. class QLabel;
  5. class QCheckBox;
  6. class QComboBox;
  7. class FlowGraphNodeWidget : public QWidget
  8. {
  9. Q_OBJECT
  10. public:
  11. enum NodeWidgetType
  12. {
  13. Plain,
  14. CheckBox,
  15. ComboBox,
  16. DoubleComboBox,
  17. };
  18. explicit FlowGraphNodeWidget(NodeWidgetType type, QWidget *parent = nullptr);
  19. NodeWidgetType type() const;
  20. signals:
  21. protected:
  22. NodeWidgetType m_type = Plain;
  23. };
  24. class FlowGraphPlainNodeWidget : public FlowGraphNodeWidget
  25. {
  26. Q_OBJECT
  27. public:
  28. explicit FlowGraphPlainNodeWidget(QWidget *parent = nullptr);
  29. private:
  30. QLabel *m_label = nullptr;
  31. };
  32. class FlowGraphCheckNodeWidget : public FlowGraphNodeWidget
  33. {
  34. Q_OBJECT
  35. public:
  36. explicit FlowGraphCheckNodeWidget(QWidget *parent = nullptr);
  37. private:
  38. QCheckBox *m_checkBox = nullptr;
  39. };
  40. class FlowGraphComboNodeWidget : public FlowGraphNodeWidget
  41. {
  42. Q_OBJECT
  43. public:
  44. explicit FlowGraphComboNodeWidget(QWidget *parent = nullptr);
  45. private:
  46. QComboBox *m_combo = nullptr;
  47. };
  48. #endif // FLOWGRAPHNODEWIDGET_H