1*1c78a5d6SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*1c78a5d6SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*1c78a5d6SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*1c78a5d6SAndrew Rist * distributed with this work for additional information 6*1c78a5d6SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*1c78a5d6SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*1c78a5d6SAndrew Rist * "License"); you may not use this file except in compliance 9*1c78a5d6SAndrew Rist * with the License. You may obtain a copy of the License at 10*1c78a5d6SAndrew Rist * 11*1c78a5d6SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*1c78a5d6SAndrew Rist * 13*1c78a5d6SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*1c78a5d6SAndrew Rist * software distributed under the License is distributed on an 15*1c78a5d6SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*1c78a5d6SAndrew Rist * KIND, either express or implied. See the License for the 17*1c78a5d6SAndrew Rist * specific language governing permissions and limitations 18*1c78a5d6SAndrew Rist * under the License. 19*1c78a5d6SAndrew Rist * 20*1c78a5d6SAndrew Rist *************************************************************/ 21*1c78a5d6SAndrew Rist 22*1c78a5d6SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef ADC_DISPLAY_HTML_HD_DOCU_HXX 25cdf0e10cSrcweir #define ADC_DISPLAY_HTML_HD_DOCU_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir // BASE CLASSES 28cdf0e10cSrcweir #include <ary/ary_disp.hxx> 29cdf0e10cSrcweir #include <ary/info/infodisp.hxx> 30cdf0e10cSrcweir #include <cosv/tpl/processor.hxx> 31cdf0e10cSrcweir #include "hdimpl.hxx" 32cdf0e10cSrcweir 33cdf0e10cSrcweir namespace ary 34cdf0e10cSrcweir { 35cdf0e10cSrcweir namespace cpp 36cdf0e10cSrcweir { 37cdf0e10cSrcweir class Namespace; 38cdf0e10cSrcweir class Class; 39cdf0e10cSrcweir class Enum; 40cdf0e10cSrcweir class Typedef; 41cdf0e10cSrcweir class Function; 42cdf0e10cSrcweir class Variable; 43cdf0e10cSrcweir } 44cdf0e10cSrcweir 45cdf0e10cSrcweir namespace doc 46cdf0e10cSrcweir { 47cdf0e10cSrcweir class Documentation; 48cdf0e10cSrcweir } 49cdf0e10cSrcweir namespace info 50cdf0e10cSrcweir { 51cdf0e10cSrcweir class DocuText; 52cdf0e10cSrcweir } 53cdf0e10cSrcweir 54cdf0e10cSrcweir class QualifiedName; 55cdf0e10cSrcweir } 56cdf0e10cSrcweir 57cdf0e10cSrcweir class OuputPage_Environment; 58cdf0e10cSrcweir 59cdf0e10cSrcweir 60cdf0e10cSrcweir class Docu_Display : public ary::Display, 61cdf0e10cSrcweir public csv::ConstProcessor<ary::cpp::Namespace>, 62cdf0e10cSrcweir public csv::ConstProcessor<ary::cpp::Class>, 63cdf0e10cSrcweir public csv::ConstProcessor<ary::cpp::Enum>, 64cdf0e10cSrcweir public csv::ConstProcessor<ary::cpp::Typedef>, 65cdf0e10cSrcweir public csv::ConstProcessor<ary::cpp::Function>, 66cdf0e10cSrcweir public csv::ConstProcessor<ary::cpp::Variable>, 67cdf0e10cSrcweir public csv::ConstProcessor<ary::doc::Documentation>, 68cdf0e10cSrcweir public ary::info::DocuDisplay, 69cdf0e10cSrcweir private HtmlDisplay_Impl 70cdf0e10cSrcweir { 71cdf0e10cSrcweir public: 72cdf0e10cSrcweir Docu_Display( 73cdf0e10cSrcweir OuputPage_Environment & 74cdf0e10cSrcweir io_rEnv ); 75cdf0e10cSrcweir virtual ~Docu_Display(); 76cdf0e10cSrcweir 77cdf0e10cSrcweir void Assign_Out( 78cdf0e10cSrcweir csi::xml::Element & o_rOut ); 79cdf0e10cSrcweir void Unassign_Out(); 80cdf0e10cSrcweir 81cdf0e10cSrcweir virtual void Display_StdTag( 82cdf0e10cSrcweir const ary::info::StdTag & 83cdf0e10cSrcweir i_rData ); 84cdf0e10cSrcweir virtual void Display_BaseTag( 85cdf0e10cSrcweir const ary::info::BaseTag & 86cdf0e10cSrcweir i_rData ); 87cdf0e10cSrcweir virtual void Display_ExceptionTag( 88cdf0e10cSrcweir const ary::info::ExceptionTag & 89cdf0e10cSrcweir i_rData ); 90cdf0e10cSrcweir virtual void Display_ImplementsTag( 91cdf0e10cSrcweir const ary::info::ImplementsTag & 92cdf0e10cSrcweir i_rData ); 93cdf0e10cSrcweir virtual void Display_KeywordTag( 94cdf0e10cSrcweir const ary::info::KeywordTag & 95cdf0e10cSrcweir i_rData ); 96cdf0e10cSrcweir virtual void Display_ParameterTag( 97cdf0e10cSrcweir const ary::info::ParameterTag & 98cdf0e10cSrcweir i_rData ); 99cdf0e10cSrcweir virtual void Display_SeeTag( 100cdf0e10cSrcweir const ary::info::SeeTag & 101cdf0e10cSrcweir i_rData ); 102cdf0e10cSrcweir virtual void Display_TemplateTag( 103cdf0e10cSrcweir const ary::info::TemplateTag & 104cdf0e10cSrcweir i_rData ); 105cdf0e10cSrcweir virtual void Display_LabelTag( 106cdf0e10cSrcweir const ary::info::LabelTag & 107cdf0e10cSrcweir i_rData ); 108cdf0e10cSrcweir virtual void Display_SinceTag( 109cdf0e10cSrcweir const ary::info::SinceTag & 110cdf0e10cSrcweir i_rData ); 111cdf0e10cSrcweir 112cdf0e10cSrcweir virtual void Display_DT_Text( 113cdf0e10cSrcweir const ary::info::DT_Text & 114cdf0e10cSrcweir i_rData ); 115cdf0e10cSrcweir virtual void Display_DT_MaybeLink( 116cdf0e10cSrcweir const ary::info::DT_MaybeLink & 117cdf0e10cSrcweir i_rData ); 118cdf0e10cSrcweir virtual void Display_DT_Whitespace( 119cdf0e10cSrcweir const ary::info::DT_Whitespace & 120cdf0e10cSrcweir i_rData ); 121cdf0e10cSrcweir virtual void Display_DT_Eol( 122cdf0e10cSrcweir const ary::info::DT_Eol & 123cdf0e10cSrcweir i_rData ); 124cdf0e10cSrcweir virtual void Display_DT_Xml( 125cdf0e10cSrcweir const ary::info::DT_Xml & 126cdf0e10cSrcweir i_rData ); 127cdf0e10cSrcweir 128cdf0e10cSrcweir using csv::ConstProcessor<ary::doc::Documentation>::Process; 129cdf0e10cSrcweir 130cdf0e10cSrcweir private: 131cdf0e10cSrcweir // Interface csv::ConstProcessor<>: 132cdf0e10cSrcweir virtual void do_Process( 133cdf0e10cSrcweir const ary::cpp::Namespace & 134cdf0e10cSrcweir i_rData ); 135cdf0e10cSrcweir virtual void do_Process( 136cdf0e10cSrcweir const ary::cpp::Class & 137cdf0e10cSrcweir i_rData ); 138cdf0e10cSrcweir virtual void do_Process( 139cdf0e10cSrcweir const ary::cpp::Enum & 140cdf0e10cSrcweir i_rData ); 141cdf0e10cSrcweir virtual void do_Process( 142cdf0e10cSrcweir const ary::cpp::Typedef & 143cdf0e10cSrcweir i_rData ); 144cdf0e10cSrcweir virtual void do_Process( 145cdf0e10cSrcweir const ary::cpp::Function & 146cdf0e10cSrcweir i_rData ); 147cdf0e10cSrcweir virtual void do_Process( 148cdf0e10cSrcweir const ary::cpp::Variable & 149cdf0e10cSrcweir i_rData ); 150cdf0e10cSrcweir virtual void do_Process( 151cdf0e10cSrcweir const ary::doc::Documentation & 152cdf0e10cSrcweir i_rData ); 153cdf0e10cSrcweir // Interface ary::Display: 154cdf0e10cSrcweir virtual const ary::cpp::Gate * 155cdf0e10cSrcweir inq_Get_ReFinder() const; 156cdf0e10cSrcweir // Locals 157cdf0e10cSrcweir void Start_DocuBlock(); 158cdf0e10cSrcweir void Finish_DocuBlock(); 159cdf0e10cSrcweir 160cdf0e10cSrcweir void Write_TagTitle( 161cdf0e10cSrcweir const char * i_sText, 162cdf0e10cSrcweir const char * i_nFontSize = "+0" ); 163cdf0e10cSrcweir void Write_TagContents( 164cdf0e10cSrcweir const ary::info::DocuText & 165cdf0e10cSrcweir i_rDocuText ); 166cdf0e10cSrcweir void Write_Text( 167cdf0e10cSrcweir const ary::info::DocuText & 168cdf0e10cSrcweir i_rDocuText ); 169cdf0e10cSrcweir void Write_TextToken( 170cdf0e10cSrcweir const String & i_sText ); 171cdf0e10cSrcweir void Write_LinkableText( 172cdf0e10cSrcweir const ary::QualifiedName & 173cdf0e10cSrcweir i_sQuName ); 174cdf0e10cSrcweir void Write_QualifiedName( 175cdf0e10cSrcweir const ary::QualifiedName & 176cdf0e10cSrcweir i_sQuName ); 177cdf0e10cSrcweir 178cdf0e10cSrcweir // DATA 179cdf0e10cSrcweir bool bUseHtmlInDocuTokens; 180cdf0e10cSrcweir 181cdf0e10cSrcweir /** This is used, if a class documentation is displayed, 182cdf0e10cSrcweir because for links to members then the "current class" 183cdf0e10cSrcweir is not the parent, but this class itself. 184cdf0e10cSrcweir */ 185cdf0e10cSrcweir const ary::cpp::Class * 186cdf0e10cSrcweir pCurClassOverwrite; 187cdf0e10cSrcweir }; 188cdf0e10cSrcweir 189cdf0e10cSrcweir 190cdf0e10cSrcweir 191cdf0e10cSrcweir 192cdf0e10cSrcweir #endif 193