+class ContainerWidget;
+
+struct DecodeTraceRow {
+ // When adding a field, make sure it's initialized properly in
+ // DecodeTrace::update_rows()
+
+ Row* decode_row;
+ unsigned int height, expanded_height, title_width, animation_step;
+ bool exists, currently_visible, has_hidden_classes;
+ bool expand_marker_highlighted, expanding, expanded, collapsing;
+ QPolygon expand_marker_shape;
+ float anim_height, anim_shape;
+
+ ContainerWidget* container;
+ QWidget* header_container;
+ QWidget* selector_container;
+ QCheckBox* row_visibility_checkbox;
+ vector<QCheckBox*> selectors;
+};
+
+class ContainerWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ ContainerWidget(QWidget *parent = nullptr);
+
+ virtual void resizeEvent(QResizeEvent* event);
+
+Q_SIGNALS:
+ void widgetResized(QWidget* sender);
+};
+