summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkat <kat@vector35.com>2024-01-11 12:54:16 -0500
committerAlexander Taylor <alex@vector35.com>2024-01-18 15:09:20 -0500
commit44cdc49cbbcf337419b11ccd2135a804be540551 (patch)
tree50459cbc3ba3ba87cd6c3afdf129ff89cf47145f
parenteba2c30317350785effc9a71ba3b52a2117f261d (diff)
Tabbar rework
-rw-r--r--ui/tabwidget.h24
-rw-r--r--ui/theme.h1
2 files changed, 25 insertions, 0 deletions
diff --git a/ui/tabwidget.h b/ui/tabwidget.h
index 08ce60ea..e55abf60 100644
--- a/ui/tabwidget.h
+++ b/ui/tabwidget.h
@@ -88,6 +88,7 @@ struct BINARYNINJAUIAPI DockableTabInfo
QRect tabRect, closeButtonRect, closeIconRect;
bool modifiedIndicator;
bool canClose;
+ bool isDrag = false;
};
/*!
@@ -322,6 +323,29 @@ class BINARYNINJAUIAPI DockableTabWidget : public QWidget
void reparentTab(int oldIdx, DockableTabWidget* target, int newIdx);
};
+class BINARYNINJAUIAPI FlexibleTabBar : public QWidget
+{
+ DockableTabBar* m_bar;
+
+ QHBoxLayout* m_overallBarLayout;
+ QHBoxLayout* m_barLayout;
+ QHBoxLayout* m_leftLayout;
+ QHBoxLayout* m_rightLayout;
+
+public:
+ enum FlexibleTabBarWidgetLocation {
+ LeftCorner,
+ RightCorner,
+ AfterTabs
+ };
+ FlexibleTabBar(DockableTabBar* bar);
+ void addWidget(QWidget* widget, FlexibleTabBarWidgetLocation corner);
+ void insertWidget(int idx, QWidget* widget, FlexibleTabBarWidgetLocation corner);
+
+protected:
+ void paintEvent(QPaintEvent* event) override;
+};
+
/*!
\ingroup tabwidget
diff --git a/ui/theme.h b/ui/theme.h
index 47f054d5..381664cb 100644
--- a/ui/theme.h
+++ b/ui/theme.h
@@ -27,6 +27,7 @@ class BINARYNINJAUIAPI CustomFusionStyle : public QProxyStyle
PrimitiveElement elem, const QStyleOption *option, QPainter *painter, const QWidget *widget) const override;
};
+void BINARYNINJAUIAPI pixmapForBWMaskIcon(const QString& url, QPixmap* pixmapOut, BNThemeColor color = SidebarInactiveIconColor, const QString& cacheSuffix = "");
void BINARYNINJAUIAPI initThemes();
void BINARYNINJAUIAPI resetUserThemes();