#pragma once #include #include #include #include #include #include #include #include "TargetRegistersPaneWidget.hpp" #include "ItemWidget.hpp" #include "src/Insight/InsightWorker/InsightWorker.hpp" #include "../ClickableWidget.hpp" #include "../SvgWidget.hpp" namespace Bloom::Widgets { class RegisterWidget; class RegisterGroupWidget: public ItemWidget { Q_OBJECT private: QVBoxLayout* layout = new QVBoxLayout(this); ItemWidget* headerWidget = new ItemWidget(this); SvgWidget* arrowIcon = new SvgWidget(this->headerWidget); SvgWidget* registerGroupIcon = new SvgWidget(this->headerWidget); QLabel* label = new QLabel(this->headerWidget); QWidget* bodyWidget = new QWidget(this); public: QString name; bool collapsed = true; std::set registerWidgets; std::map registerWidgetsMappedByDescriptor; RegisterGroupWidget( QString name, const std::set& registerDescriptors, InsightWorker& insightWorker, TargetRegistersPaneWidget* parent ); void collapse(); void expand(); void setAllRegistersVisible(bool visible); void filterRegisters(const std::string& keyword); }; }