summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2025-08-12 19:34:23 -0400
committerRusty Wagner <rusty.wagner@gmail.com>2025-08-29 15:42:09 -0400
commit0cf8ae794f97626d4560a87165b30870a313a743 (patch)
treec77248cf663121c963433c5bd29a7b624d4a1cc7 /ui
parent5c4abf48ab4b77555a79777bc37d52c842ee149a (diff)
Highlight sidebar icon when the sidebar has focus
Diffstat (limited to 'ui')
-rw-r--r--ui/sidebar.h4
-rw-r--r--ui/sidebarcontainer.h5
-rw-r--r--ui/sidebaricons.h2
3 files changed, 11 insertions, 0 deletions
diff --git a/ui/sidebar.h b/ui/sidebar.h
index df749fe4..2c26a190 100644
--- a/ui/sidebar.h
+++ b/ui/sidebar.h
@@ -20,6 +20,8 @@ struct BINARYNINJAUIAPI SidebarMetrics
int iconTotalWidth, iconTotalHeight;
int dragIconPadding;
int dropIconPadding;
+ int focusRectPadding;
+ int focusRectRadius;
};
/*!
@@ -140,6 +142,8 @@ public:
void restoreState(const QSettings& settings, const QString& windowStateName, bool globalStateOnly = false);
bool restoreActiveState(const QVariant& state);
+ void focusChanged(SidebarWidgetAndHeader* widget);
+
static void addSidebarWidgetType(SidebarWidgetType* type);
static void moveSidebarWidgetType(SidebarWidgetType* type, SidebarWidgetLocation newLocation, size_t newIndex);
static SidebarWidgetType* typeFromName(const QString& name);
diff --git a/ui/sidebarcontainer.h b/ui/sidebarcontainer.h
index acd27761..99b42b89 100644
--- a/ui/sidebarcontainer.h
+++ b/ui/sidebarcontainer.h
@@ -94,6 +94,8 @@ class BINARYNINJAUIAPI SidebarWidgetContainer : public QWidget
std::map<SidebarWidgetType*, SidebarFloatingWidgetState> m_savedFloatingWidgetState;
+ SidebarWidgetType* m_focusedType = nullptr;
+
SidebarStackedWidget& stackedWidgetForType(SidebarWidgetType* type);
std::vector<SidebarWidgetAndHeader*> widgetsForContext() const;
std::vector<SidebarContentClassifier*> contentClassifiersForContext() const;
@@ -166,6 +168,9 @@ public:
bool isFloating(SidebarWidgetType* type);
bool isWindowed(SidebarWidgetType* type);
+ void focusChanged(SidebarWidgetAndHeader* widget);
+ SidebarWidgetType* focusedType() const { return m_focusedType; }
+
Q_SIGNALS:
void showContents();
void hideContents();
diff --git a/ui/sidebaricons.h b/ui/sidebaricons.h
index 7ba57f77..f116b0a0 100644
--- a/ui/sidebaricons.h
+++ b/ui/sidebaricons.h
@@ -104,6 +104,8 @@ public:
void updateVisibility();
void refreshMetrics();
+ void focusChanged(SidebarWidgetAndHeader* widget);
+
Q_SIGNALS:
void containerVisibilityChanged();
};