xref: /aoo4110/main/autodoc/inc/ary_i/d_token.hxx (revision b1cdbd2c)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef CSI_DSAPI_D_TOKEN_HXX
25 #define CSI_DSAPI_D_TOKEN_HXX
26 
27 // BASE CLASSES
28 #include <ary_i/ci_text2.hxx>
29 #include <ary_i/ci_atag2.hxx>
30 
31 
32 namespace ary
33 {
34 namespace inf
35 {
36     class DocumentationDisplay;
37 }
38 }
39 
40 
41 
42 namespace csi
43 {
44 namespace dsapi
45 {
46 
47 using ary::inf::DocumentationDisplay;
48 
49 
50 class DT_Dsapi : public ary::inf::DocuToken
51 {
52   public:
53 	virtual void		DisplayAt(
54 							DocumentationDisplay &
55 												o_rDisplay ) const  = 0;
56 	virtual bool		IsWhiteOnly() const;
57 };
58 
59 
60 
61 class DT_TextToken : public DT_Dsapi
62 {
63   public:
DT_TextToken(const char * i_sText)64 	explicit		    DT_TextToken(
65 							const char *		i_sText )
66 												:	sText(i_sText) {}
DT_TextToken(const String & i_sText)67 	explicit		    DT_TextToken(
68 							const String &  	i_sText )
69 												:	sText(i_sText) {}
70     virtual             ~DT_TextToken();
71 
72 	virtual void		DisplayAt(
73 							DocumentationDisplay &
74 												o_rDisplay ) const;
GetText() const75 	const char *		GetText() const			{ return sText; }
GetTextStr() const76 	const String &      GetTextStr() const		{ return sText; }
77 
Access_Text()78 	String &            Access_Text()   		{ return sText; }
79 
80 	virtual bool		IsWhiteOnly() const;
81 
82   private:
83 	String				sText;
84 };
85 
86 class DT_White : public DT_Dsapi
87 {
88   public:
DT_White()89                         DT_White() {}
90     virtual             ~DT_White();
91 
92 	virtual void		DisplayAt(
93 							DocumentationDisplay &
94 												o_rDisplay ) const;
95 	virtual bool		IsWhiteOnly() const;
96 };
97 
98 
99 class DT_MLTag : public DT_Dsapi
100 {
101   public:
102 	enum E_Kind
103 	{
104 		k_unknown = 0,
105 		k_begin,
106 		k_end,
107 		k_single
108 	};
109 };
110 
111 class DT_MupType : public DT_MLTag
112 {
113   public:
DT_MupType(bool)114 	explicit		    DT_MupType(             /// Constructor for End-Tag
115 							bool				)	/// Must be there, but is not evaluated.
116                                                 :	bIsBegin(false) {}
DT_MupType(const String & i_sScope)117 	explicit		    DT_MupType(             /// Constructor for Begin-Tag
118 							const String &		i_sScope )
119 												:	sScope(i_sScope), bIsBegin(true) {}
120     virtual             ~DT_MupType();
121 
122 	virtual void		DisplayAt(
123 							DocumentationDisplay &
124 												o_rDisplay ) const;
Scope() const125 	const String  &		Scope() const			{ return sScope; }
IsBegin() const126 	bool				IsBegin() const			{ return bIsBegin; }
127 
128   private:
129 	String 				sScope;
130 	bool				bIsBegin;
131 };
132 
133 class DT_MupMember : public DT_MLTag
134 {
135   public:
DT_MupMember(bool)136 	explicit		    DT_MupMember(           /// Constructor for End-Tag
137 							bool				)	/// Must be there, but is not evaluated.
138 												:	bIsBegin(false) {}
DT_MupMember(const String & i_sScope)139 						DT_MupMember(           /// Constructor for Begin-Tag
140 							const String &      i_sScope )
141 												:	sScope(i_sScope), bIsBegin(true) {}
142     virtual             ~DT_MupMember();
143 
144 	virtual void		DisplayAt(
145 							DocumentationDisplay &
146 												o_rDisplay ) const;
Scope() const147 	const String  &		Scope() const			{ return sScope; }
IsBegin() const148 	bool				IsBegin() const			{ return bIsBegin; }
149 
150   private:
151 	String 				sScope;
152 	bool				bIsBegin;
153 };
154 
155 class DT_MupConst : public DT_Dsapi
156 {
157   public:
DT_MupConst(const char * i_sConstText)158 						DT_MupConst(
159 							const char *		i_sConstText )
160 												:	sConstText(i_sConstText) {}
161 	virtual             ~DT_MupConst();
162 
163 	virtual void		DisplayAt(
164 							DocumentationDisplay &
165 												o_rDisplay ) const;
GetText() const166 	const char *		GetText() const			{ return sConstText; }
167 
168   private:
169 	String 				sConstText;				/// Without HTML.
170 };
171 
172 
173 class DT_Style : public DT_MLTag
174 {
175   public:
DT_Style(const char * i_sPlainHtmlTag,bool i_bNewLine)176 						DT_Style(
177 							const char *		i_sPlainHtmlTag,
178 							bool                i_bNewLine )
179 												: sText(i_sPlainHtmlTag), bNewLine(i_bNewLine) {}
180 	virtual             ~DT_Style();
181 
182 	virtual void		DisplayAt(
183 							DocumentationDisplay &
184 												o_rDisplay ) const;
GetText() const185 	const char *		GetText() const			{ return sText; }
IsStartOfNewLine() const186 	bool				IsStartOfNewLine() const
187 												{ return bNewLine; }
188   private:
189 	String 				sText;					/// With HTML.
190 	E_Kind              eKind;
191 	bool				bNewLine;
192 };
193 
194 class DT_EOL : public DT_Dsapi
195 {
196   public:
DT_EOL()197                         DT_EOL() {}
198     virtual             ~DT_EOL();
199 
200 	virtual void		DisplayAt(
201 							DocumentationDisplay &
202 												o_rDisplay ) const;
203 	virtual bool		IsWhiteOnly() const;
204 };
205 
206 
207 class DT_AtTag : public ary::inf::AtTag2
208 {
209   public:
AddToken(DYN ary::inf::DocuToken & let_drToken)210 	void            	AddToken(
211 							DYN ary::inf::DocuToken &
212 												let_drToken )
213 												{	aText.AddToken(let_drToken); }
SetName(const char * i_sName)214 	void				SetName(
215 							const char *		i_sName )
216 												{ sTitle = i_sName; }
217 
218   protected:
DT_AtTag(const char * i_sTitle)219 						DT_AtTag(
220 							const char *		i_sTitle )
221 												:	ary::inf::AtTag2(i_sTitle) {}
222 };
223 
224 class DT_StdAtTag : public DT_AtTag
225 {
226   public:
DT_StdAtTag(const char * i_sTitle)227 	explicit			DT_StdAtTag(
228 							const char *		i_sTitle )
229 												:	DT_AtTag(i_sTitle) {}
230 	virtual             ~DT_StdAtTag();
231 
232 	virtual void		DisplayAt(
233 							DocumentationDisplay &
234 												o_rDisplay ) const;
235 };
236 
237 class DT_SeeAlsoAtTag : public DT_AtTag
238 {
239   public:
DT_SeeAlsoAtTag()240 						DT_SeeAlsoAtTag()		:	DT_AtTag("") {}
241     virtual             ~DT_SeeAlsoAtTag();
242 
243 	virtual void		DisplayAt(
244 							DocumentationDisplay &
245 												o_rDisplay ) const;
LinkText() const246 	const String  &		LinkText() const		{ return sTitle; }	// Missbrauch von sTitle
247 };
248 
249 class DT_ParameterAtTag : public DT_AtTag
250 {
251   public:
DT_ParameterAtTag()252 						DT_ParameterAtTag()		:	DT_AtTag("") {}
253     virtual             ~DT_ParameterAtTag();
254 
255 	void				SetTitle(
256 		                	const char *		i_sTitle );
257 	virtual void		DisplayAt(
258 							DocumentationDisplay &
259 												o_rDisplay ) const;
260 };
261 
262 class DT_SinceAtTag : public DT_AtTag
263 {
264   public:
DT_SinceAtTag()265 						DT_SinceAtTag()		:	DT_AtTag("Since version") {}
266     virtual             ~DT_SinceAtTag();
267 
268 	virtual void		DisplayAt(
269 							DocumentationDisplay &
270 												o_rDisplay ) const;
271 };
272 
273 
274 }   // namespace dsapi
275 }   // namespace csi
276 
277 #endif
278 
279