summaryrefslogtreecommitdiff
path: root/ui/syncgroup.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2021-11-18 13:52:25 -0500
committerRusty Wagner <rusty.wagner@gmail.com>2022-01-10 15:25:18 -0700
commit7f6e54fdc8ff4a06fdcd3c510a37add337f04bac (patch)
tree60cce5955fcc05fc84f35f9662d49c7e0790dde1 /ui/syncgroup.h
parentd9661f34eec6855d495a10eaafc2a8e2679756a7 (diff)
Refactor main area to use pane system
Diffstat (limited to 'ui/syncgroup.h')
-rw-r--r--ui/syncgroup.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/ui/syncgroup.h b/ui/syncgroup.h
new file mode 100644
index 00000000..5a9828f9
--- /dev/null
+++ b/ui/syncgroup.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include "viewframe.h"
+#include "clickablelabel.h"
+
+class BINARYNINJAUIAPI SyncGroup
+{
+ std::set<ViewFrame*> m_members;
+ int m_id;
+
+public:
+ SyncGroup(int id);
+
+ void addMember(ViewFrame* frame);
+ void removeMember(ViewFrame* frame);
+ bool isEmpty() const;
+ int identifier() const { return m_id; }
+ bool contains(ViewFrame* frame) const;
+ const std::set<ViewFrame*>& members() const { return m_members; }
+
+ void syncLocation(ViewFrame* frame, View* view, const ViewLocation& location);
+
+ static void syncToTarget(View* srcView, ViewFrame* targetFrame, const ViewLocation& location);
+};
+
+class BINARYNINJAUIAPI SyncGroupWidget: public ClickableIcon
+{
+ Q_OBJECT
+
+ ViewFrame* m_frame;
+
+public:
+ SyncGroupWidget(ViewFrame* frame);
+
+ void updateStatus();
+
+private Q_SLOTS:
+ void handleClick();
+};