File indexing completed on 2024-04-28 15:32:07

0001 /*
0002     SPDX-FileCopyrightText: 2003 Joseph Wenninger <jowenn@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef K_MULTI_TAB_BAR_P_H
0008 #define K_MULTI_TAB_BAR_P_H
0009 #include <QScrollArea>
0010 #include <QVBoxLayout>
0011 #include <kmultitabbar.h>
0012 
0013 class KMultiTabBarInternal : public QFrame
0014 {
0015     Q_OBJECT
0016 public:
0017     KMultiTabBarInternal(QWidget *parent, KMultiTabBar::KMultiTabBarPosition pos);
0018     ~KMultiTabBarInternal() override;
0019     int appendTab(const QIcon &, int = -1, const QString & = QString());
0020     int appendTab(const QPixmap &, int = -1, const QString & = QString());
0021     KMultiTabBarTab *tab(int) const;
0022     void removeTab(int);
0023     void setPosition(enum KMultiTabBar::KMultiTabBarPosition pos);
0024     void setStyle(enum KMultiTabBar::KMultiTabBarStyle style);
0025     void showActiveTabTexts(bool show);
0026     QList<KMultiTabBarTab *> *tabs()
0027     {
0028         return &m_tabs;
0029     }
0030 
0031 private:
0032     friend class KMultiTabBar;
0033     QBoxLayout *mainLayout;
0034     QList<KMultiTabBarTab *> m_tabs;
0035     enum KMultiTabBar::KMultiTabBarPosition m_position;
0036     enum KMultiTabBar::KMultiTabBarStyle m_style;
0037 
0038 protected:
0039     /**
0040      * [contentsM|m]ousePressEvent are reimplemented from QScrollView
0041      * in order to ignore all mouseEvents on the viewport, so that the
0042      * parent can handle them.
0043      */
0044     virtual void contentsMousePressEvent(QMouseEvent *);
0045     void mousePressEvent(QMouseEvent *) override;
0046 };
0047 
0048 #endif