File indexing completed on 2024-05-12 04:39:13

0001 /*
0002     SPDX-FileCopyrightText: 2014 Milian Wolff <mail@milianw.de>
0003     SPDX-FileCopyrightText: 2014 Kevin Funk <kfunk@kde.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0006 */
0007 
0008 #ifndef NAVIGATIONWIDGET_H
0009 #define NAVIGATIONWIDGET_H
0010 
0011 #include "clangprivateexport.h"
0012 
0013 #include "macrodefinition.h"
0014 
0015 #include <language/duchain/navigation/abstractnavigationwidget.h>
0016 
0017 namespace KDevelop
0018 {
0019 class DocumentCursor;
0020 class IncludeItem;
0021 }
0022 
0023 class KDEVCLANGPRIVATE_EXPORT ClangNavigationWidget : public KDevelop::AbstractNavigationWidget
0024 {
0025     Q_OBJECT
0026 public:
0027     explicit ClangNavigationWidget(const KDevelop::DeclarationPointer& declaration,
0028                           KDevelop::AbstractNavigationWidget::DisplayHints hints = KDevelop::AbstractNavigationWidget::NoHints);
0029     ClangNavigationWidget(const MacroDefinition::Ptr& macro, const KDevelop::DocumentCursor& expansionLocation,
0030                           KDevelop::AbstractNavigationWidget::DisplayHints hints = KDevelop::AbstractNavigationWidget::NoHints);
0031     ClangNavigationWidget(const KDevelop::IncludeItem& includeItem, const KDevelop::TopDUContextPointer& topContext,
0032                           KDevelop::AbstractNavigationWidget::DisplayHints hints = KDevelop::AbstractNavigationWidget::NoHints);
0033     ~ClangNavigationWidget() override = default;
0034 
0035     /// Used by @see AbstractIncludeFileCompletionItem
0036     static QString shortDescription(const KDevelop::IncludeItem& includeItem);
0037 };
0038 
0039 #endif // NAVIGATIONWIDGET_H