Files
BloomPatched/src/Insight/UserInterfaces/InsightWindow/Widgets/TargetRegistersPane/RegisterGroupWidget.hpp

53 lines
1.4 KiB
C++
Raw Normal View History

2021-09-04 18:11:52 +01:00
#pragma once
#include <QWidget>
#include <unordered_set>
#include <QVBoxLayout>
#include <QLabel>
#include <QSize>
#include <set>
#include <string>
#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<RegisterWidget*> registerWidgets;
std::map<Targets::TargetRegisterDescriptor, RegisterWidget*> registerWidgetsMappedByDescriptor;
RegisterGroupWidget(
QString name,
const std::set<Targets::TargetRegisterDescriptor>& registerDescriptors,
InsightWorker& insightWorker,
TargetRegistersPaneWidget* parent
);
void collapse();
void expand();
void setAllRegistersVisible(bool visible);
void filterRegisters(const std::string& keyword);
};
}