#pragma once #include "themes/theme.h" #include #include #include #include #include namespace rcx { class TitleBarWidget : public QWidget { Q_OBJECT public: explicit TitleBarWidget(QWidget* parent = nullptr); QMenuBar* menuBar() const { return m_menuBar; } void applyTheme(const Theme& theme); void setShowIcon(bool show); void setMenuBarTitleCase(bool titleCase); bool menuBarTitleCase() const { return m_titleCase; } void updateMaximizeIcon(); protected: void mousePressEvent(QMouseEvent* event) override; void mouseDoubleClickEvent(QMouseEvent* event) override; void paintEvent(QPaintEvent* event) override; private: QLabel* m_appLabel = nullptr; QMenuBar* m_menuBar = nullptr; QToolButton* m_btnMin = nullptr; QToolButton* m_btnMax = nullptr; QToolButton* m_btnClose = nullptr; Theme m_theme; bool m_titleCase = true; QToolButton* makeChromeButton(const QString& iconPath); void toggleMaximize(); }; } // namespace rcx