Doxygen
Toggle main menu visibility
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
22
class
Definition
;
23
class
FileDef
;
24
class
ArgumentList
;
25
26
/** Abstract interface for a hyperlinked text fragment. */
27
class
TextGeneratorIntf
28
{
29
public
:
30
ABSTRACT_BASE_CLASS
(
TextGeneratorIntf
)
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
41
struct
LinkifyTextOptions
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
56
LinkifyTextOptions
&
setScope
(
const
Definition
*
scope
)
57
{
m_scope
=
scope
;
return
*
this
; }
58
59
LinkifyTextOptions
&
setFileScope
(
const
FileDef
*
fileScope
)
60
{
m_fileScope
=
fileScope
;
return
*
this
; }
61
62
LinkifyTextOptions
&
setSelf
(
const
Definition
*
self
)
63
{
m_self
=
self
;
return
*
this
;}
64
65
LinkifyTextOptions
&
setArgumentList
(
const
ArgumentList
*al)
66
{
m_al
= al;
return
*
this
; }
67
68
LinkifyTextOptions
&
setAutoBreak
(
bool
autoBreak
)
69
{
m_autoBreak
=
autoBreak
;
return
*
this
; }
70
71
LinkifyTextOptions
&
setExternal
(
bool
external
)
72
{
m_external
=
external
;
return
*
this
; }
73
74
LinkifyTextOptions
&
setKeepSpaces
(
bool
keepSpaces
)
75
{
m_keepSpaces
=
keepSpaces
;
return
*
this
; }
76
77
LinkifyTextOptions
&
setIndentLevel
(
int
indentLevel
)
78
{
m_indentLevel
=
indentLevel
;
return
*
this
; }
79
80
LinkifyTextOptions
&
setBreakThreshold
(
size_t
breakThreshold
)
81
{
m_breakThreshold
=
breakThreshold
;
return
*
this
; }
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
;
92
int
m_indentLevel
= 0;
93
size_t
m_breakThreshold
= 30;
94
};
95
96
//--------------------------------------------------------------------
97
98
void
linkifyText
(
const
TextGeneratorIntf
&ol,
99
const
DString
&text,
100
const
LinkifyTextOptions
&options
101
);
102
103
#endif
// LINKIFYTEXT_H
ArgumentList
This class represents an function or template argument list.
Definition
arguments.h:65
DString
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition
dstring.h:89
Definition
The common base class of all entity definitions found in the sources.
Definition
definition.h:77
FileDef
A model of a file symbol.
Definition
filedef.h:99
TextGeneratorIntf
Abstract interface for a hyperlinked text fragment.
Definition
linkifytext.h:28
TextGeneratorIntf::writeString
virtual void writeString(std::string_view, bool) const =0
TextGeneratorIntf::writeBreak
virtual void writeBreak(int indent) const =0
TextGeneratorIntf::writeLink
virtual void writeLink(const DString &extRef, const DString &file, const DString &anchor, std::string_view text) const =0
construct.h
ABSTRACT_BASE_CLASS
#define ABSTRACT_BASE_CLASS(cls)
Macro to implement rule of 5 for an abstract base class.
Definition
construct.h:20
dstring.h
linkifyText
void linkifyText(const TextGeneratorIntf &out, const DString &text, const LinkifyTextOptions &options)
Definition
linkifytext.cpp:25
std
Definition
dstring.h:879
LinkifyTextOptions
Definition
linkifytext.h:42
LinkifyTextOptions::setScope
LinkifyTextOptions & setScope(const Definition *scope)
Definition
linkifytext.h:56
LinkifyTextOptions::m_breakThreshold
size_t m_breakThreshold
Definition
linkifytext.h:93
LinkifyTextOptions::m_fileScope
const FileDef * m_fileScope
Definition
linkifytext.h:86
LinkifyTextOptions::m_indentLevel
int m_indentLevel
Definition
linkifytext.h:92
LinkifyTextOptions::setAutoBreak
LinkifyTextOptions & setAutoBreak(bool autoBreak)
Definition
linkifytext.h:68
LinkifyTextOptions::m_self
const Definition * m_self
Definition
linkifytext.h:87
LinkifyTextOptions::setSelf
LinkifyTextOptions & setSelf(const Definition *self)
Definition
linkifytext.h:62
LinkifyTextOptions::indentLevel
int indentLevel() const
Definition
linkifytext.h:52
LinkifyTextOptions::setFileScope
LinkifyTextOptions & setFileScope(const FileDef *fileScope)
Definition
linkifytext.h:59
LinkifyTextOptions::external
bool external() const
Definition
linkifytext.h:50
LinkifyTextOptions::m_al
const ArgumentList * m_al
Definition
linkifytext.h:88
LinkifyTextOptions::setIndentLevel
LinkifyTextOptions & setIndentLevel(int indentLevel)
Definition
linkifytext.h:77
LinkifyTextOptions::argumentList
const ArgumentList * argumentList() const
Definition
linkifytext.h:48
LinkifyTextOptions::setArgumentList
LinkifyTextOptions & setArgumentList(const ArgumentList *al)
Definition
linkifytext.h:65
LinkifyTextOptions::scope
const Definition * scope() const
Definition
linkifytext.h:45
LinkifyTextOptions::self
const Definition * self() const
Definition
linkifytext.h:47
LinkifyTextOptions::m_external
bool m_external
Definition
linkifytext.h:90
LinkifyTextOptions::setKeepSpaces
LinkifyTextOptions & setKeepSpaces(bool keepSpaces)
Definition
linkifytext.h:74
LinkifyTextOptions::m_keepSpaces
bool m_keepSpaces
Definition
linkifytext.h:91
LinkifyTextOptions::breakThreshold
size_t breakThreshold() const
Definition
linkifytext.h:53
LinkifyTextOptions::keepSpaces
bool keepSpaces() const
Definition
linkifytext.h:51
LinkifyTextOptions::fileScope
const FileDef * fileScope() const
Definition
linkifytext.h:46
LinkifyTextOptions::m_scope
const Definition * m_scope
Definition
linkifytext.h:85
LinkifyTextOptions::m_autoBreak
bool m_autoBreak
Definition
linkifytext.h:89
LinkifyTextOptions::setExternal
LinkifyTextOptions & setExternal(bool external)
Definition
linkifytext.h:71
LinkifyTextOptions::autoBreak
bool autoBreak() const
Definition
linkifytext.h:49
LinkifyTextOptions::setBreakThreshold
LinkifyTextOptions & setBreakThreshold(size_t breakThreshold)
Definition
linkifytext.h:80
src
linkifytext.h
Generated by
1.19.0