File indexing completed on 2025-02-09 07:11:33

0001 /*
0002     This file is part of the Kasten Framework, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2007, 2009 Friedrich W. H. Kossebau <kossebau@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef KASTEN_TABBEDVIEWS_HPP
0010 #define KASTEN_TABBEDVIEWS_HPP
0011 
0012 // lib
0013 #include "abstractgroupedviews.hpp"
0014 #include "toolinlineviewable.hpp"
0015 
0016 class QMimeData;
0017 
0018 namespace Kasten {
0019 
0020 class TabbedViewsPrivate;
0021 
0022 class KASTENGUI_EXPORT TabbedViews : public AbstractGroupedViews
0023                                    , public If::ToolInlineViewable
0024 {
0025     Q_OBJECT
0026     Q_INTERFACES(
0027         Kasten::If::ToolInlineViewable
0028     )
0029 
0030 protected:
0031     KASTENGUI_NO_EXPORT explicit TabbedViews(TabbedViewsPrivate* d);
0032 
0033 public:
0034     TabbedViews();
0035 
0036     ~TabbedViews() override;
0037 
0038 public: // AbstractViewArea API
0039     void setFocus() override;
0040     QWidget* widget() const override;
0041     bool hasFocus() const override;
0042 
0043 public: // AbstractGroupedViews API
0044     void addViews(const QVector<AbstractView*>& views) override;
0045     void removeViews(const QVector<AbstractView*>& views) override;
0046     void setViewFocus(AbstractView* view) override;
0047 
0048     QVector<AbstractView*> viewList() const override;
0049     int viewCount() const override;
0050     AbstractView* viewFocus() const override;
0051 
0052 public: // If::ToolInlineViewable API
0053     void setCurrentToolInlineView(AbstractToolInlineView* view) override;
0054     AbstractToolInlineView* currentToolInlineView() const override;
0055 
0056 public:
0057     int indexOf(AbstractView* view) const;
0058 
0059 Q_SIGNALS:
0060     void dataOffered(const QMimeData* mimeData, bool& accepted);
0061     void dataDropped(const QMimeData* mimeData);
0062     void contextMenuRequested(AbstractView* view, QPoint pos);
0063     void newDocumentRequested();
0064 
0065 private:
0066     Q_DECLARE_PRIVATE(TabbedViews)
0067 };
0068 
0069 }
0070 #endif