1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #include <precomp.h> 29 #include "hi_linkhelper.hxx" 30 31 32 // NOT FULLY DEFINED SERVICES 33 #include <ary/idl/i_module.hxx> 34 35 36 37 38 const ary::idl::Module * 39 LinkHelper::Search_CurModule() const 40 { 41 return Search_Module( rEnv.CurPosition().RelatedNode() ); 42 } 43 44 const ary::idl::Module * 45 LinkHelper::Search_Module( output::Node & i_node ) const 46 { 47 static StringVector aNames_; 48 49 output::Node::relative_id 50 nId = i_node.RelatedNameRoom(); 51 if (nId == 0) 52 { 53 csv::erase_container(aNames_); 54 i_node.Get_Chain(aNames_); 55 const ary::idl::Module * pModule = 56 rEnv.Data().Search_Module(aNames_); 57 if ( pModule == 0 ) 58 return 0; 59 nId = static_cast<output::Node::relative_id>(pModule->Id()); 60 rEnv.CurPosition().RelatedNode().Set_RelatedNameRoom(nId); 61 } 62 63 return & rEnv.Data().Find_Module( ary::idl::Ce_id(nId) ); 64 } 65 66 namespace 67 { 68 const String C_sXrefsSuffix("-xref"); 69 } 70 71 72 LinkHelper::OutPosition 73 LinkHelper::PositionOf_CurXRefs( const String & i_ceName ) const 74 { 75 StreamLock sl(100); 76 return OutPosition( rEnv.CurPosition(), 77 sl() << i_ceName 78 << C_sXrefsSuffix 79 << ".html" 80 << c_str ); 81 } 82 83 const String & 84 LinkHelper::XrefsSuffix() const 85 { 86 return C_sXrefsSuffix; 87 } 88 89 90 String 91 nameChainLinker( const char * ) 92 { 93 static const String 94 sModuleFileName_( output::ModuleFileName() ); 95 return sModuleFileName_; 96 } 97