/* * Copyright (c) 2024, Tim Flynn * Copyright (c) 2024, Jamie Mansfield * Copyright (c) 2024, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include class QContextMenuEvent; class QEvent; class QIcon; class QWidget; namespace Ladybird { class TabBar : public QTabBar { Q_OBJECT public: explicit TabBar(QWidget* parent = nullptr); virtual QSize tabSizeHint(int index) const override; virtual void contextMenuEvent(QContextMenuEvent* event) override; }; class TabWidget : public QTabWidget { Q_OBJECT public: explicit TabWidget(QWidget* parent = nullptr); virtual void paintEvent(QPaintEvent*) override; }; class TabBarButton : public QPushButton { Q_OBJECT public: explicit TabBarButton(QIcon const& icon, QWidget* parent = nullptr); protected: virtual bool event(QEvent* event) override; }; class TabStyle : public QProxyStyle { Q_OBJECT public: explicit TabStyle(QObject* parent = nullptr); virtual QRect subElementRect(QStyle::SubElement, QStyleOption const*, QWidget const*) const override; }; }