1*0841af79SAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3*0841af79SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*0841af79SAndrew Rist * or more contributor license agreements. See the NOTICE file
5*0841af79SAndrew Rist * distributed with this work for additional information
6*0841af79SAndrew Rist * regarding copyright ownership. The ASF licenses this file
7*0841af79SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*0841af79SAndrew Rist * "License"); you may not use this file except in compliance
9*0841af79SAndrew Rist * with the License. You may obtain a copy of the License at
10*0841af79SAndrew Rist *
11*0841af79SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12*0841af79SAndrew Rist *
13*0841af79SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*0841af79SAndrew Rist * software distributed under the License is distributed on an
15*0841af79SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*0841af79SAndrew Rist * KIND, either express or implied. See the License for the
17*0841af79SAndrew Rist * specific language governing permissions and limitations
18*0841af79SAndrew Rist * under the License.
19*0841af79SAndrew Rist *
20*0841af79SAndrew Rist *************************************************************/
21cdf0e10cSrcweir
22cdf0e10cSrcweir #include <precomp.h>
23cdf0e10cSrcweir #include "hd_docu.hxx"
24cdf0e10cSrcweir
25cdf0e10cSrcweir
26cdf0e10cSrcweir // NOT FULLY DEFINED SERVICES
27cdf0e10cSrcweir #include <ary/cpp/c_gate.hxx>
28cdf0e10cSrcweir #include <ary/cpp/c_namesp.hxx>
29cdf0e10cSrcweir #include <ary/cpp/c_class.hxx>
30cdf0e10cSrcweir #include <ary/cpp/c_enum.hxx>
31cdf0e10cSrcweir #include <ary/cpp/c_tydef.hxx>
32cdf0e10cSrcweir #include <ary/cpp/c_funct.hxx>
33cdf0e10cSrcweir #include <ary/cpp/c_vari.hxx>
34cdf0e10cSrcweir #include <ary/cpp/c_enuval.hxx>
35cdf0e10cSrcweir #include <ary/doc/d_oldcppdocu.hxx>
36cdf0e10cSrcweir #include <ary/info/all_tags.hxx>
37cdf0e10cSrcweir #include <ary/info/all_dts.hxx>
38cdf0e10cSrcweir #include <adc_cl.hxx>
39cdf0e10cSrcweir #include "html_kit.hxx"
40cdf0e10cSrcweir #include "opageenv.hxx"
41cdf0e10cSrcweir
42cdf0e10cSrcweir
43cdf0e10cSrcweir
44cdf0e10cSrcweir using namespace ary::info;
45cdf0e10cSrcweir using namespace csi;
46cdf0e10cSrcweir
47cdf0e10cSrcweir using html::DefList;
48cdf0e10cSrcweir using html::DefListTerm;
49cdf0e10cSrcweir using html::DefListDefinition;
50cdf0e10cSrcweir using html::Headline;
51cdf0e10cSrcweir using html::Link;
52cdf0e10cSrcweir
53cdf0e10cSrcweir
54cdf0e10cSrcweir const char *
55cdf0e10cSrcweir C_sTagHeadlines[ ary::info::C_eAtTag_NrOfClasses ] =
56cdf0e10cSrcweir {
57cdf0e10cSrcweir "ATTENTION!", "Author", "Changes", "Collaborators",
58cdf0e10cSrcweir "Contact", // Contact may be unused
59cdf0e10cSrcweir "Copyright", "Deprecated", "Description", "Date of Documentation",
60cdf0e10cSrcweir "How to Derive from this Class",
61cdf0e10cSrcweir "Heap object - owner is responsible for deletion.",
62cdf0e10cSrcweir "Important Instances",
63cdf0e10cSrcweir "Interface Only",
64cdf0e10cSrcweir "Invariant", "Lifecycle",
65cdf0e10cSrcweir "Multiplicity", "On Error", "Persistency", "Postcondition",
66cdf0e10cSrcweir "Precondition",
67cdf0e10cSrcweir "Responsibilities",
68cdf0e10cSrcweir "Return", "Summary", "Todos", "Version",
69cdf0e10cSrcweir "Base Classes", "Exceptions", "Implements", "Keywords", "Parameters",
70cdf0e10cSrcweir "See Also", "Template Parameters",
71cdf0e10cSrcweir "", "Since "
72cdf0e10cSrcweir };
73cdf0e10cSrcweir
74cdf0e10cSrcweir
75cdf0e10cSrcweir
Docu_Display(OuputPage_Environment & io_rEnv)76cdf0e10cSrcweir Docu_Display::Docu_Display( OuputPage_Environment & io_rEnv )
77cdf0e10cSrcweir : HtmlDisplay_Impl(io_rEnv),
78cdf0e10cSrcweir bUseHtmlInDocuTokens(false),
79cdf0e10cSrcweir pCurClassOverwrite(0)
80cdf0e10cSrcweir {
81cdf0e10cSrcweir }
82cdf0e10cSrcweir
~Docu_Display()83cdf0e10cSrcweir Docu_Display::~Docu_Display()
84cdf0e10cSrcweir {
85cdf0e10cSrcweir }
86cdf0e10cSrcweir
87cdf0e10cSrcweir void
Assign_Out(csi::xml::Element & o_rOut)88cdf0e10cSrcweir Docu_Display::Assign_Out( csi::xml::Element & o_rOut )
89cdf0e10cSrcweir {
90cdf0e10cSrcweir Easy().Enter(o_rOut);
91cdf0e10cSrcweir }
92cdf0e10cSrcweir
93cdf0e10cSrcweir void
Unassign_Out()94cdf0e10cSrcweir Docu_Display::Unassign_Out()
95cdf0e10cSrcweir {
96cdf0e10cSrcweir Easy().Leave();
97cdf0e10cSrcweir }
98cdf0e10cSrcweir
99cdf0e10cSrcweir void
do_Process(const ary::cpp::Namespace & i_rData)100cdf0e10cSrcweir Docu_Display::do_Process( const ary::cpp::Namespace & i_rData )
101cdf0e10cSrcweir {
102cdf0e10cSrcweir Process(i_rData.Docu());
103cdf0e10cSrcweir }
104cdf0e10cSrcweir
105cdf0e10cSrcweir void
do_Process(const ary::cpp::Class & i_rData)106cdf0e10cSrcweir Docu_Display::do_Process( const ary::cpp::Class & i_rData )
107cdf0e10cSrcweir {
108cdf0e10cSrcweir pCurClassOverwrite = &i_rData;
109cdf0e10cSrcweir Process(i_rData.Docu());
110cdf0e10cSrcweir pCurClassOverwrite = 0;
111cdf0e10cSrcweir }
112cdf0e10cSrcweir
113cdf0e10cSrcweir void
do_Process(const ary::cpp::Enum & i_rData)114cdf0e10cSrcweir Docu_Display::do_Process( const ary::cpp::Enum & i_rData )
115cdf0e10cSrcweir {
116cdf0e10cSrcweir Process(i_rData.Docu());
117cdf0e10cSrcweir }
118cdf0e10cSrcweir
119cdf0e10cSrcweir void
do_Process(const ary::cpp::Typedef & i_rData)120cdf0e10cSrcweir Docu_Display::do_Process( const ary::cpp::Typedef & i_rData )
121cdf0e10cSrcweir {
122cdf0e10cSrcweir Process(i_rData.Docu());
123cdf0e10cSrcweir }
124cdf0e10cSrcweir
125cdf0e10cSrcweir void
do_Process(const ary::cpp::Function & i_rData)126cdf0e10cSrcweir Docu_Display::do_Process( const ary::cpp::Function & i_rData )
127cdf0e10cSrcweir {
128cdf0e10cSrcweir Process(i_rData.Docu());
129cdf0e10cSrcweir }
130cdf0e10cSrcweir
131cdf0e10cSrcweir void
do_Process(const ary::cpp::Variable & i_rData)132cdf0e10cSrcweir Docu_Display::do_Process( const ary::cpp::Variable & i_rData )
133cdf0e10cSrcweir {
134cdf0e10cSrcweir Process(i_rData.Docu());
135cdf0e10cSrcweir }
136cdf0e10cSrcweir
137cdf0e10cSrcweir
138cdf0e10cSrcweir
139cdf0e10cSrcweir // -------------- Interface ary::info::DocuDisplay ------------------ //
140cdf0e10cSrcweir
141cdf0e10cSrcweir
142cdf0e10cSrcweir void
do_Process(const ary::doc::Documentation & i_rData)143cdf0e10cSrcweir Docu_Display::do_Process(const ary::doc::Documentation & i_rData)
144cdf0e10cSrcweir {
145cdf0e10cSrcweir if (i_rData.Data() == 0)
146cdf0e10cSrcweir return;
147cdf0e10cSrcweir
148cdf0e10cSrcweir const ary::doc::OldCppDocu *
149cdf0e10cSrcweir docdata = dynamic_cast< const ary::doc::OldCppDocu* >(i_rData.Data());
150cdf0e10cSrcweir csv_assert(docdata != 0);
151cdf0e10cSrcweir
152cdf0e10cSrcweir Start_DocuBlock();
153cdf0e10cSrcweir
154cdf0e10cSrcweir if ( docdata->IsObsolete() )
155cdf0e10cSrcweir {
156cdf0e10cSrcweir CurOut()
157cdf0e10cSrcweir >> *new html::DefListTerm
158cdf0e10cSrcweir >> *new html::Strong
159cdf0e10cSrcweir << "D E P R E C A T E D";
160cdf0e10cSrcweir
161cdf0e10cSrcweir }
162cdf0e10cSrcweir
163cdf0e10cSrcweir ary::doc::OldCppDocu::TagList::const_iterator
164cdf0e10cSrcweir itEnd = docdata->Tags().end();
165cdf0e10cSrcweir for ( ary::doc::OldCppDocu::TagList::const_iterator it = docdata->Tags().begin();
166cdf0e10cSrcweir it != itEnd;
167cdf0e10cSrcweir ++it )
168cdf0e10cSrcweir {
169cdf0e10cSrcweir (*it)->StoreAt( *this );
170cdf0e10cSrcweir }
171cdf0e10cSrcweir
172cdf0e10cSrcweir Finish_DocuBlock();
173cdf0e10cSrcweir }
174cdf0e10cSrcweir
175cdf0e10cSrcweir void
Display_StdTag(const StdTag & i_rData)176cdf0e10cSrcweir Docu_Display::Display_StdTag( const StdTag & i_rData )
177cdf0e10cSrcweir {
178cdf0e10cSrcweir csv_assert( uintt(i_rData.Std_Id()) < uintt(ary::info::C_eAtTag_NrOfClasses) );
179cdf0e10cSrcweir
180cdf0e10cSrcweir const ary::info::DocuText::TokenList &
181cdf0e10cSrcweir rText = i_rData.CText().Tokens();
182cdf0e10cSrcweir typedef ary::info::DocuText::TokenList::const_iterator TokenIterator;
183cdf0e10cSrcweir
184cdf0e10cSrcweir if ( rText.empty() )
185cdf0e10cSrcweir return;
186cdf0e10cSrcweir else if ( rText.size() < 3 )
187cdf0e10cSrcweir {
188cdf0e10cSrcweir bool bIsWhite = true;
189cdf0e10cSrcweir for ( TokenIterator it = rText.begin();
190cdf0e10cSrcweir it != rText.end();
191cdf0e10cSrcweir ++it )
192cdf0e10cSrcweir {
193cdf0e10cSrcweir if (bIsWhite)
194cdf0e10cSrcweir bIsWhite = (*it)->IsWhite();
195cdf0e10cSrcweir }
196cdf0e10cSrcweir if (bIsWhite)
197cdf0e10cSrcweir return;
198cdf0e10cSrcweir }
199cdf0e10cSrcweir
200cdf0e10cSrcweir Write_TagTitle( C_sTagHeadlines[i_rData.Std_Id()] );
201cdf0e10cSrcweir Write_TagContents( i_rData.CText() );
202cdf0e10cSrcweir }
203cdf0e10cSrcweir
204cdf0e10cSrcweir void
Display_BaseTag(const BaseTag &)205cdf0e10cSrcweir Docu_Display::Display_BaseTag( const BaseTag & )
206cdf0e10cSrcweir {
207cdf0e10cSrcweir }
208cdf0e10cSrcweir
209cdf0e10cSrcweir void
Display_ExceptionTag(const ExceptionTag &)210cdf0e10cSrcweir Docu_Display::Display_ExceptionTag( const ExceptionTag & )
211cdf0e10cSrcweir {
212cdf0e10cSrcweir }
213cdf0e10cSrcweir
214cdf0e10cSrcweir void
Display_ImplementsTag(const ImplementsTag &)215cdf0e10cSrcweir Docu_Display::Display_ImplementsTag( const ImplementsTag & )
216cdf0e10cSrcweir {
217cdf0e10cSrcweir }
218cdf0e10cSrcweir
219cdf0e10cSrcweir void
Display_KeywordTag(const KeywordTag &)220cdf0e10cSrcweir Docu_Display::Display_KeywordTag( const KeywordTag & )
221cdf0e10cSrcweir {
222cdf0e10cSrcweir }
223cdf0e10cSrcweir
224cdf0e10cSrcweir void
Display_ParameterTag(const ParameterTag & i_rData)225cdf0e10cSrcweir Docu_Display::Display_ParameterTag( const ParameterTag & i_rData )
226cdf0e10cSrcweir {
227cdf0e10cSrcweir Write_TagTitle( "Parameters" );
228cdf0e10cSrcweir
229cdf0e10cSrcweir adcdisp::ExplanationTable
230cdf0e10cSrcweir aParams( CurOut() >> *new DefListDefinition );
231cdf0e10cSrcweir
232cdf0e10cSrcweir for ( const ParameterTag * pParam = &i_rData;
233cdf0e10cSrcweir pParam != 0;
234cdf0e10cSrcweir pParam = pParam->GetNext() ) // KORR_FUTURE
235cdf0e10cSrcweir {
236cdf0e10cSrcweir aParams.AddEntry( pParam->ParamName().c_str() );
237cdf0e10cSrcweir
238cdf0e10cSrcweir Easy().Enter( aParams.Def() );
239cdf0e10cSrcweir Write_Text( pParam->CText() );
240cdf0e10cSrcweir Easy().Leave();
241cdf0e10cSrcweir } // end for
242cdf0e10cSrcweir }
243cdf0e10cSrcweir
244cdf0e10cSrcweir void
Display_SeeTag(const SeeTag & i_rData)245cdf0e10cSrcweir Docu_Display::Display_SeeTag( const SeeTag & i_rData )
246cdf0e10cSrcweir {
247cdf0e10cSrcweir Write_TagTitle( "See Also" );
248cdf0e10cSrcweir
249cdf0e10cSrcweir DefListDefinition * dpDef = new DefListDefinition;
250cdf0e10cSrcweir CurOut() << dpDef;
251cdf0e10cSrcweir Easy().Enter(*dpDef);
252cdf0e10cSrcweir
253cdf0e10cSrcweir for ( std::vector< ary::QualifiedName >::const_iterator
254cdf0e10cSrcweir it = i_rData.References().begin();
255cdf0e10cSrcweir it != i_rData.References().end();
256cdf0e10cSrcweir ++it )
257cdf0e10cSrcweir {
258cdf0e10cSrcweir Write_LinkableText( (*it) );
259cdf0e10cSrcweir CurOut() << new html::LineBreak;
260cdf0e10cSrcweir }
261cdf0e10cSrcweir
262cdf0e10cSrcweir Easy().Leave();
263cdf0e10cSrcweir }
264cdf0e10cSrcweir
265cdf0e10cSrcweir void
Display_TemplateTag(const TemplateTag & i_rData)266cdf0e10cSrcweir Docu_Display::Display_TemplateTag( const TemplateTag & i_rData )
267cdf0e10cSrcweir {
268cdf0e10cSrcweir Write_TagTitle( "Template Parameters" );
269cdf0e10cSrcweir
270cdf0e10cSrcweir adcdisp::ExplanationTable
271cdf0e10cSrcweir aTplParams( CurOut() >> *new DefListDefinition );
272cdf0e10cSrcweir
273cdf0e10cSrcweir for ( const TemplateTag * pTplParam = &i_rData;
274cdf0e10cSrcweir pTplParam != 0;
275cdf0e10cSrcweir pTplParam = pTplParam->GetNext() )
276cdf0e10cSrcweir {
277cdf0e10cSrcweir aTplParams.AddEntry( pTplParam->TplParamName().c_str() );
278cdf0e10cSrcweir
279cdf0e10cSrcweir Easy().Enter( aTplParams.Def() );
280cdf0e10cSrcweir Write_Text( pTplParam->CText() );
281cdf0e10cSrcweir Easy().Leave();
282cdf0e10cSrcweir } // end for
283cdf0e10cSrcweir }
284cdf0e10cSrcweir
285cdf0e10cSrcweir void
Display_LabelTag(const LabelTag &)286cdf0e10cSrcweir Docu_Display::Display_LabelTag( const LabelTag & )
287cdf0e10cSrcweir {
288cdf0e10cSrcweir }
289cdf0e10cSrcweir
290cdf0e10cSrcweir void
Display_SinceTag(const ary::info::SinceTag & i_rData)291cdf0e10cSrcweir Docu_Display::Display_SinceTag( const ary::info::SinceTag & i_rData )
292cdf0e10cSrcweir {
293cdf0e10cSrcweir if ( i_rData.Version().empty() )
294cdf0e10cSrcweir {
295cdf0e10cSrcweir return;
296cdf0e10cSrcweir }
297cdf0e10cSrcweir
298cdf0e10cSrcweir // Transform the value of the @since tag into the text to be displayed.
299cdf0e10cSrcweir String sDisplay;
300cdf0e10cSrcweir if ( autodoc::CommandLine::Get_().DoesTransform_SinceTag() )
301cdf0e10cSrcweir {
302cdf0e10cSrcweir sDisplay = autodoc::CommandLine::Get_()
303cdf0e10cSrcweir .DisplayOf_SinceTagValue( i_rData.Version() );
304cdf0e10cSrcweir }
305cdf0e10cSrcweir else
306cdf0e10cSrcweir {
307cdf0e10cSrcweir sDisplay = i_rData.Version();
308cdf0e10cSrcweir }
309cdf0e10cSrcweir
310cdf0e10cSrcweir if (sDisplay.empty())
311cdf0e10cSrcweir return;
312cdf0e10cSrcweir
313cdf0e10cSrcweir Write_TagTitle( "Since " );
314cdf0e10cSrcweir
315cdf0e10cSrcweir DefListDefinition * dpDef = new DefListDefinition;
316cdf0e10cSrcweir CurOut() << dpDef;
317cdf0e10cSrcweir
318cdf0e10cSrcweir Easy().Enter(*dpDef);
319cdf0e10cSrcweir CurOut() << sDisplay;
320cdf0e10cSrcweir Easy().Leave();
321cdf0e10cSrcweir }
322cdf0e10cSrcweir
323cdf0e10cSrcweir void
Display_DT_Text(const DT_Text & i_rData)324cdf0e10cSrcweir Docu_Display::Display_DT_Text( const DT_Text & i_rData )
325cdf0e10cSrcweir {
326cdf0e10cSrcweir Write_TextToken( i_rData.Text() );
327cdf0e10cSrcweir }
328cdf0e10cSrcweir
329cdf0e10cSrcweir void
Display_DT_MaybeLink(const DT_MaybeLink & i_rData)330cdf0e10cSrcweir Docu_Display::Display_DT_MaybeLink( const DT_MaybeLink & i_rData )
331cdf0e10cSrcweir {
332cdf0e10cSrcweir // KORR_FUTURE
333cdf0e10cSrcweir Write_TextToken( i_rData.Text() );
334cdf0e10cSrcweir }
335cdf0e10cSrcweir
336cdf0e10cSrcweir void
Display_DT_Whitespace(const DT_Whitespace & i_rData)337cdf0e10cSrcweir Docu_Display::Display_DT_Whitespace( const DT_Whitespace & i_rData )
338cdf0e10cSrcweir {
339cdf0e10cSrcweir static char sSpace[300] =
340cdf0e10cSrcweir " "
341cdf0e10cSrcweir " "
342cdf0e10cSrcweir " "
343cdf0e10cSrcweir " "
344cdf0e10cSrcweir " "
345cdf0e10cSrcweir " ";
346cdf0e10cSrcweir UINT8 nLength = i_rData.Length();
347cdf0e10cSrcweir sSpace[nLength] = NULCH;
348cdf0e10cSrcweir CurOut() << sSpace;
349cdf0e10cSrcweir sSpace[nLength] = ' ';
350cdf0e10cSrcweir }
351cdf0e10cSrcweir
352cdf0e10cSrcweir void
Display_DT_Eol(const DT_Eol &)353cdf0e10cSrcweir Docu_Display::Display_DT_Eol( const DT_Eol & )
354cdf0e10cSrcweir {
355cdf0e10cSrcweir CurOut() << new html::Sbr;
356cdf0e10cSrcweir }
357cdf0e10cSrcweir
358cdf0e10cSrcweir void
Display_DT_Xml(const ary::info::DT_Xml & i_rData)359cdf0e10cSrcweir Docu_Display::Display_DT_Xml( const ary::info::DT_Xml & i_rData )
360cdf0e10cSrcweir {
361cdf0e10cSrcweir CurOut() << new xml::XmlCode( i_rData.Text() );
362cdf0e10cSrcweir }
363cdf0e10cSrcweir
364cdf0e10cSrcweir const ary::cpp::Gate *
inq_Get_ReFinder() const365cdf0e10cSrcweir Docu_Display::inq_Get_ReFinder() const
366cdf0e10cSrcweir {
367cdf0e10cSrcweir return &Env().Gate();
368cdf0e10cSrcweir }
369cdf0e10cSrcweir
370cdf0e10cSrcweir void
Start_DocuBlock()371cdf0e10cSrcweir Docu_Display::Start_DocuBlock()
372cdf0e10cSrcweir {
373cdf0e10cSrcweir DYN DefList * dpDefList = new DefList;
374cdf0e10cSrcweir CurOut() << dpDefList;
375cdf0e10cSrcweir Easy().Enter( *dpDefList );
376cdf0e10cSrcweir }
377cdf0e10cSrcweir
378cdf0e10cSrcweir void
Finish_DocuBlock()379cdf0e10cSrcweir Docu_Display::Finish_DocuBlock()
380cdf0e10cSrcweir {
381cdf0e10cSrcweir Easy().Leave();
382cdf0e10cSrcweir }
383cdf0e10cSrcweir
384cdf0e10cSrcweir void
Write_TagTitle(const char * i_sText,const char *)385cdf0e10cSrcweir Docu_Display::Write_TagTitle( const char * i_sText,
386cdf0e10cSrcweir const char * )
387cdf0e10cSrcweir {
388cdf0e10cSrcweir if ( strcmp(i_sText,"ATTENTION!") == 0 )
389cdf0e10cSrcweir {
390cdf0e10cSrcweir CurOut()
391cdf0e10cSrcweir >> *new html::DefListTerm
392cdf0e10cSrcweir << new html::ClassAttr("attention")
393cdf0e10cSrcweir << i_sText;
394cdf0e10cSrcweir }
395cdf0e10cSrcweir else
396cdf0e10cSrcweir {
397cdf0e10cSrcweir CurOut()
398cdf0e10cSrcweir >> *new html::DefListTerm
399cdf0e10cSrcweir << i_sText;
400cdf0e10cSrcweir }
401cdf0e10cSrcweir }
402cdf0e10cSrcweir
403cdf0e10cSrcweir void
Write_TagContents(const DocuText & i_rDocuText)404cdf0e10cSrcweir Docu_Display::Write_TagContents( const DocuText & i_rDocuText )
405cdf0e10cSrcweir {
406cdf0e10cSrcweir DefListDefinition * dpDef = new DefListDefinition;
407cdf0e10cSrcweir CurOut() << dpDef;
408cdf0e10cSrcweir
409cdf0e10cSrcweir Easy().Enter(*dpDef);
410cdf0e10cSrcweir Write_Text(i_rDocuText);
411cdf0e10cSrcweir Easy().Leave();
412cdf0e10cSrcweir }
413cdf0e10cSrcweir
414cdf0e10cSrcweir void
Write_Text(const ary::info::DocuText & i_rDocuText)415cdf0e10cSrcweir Docu_Display::Write_Text( const ary::info::DocuText & i_rDocuText )
416cdf0e10cSrcweir {
417cdf0e10cSrcweir if ( i_rDocuText.IsNoHtml() )
418cdf0e10cSrcweir {
419cdf0e10cSrcweir CurOut()
420cdf0e10cSrcweir << new xml::XmlCode("<pre>");
421cdf0e10cSrcweir bUseHtmlInDocuTokens = false;
422cdf0e10cSrcweir }
423cdf0e10cSrcweir else
424cdf0e10cSrcweir {
425cdf0e10cSrcweir bUseHtmlInDocuTokens = true;
426cdf0e10cSrcweir }
427cdf0e10cSrcweir i_rDocuText.StoreAt( *this );
428cdf0e10cSrcweir if ( i_rDocuText.IsNoHtml() )
429cdf0e10cSrcweir {
430cdf0e10cSrcweir CurOut()
431cdf0e10cSrcweir << new xml::XmlCode("</pre>");
432cdf0e10cSrcweir }
433cdf0e10cSrcweir }
434cdf0e10cSrcweir
435cdf0e10cSrcweir void
Write_TextToken(const String & i_sText)436cdf0e10cSrcweir Docu_Display::Write_TextToken( const String & i_sText )
437cdf0e10cSrcweir {
438cdf0e10cSrcweir if ( bUseHtmlInDocuTokens )
439cdf0e10cSrcweir CurOut() << new xml::XmlCode(i_sText);
440cdf0e10cSrcweir else
441cdf0e10cSrcweir CurOut() << i_sText;
442cdf0e10cSrcweir }
443cdf0e10cSrcweir
444cdf0e10cSrcweir void
Write_LinkableText(const ary::QualifiedName & i_sQuName)445cdf0e10cSrcweir Docu_Display::Write_LinkableText( const ary::QualifiedName & i_sQuName )
446cdf0e10cSrcweir {
447cdf0e10cSrcweir const ary::cpp::CodeEntity *
448cdf0e10cSrcweir pCe = FindUnambiguousCe( Env(), i_sQuName, pCurClassOverwrite );
449cdf0e10cSrcweir if ( pCe != 0 )
450cdf0e10cSrcweir {
451cdf0e10cSrcweir csi::xml::Element *
452cdf0e10cSrcweir pLink = new csi::html::Link( Link2Ce(Env(), *pCe) );
453cdf0e10cSrcweir CurOut() << pLink;
454cdf0e10cSrcweir Easy().Enter(*pLink);
455cdf0e10cSrcweir Write_QualifiedName(i_sQuName);
456cdf0e10cSrcweir Easy().Leave();
457cdf0e10cSrcweir }
458cdf0e10cSrcweir else
459cdf0e10cSrcweir {
460cdf0e10cSrcweir Write_QualifiedName(i_sQuName);
461cdf0e10cSrcweir }
462cdf0e10cSrcweir CurOut() << " ";
463cdf0e10cSrcweir }
464cdf0e10cSrcweir
465cdf0e10cSrcweir void
Write_QualifiedName(const ary::QualifiedName & i_sQuName)466cdf0e10cSrcweir Docu_Display::Write_QualifiedName( const ary::QualifiedName & i_sQuName )
467cdf0e10cSrcweir {
468cdf0e10cSrcweir if ( i_sQuName.IsAbsolute() )
469cdf0e10cSrcweir CurOut() << "::";
470cdf0e10cSrcweir for ( ary::QualifiedName::namespace_iterator it = i_sQuName.first_namespace();
471cdf0e10cSrcweir it != i_sQuName.end_namespace();
472cdf0e10cSrcweir ++it )
473cdf0e10cSrcweir {
474cdf0e10cSrcweir CurOut() << (*it) << "::";
475cdf0e10cSrcweir }
476cdf0e10cSrcweir CurOut() << i_sQuName.LocalName();
477cdf0e10cSrcweir if ( i_sQuName.IsFunction() )
478cdf0e10cSrcweir CurOut() << "()";
479cdf0e10cSrcweir }
480cdf0e10cSrcweir
481