Doxygen
Loading...
Searching...
No Matches
linkifytext.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2026 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef LINKIFYTEXT_H
17#define LINKIFYTEXT_H
18
19#include "construct.h"
20#include "dstring.h"
21
22class Definition;
23class FileDef;
24class ArgumentList;
25
26/** Abstract interface for a hyperlinked text fragment. */
28{
29 public:
31
32 virtual void writeString(std::string_view,bool) const = 0;
33 virtual void writeBreak(int indent) const = 0;
34 virtual void writeLink(const DString &extRef,const DString &file,
35 const DString &anchor,std::string_view text
36 ) const = 0;
37};
38
39//--------------------------------------------------------------------
40
42{
43 public:
44 // === getters for optional params
45 const Definition *scope() const { return m_scope; }
46 const FileDef *fileScope() const { return m_fileScope; }
47 const Definition *self() const { return m_self; }
48 const ArgumentList *argumentList() const { return m_al; }
49 bool autoBreak() const { return m_autoBreak; }
50 bool external() const { return m_external; }
51 bool keepSpaces() const { return m_keepSpaces; }
52 int indentLevel() const { return m_indentLevel; }
53 size_t breakThreshold() const { return m_breakThreshold; }
54
55 // === setters for optional params
57 { m_scope = scope; return *this; }
58
61
63 { m_self = self; return *this;}
64
66 { m_al = al; return *this; }
67
70
73
76
79
82
83 private:
84 // optional params with defaults
85 const Definition * m_scope = nullptr;
86 const FileDef * m_fileScope = nullptr;
87 const Definition * m_self = nullptr;
88 const ArgumentList *m_al = nullptr;
89 bool m_autoBreak = false;
90 bool m_external = true;
91 bool m_keepSpaces = false;
93 size_t m_breakThreshold = 30;
94};
95
96//--------------------------------------------------------------------
97
98void linkifyText(const TextGeneratorIntf &ol,
99 const DString &text,
100 const LinkifyTextOptions &options
101 );
102
103#endif // LINKIFYTEXT_H
This class represents an function or template argument list.
Definition arguments.h:65
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:89
The common base class of all entity definitions found in the sources.
Definition definition.h:77
A model of a file symbol.
Definition filedef.h:99
Abstract interface for a hyperlinked text fragment.
Definition linkifytext.h:28
virtual void writeString(std::string_view, bool) const =0
virtual void writeBreak(int indent) const =0
virtual void writeLink(const DString &extRef, const DString &file, const DString &anchor, std::string_view text) const =0
#define ABSTRACT_BASE_CLASS(cls)
Macro to implement rule of 5 for an abstract base class.
Definition construct.h:20
void linkifyText(const TextGeneratorIntf &out, const DString &text, const LinkifyTextOptions &options)
Definition dstring.h:879
LinkifyTextOptions & setScope(const Definition *scope)
Definition linkifytext.h:56
const FileDef * m_fileScope
Definition linkifytext.h:86
LinkifyTextOptions & setAutoBreak(bool autoBreak)
Definition linkifytext.h:68
const Definition * m_self
Definition linkifytext.h:87
LinkifyTextOptions & setSelf(const Definition *self)
Definition linkifytext.h:62
int indentLevel() const
Definition linkifytext.h:52
LinkifyTextOptions & setFileScope(const FileDef *fileScope)
Definition linkifytext.h:59
bool external() const
Definition linkifytext.h:50
const ArgumentList * m_al
Definition linkifytext.h:88
LinkifyTextOptions & setIndentLevel(int indentLevel)
Definition linkifytext.h:77
const ArgumentList * argumentList() const
Definition linkifytext.h:48
LinkifyTextOptions & setArgumentList(const ArgumentList *al)
Definition linkifytext.h:65
const Definition * scope() const
Definition linkifytext.h:45
const Definition * self() const
Definition linkifytext.h:47
LinkifyTextOptions & setKeepSpaces(bool keepSpaces)
Definition linkifytext.h:74
size_t breakThreshold() const
Definition linkifytext.h:53
bool keepSpaces() const
Definition linkifytext.h:51
const FileDef * fileScope() const
Definition linkifytext.h:46
const Definition * m_scope
Definition linkifytext.h:85
LinkifyTextOptions & setExternal(bool external)
Definition linkifytext.h:71
bool autoBreak() const
Definition linkifytext.h:49
LinkifyTextOptions & setBreakThreshold(size_t breakThreshold)
Definition linkifytext.h:80