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 10cdf0e10cSrcweir * 11*0841af79SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 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. 19cdf0e10cSrcweir * 20*0841af79SAndrew Rist *************************************************************/ 21cdf0e10cSrcweir 22cdf0e10cSrcweir #include <precomp.h> 23cdf0e10cSrcweir #include <html/chd_udk2.hxx> 24cdf0e10cSrcweir 25cdf0e10cSrcweir 26cdf0e10cSrcweir // NOT FULLY DEFINED SERVICES 27cdf0e10cSrcweir #include <cosv/tpl/tpltools.hxx> 28cdf0e10cSrcweir #include <ary/ary_disp.hxx> 29cdf0e10cSrcweir #include <ary/ceslot.hxx> 30cdf0e10cSrcweir #include <ary/cpp/c_gate.hxx> 31cdf0e10cSrcweir #include <ary/cpp/c_namesp.hxx> 32cdf0e10cSrcweir #include <ary/cpp/cp_ce.hxx> 33cdf0e10cSrcweir 34cdf0e10cSrcweir #include "dsply_cl.hxx" 35cdf0e10cSrcweir #include "dsply_da.hxx" 36cdf0e10cSrcweir #include "dsply_op.hxx" 37cdf0e10cSrcweir #include "opageenv.hxx" 38cdf0e10cSrcweir #include "outfile.hxx" 39cdf0e10cSrcweir #include "pagemake.hxx" 40cdf0e10cSrcweir 41cdf0e10cSrcweir 42cdf0e10cSrcweir 43cdf0e10cSrcweir //******************** CppHtmlDisplay_Udk2 ********************// 44cdf0e10cSrcweir 45cdf0e10cSrcweir 46cdf0e10cSrcweir CppHtmlDisplay_Udk2::CppHtmlDisplay_Udk2() 47cdf0e10cSrcweir : pCurPageEnv(0) 48cdf0e10cSrcweir { 49cdf0e10cSrcweir } 50cdf0e10cSrcweir 51cdf0e10cSrcweir CppHtmlDisplay_Udk2::~CppHtmlDisplay_Udk2() 52cdf0e10cSrcweir { 53cdf0e10cSrcweir } 54cdf0e10cSrcweir 55cdf0e10cSrcweir void 56cdf0e10cSrcweir CppHtmlDisplay_Udk2::do_Run( const char * i_sOutputDirectory, 57cdf0e10cSrcweir const ary::cpp::Gate & i_rAryGate, 58cdf0e10cSrcweir const display::CorporateFrame & i_rLayout ) 59cdf0e10cSrcweir { 60cdf0e10cSrcweir SetRunData( i_sOutputDirectory, i_rAryGate, i_rLayout ); 61cdf0e10cSrcweir 62cdf0e10cSrcweir Create_Css_File(); 63cdf0e10cSrcweir Create_Overview_File(); 64cdf0e10cSrcweir Create_Help_File(); 65cdf0e10cSrcweir Create_AllDefs_File(); 66cdf0e10cSrcweir 67cdf0e10cSrcweir CreateFiles_InSubTree_Namespaces(); 68cdf0e10cSrcweir CreateFiles_InSubTree_Index(); 69cdf0e10cSrcweir } 70cdf0e10cSrcweir 71cdf0e10cSrcweir void 72cdf0e10cSrcweir CppHtmlDisplay_Udk2::SetRunData( const char * i_sOutputDirectory, 73cdf0e10cSrcweir const ary::cpp::Gate & i_rAryGate, 74cdf0e10cSrcweir const display::CorporateFrame & i_rLayout ) 75cdf0e10cSrcweir { 76cdf0e10cSrcweir csv::ploc::Path aOutputDir( i_sOutputDirectory, true ); 77cdf0e10cSrcweir pCurPageEnv = new OuputPage_Environment( aOutputDir, i_rAryGate, i_rLayout ); 78cdf0e10cSrcweir } 79cdf0e10cSrcweir 80cdf0e10cSrcweir void 81cdf0e10cSrcweir CppHtmlDisplay_Udk2::Create_Css_File() 82cdf0e10cSrcweir { 83cdf0e10cSrcweir pCurPageEnv->MoveDir_2Root(); 84cdf0e10cSrcweir pCurPageEnv->SetFile_Css(); 85cdf0e10cSrcweir HtmlDocuFile::WriteCssFile(pCurPageEnv->CurPath()); 86cdf0e10cSrcweir } 87cdf0e10cSrcweir 88cdf0e10cSrcweir void 89cdf0e10cSrcweir CppHtmlDisplay_Udk2::Create_Overview_File() 90cdf0e10cSrcweir { 91cdf0e10cSrcweir pCurPageEnv->MoveDir_2Root(); 92cdf0e10cSrcweir PageDisplay aPageMaker( *pCurPageEnv ); 93cdf0e10cSrcweir aPageMaker.Create_OverviewFile(); 94cdf0e10cSrcweir } 95cdf0e10cSrcweir 96cdf0e10cSrcweir void 97cdf0e10cSrcweir CppHtmlDisplay_Udk2::Create_Help_File() 98cdf0e10cSrcweir { 99cdf0e10cSrcweir PageDisplay aPageMaker( *pCurPageEnv ); 100cdf0e10cSrcweir aPageMaker.Create_HelpFile(); 101cdf0e10cSrcweir } 102cdf0e10cSrcweir 103cdf0e10cSrcweir void 104cdf0e10cSrcweir CppHtmlDisplay_Udk2::Create_AllDefs_File() 105cdf0e10cSrcweir { 106cdf0e10cSrcweir PageDisplay aPageMaker( *pCurPageEnv ); 107cdf0e10cSrcweir aPageMaker.Create_AllDefsFile(); 108cdf0e10cSrcweir } 109cdf0e10cSrcweir 110cdf0e10cSrcweir void 111cdf0e10cSrcweir CppHtmlDisplay_Udk2::CreateFiles_InSubTree_Namespaces() 112cdf0e10cSrcweir { 113cdf0e10cSrcweir Cout() << "\nCreate files in subtree namespaces" << Endl(); 114cdf0e10cSrcweir 115cdf0e10cSrcweir const ary::cpp::Namespace & 116cdf0e10cSrcweir rGlobalNsp = Gate().Ces().GlobalNamespace(); 117cdf0e10cSrcweir 118cdf0e10cSrcweir RecursiveDisplay_Namespace(rGlobalNsp); 119cdf0e10cSrcweir Cout() << Endl(); 120cdf0e10cSrcweir } 121cdf0e10cSrcweir 122cdf0e10cSrcweir void 123cdf0e10cSrcweir CppHtmlDisplay_Udk2::CreateFiles_InSubTree_Index() 124cdf0e10cSrcweir { 125cdf0e10cSrcweir Cout() << "\nCreate files in subtree index" << Endl(); 126cdf0e10cSrcweir Cout() << Endl(); 127cdf0e10cSrcweir 128cdf0e10cSrcweir PageDisplay aPageMaker( *pCurPageEnv ); 129cdf0e10cSrcweir aPageMaker.Create_IndexFiles(); 130cdf0e10cSrcweir } 131cdf0e10cSrcweir 132cdf0e10cSrcweir void 133cdf0e10cSrcweir CppHtmlDisplay_Udk2::RecursiveDisplay_Namespace( const ary::cpp::Namespace & i_rNsp ) 134cdf0e10cSrcweir { 135cdf0e10cSrcweir if (i_rNsp.Owner().IsValid()) 136cdf0e10cSrcweir pCurPageEnv->MoveDir_Down2( i_rNsp ); 137cdf0e10cSrcweir else 138cdf0e10cSrcweir pCurPageEnv->MoveDir_2Names(); 139cdf0e10cSrcweir DisplayFiles_InNamespace( i_rNsp ); 140cdf0e10cSrcweir 141cdf0e10cSrcweir typedef std::vector< const ary::cpp::Namespace* > NspList; 142cdf0e10cSrcweir NspList aSubNspList; 143cdf0e10cSrcweir i_rNsp.Get_SubNamespaces( aSubNspList ); 144cdf0e10cSrcweir for ( NspList::const_iterator it = aSubNspList.begin(); 145cdf0e10cSrcweir it != aSubNspList.end(); 146cdf0e10cSrcweir ++it ) 147cdf0e10cSrcweir { 148cdf0e10cSrcweir RecursiveDisplay_Namespace( *(*it) ); 149cdf0e10cSrcweir } // end for 150cdf0e10cSrcweir 151cdf0e10cSrcweir pCurPageEnv->MoveDir_Up(); 152cdf0e10cSrcweir } 153cdf0e10cSrcweir 154cdf0e10cSrcweir void 155cdf0e10cSrcweir CppHtmlDisplay_Udk2::DisplayFiles_InNamespace( const ary::cpp::Namespace & i_rNsp ) 156cdf0e10cSrcweir { 157cdf0e10cSrcweir PageDisplay aPageMaker( *pCurPageEnv ); 158cdf0e10cSrcweir 159cdf0e10cSrcweir ary::Slot_AutoPtr pSlot; 160cdf0e10cSrcweir 161cdf0e10cSrcweir // Namespace 162cdf0e10cSrcweir aPageMaker.Create_NamespaceFile(); 163cdf0e10cSrcweir 164cdf0e10cSrcweir // Classes 165cdf0e10cSrcweir ClassDisplayer aClassDisplayer( *pCurPageEnv ); 166cdf0e10cSrcweir DisplaySlot( aClassDisplayer, i_rNsp, ary::cpp::Namespace::SLOT_Classes ); 167cdf0e10cSrcweir 168cdf0e10cSrcweir // Enums 169cdf0e10cSrcweir DisplaySlot( aPageMaker, i_rNsp, ary::cpp::Namespace::SLOT_Enums ); 170cdf0e10cSrcweir 171cdf0e10cSrcweir // Typedefs 172cdf0e10cSrcweir DisplaySlot( aPageMaker, i_rNsp, ary::cpp::Namespace::SLOT_Typedefs ); 173cdf0e10cSrcweir 174cdf0e10cSrcweir // Operations 175cdf0e10cSrcweir OperationsDisplay aOperationsDisplayer( *pCurPageEnv ); 176cdf0e10cSrcweir DisplaySlot( aOperationsDisplayer, i_rNsp, ary::cpp::Namespace::SLOT_Operations ); 177cdf0e10cSrcweir aOperationsDisplayer.Create_Files(); 178cdf0e10cSrcweir 179cdf0e10cSrcweir // Data 180cdf0e10cSrcweir DataDisplay aDataDisplayer( *pCurPageEnv ); 181cdf0e10cSrcweir 182cdf0e10cSrcweir aDataDisplayer.PrepareForConstants(); 183cdf0e10cSrcweir DisplaySlot( aDataDisplayer, i_rNsp, ary::cpp::Namespace::SLOT_Constants ); 184cdf0e10cSrcweir 185cdf0e10cSrcweir aDataDisplayer.PrepareForVariables(); 186cdf0e10cSrcweir DisplaySlot( aDataDisplayer, i_rNsp, ary::cpp::Namespace::SLOT_Variables ); 187cdf0e10cSrcweir 188cdf0e10cSrcweir aDataDisplayer.Create_Files(); 189cdf0e10cSrcweir } 190cdf0e10cSrcweir 191cdf0e10cSrcweir const ary::cpp::Gate & 192cdf0e10cSrcweir CppHtmlDisplay_Udk2::Gate() const 193cdf0e10cSrcweir { 194cdf0e10cSrcweir return pCurPageEnv->Gate(); 195cdf0e10cSrcweir } 196