Bump for 3.6-28
[LibreOffice.git] / autodoc / source / display / idl / hi_env.hxx
blob675db9ab7ab60ee86357aba926c17318f73c066c
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
29 #ifndef ADC_DISPLAY_HI_ENV_HXX
30 #define ADC_DISPLAY_HI_ENV_HXX
33 // USED SERVICES
34 // BASE CLASSES
35 // COMPONENTS
36 #include <cosv/ploc.hxx>
37 #include <cosv/ploc_dir.hxx>
38 // PARAMETERS
39 #include <toolkit/out_position.hxx>
41 namespace ary
43 namespace idl
45 class Gate;
46 class CodeEntity;
49 namespace display
51 class CorporateFrame;
53 namespace output
55 class Tree;
58 class AryAccess;
59 class LinkHelper;
61 /** @resp
62 Provides enviroment information to the HTML factory
63 classes.
65 @descr
66 All information that is not included in the data, especially
67 about the layout of the output tree and the access to
68 information from the repository are provided here.
70 @see HtmlFactory
72 class HtmlEnvironment_Idl
74 public:
75 // LIFECYCLE
76 HtmlEnvironment_Idl(
77 const csv::ploc::Path &
78 io_rOutputDir,
79 const ary::idl::Gate &
80 i_rGate,
81 const display::CorporateFrame &
82 i_rLayout );
83 ~HtmlEnvironment_Idl();
85 // OPERATIONS
86 void Goto_Directory(
87 output::Position i_pos,
88 bool i_bCreateDirectoryIfNecessary );
89 void Goto_DirectoryLevelDown(
90 const String & i_subDirName,
91 bool i_bCreateDirectoryIfNecessary );
92 void Goto_DirectoryLevelUp();
93 void Set_CurFile(
94 const String & i_fileName );
95 void Set_CurPageCe(
96 const ary::idl::CodeEntity *
97 i_ce )
98 { pCurPageCe = i_ce; }
99 // INQUIRY
100 const ary::idl::Gate &
101 Gate() const { return *pGate; }
102 const AryAccess & Data() const { return *pData; }
103 const char * Link2Manual(
104 const String & i_link ) const;
106 /// This may be reimplemented for removing dead links to members.
107 bool Is_MemberExistenceCheckRequired() const
108 { return false; }
110 /// @return Holds only the current directory, not the current file.
111 output::Position & CurPosition() const { return aCurPosition; }
112 void Get_CurFilePath(
113 StreamStr & o_buffer ) const
114 { o_buffer << aCurPath; }
116 const display::CorporateFrame &
117 Layout() const { return *pLayout; }
118 const LinkHelper & Linker() const { return *pLinker; }
120 void Get_LinkTo(
121 StreamStr & o_result,
122 output::Position i_destination )
123 { CurPosition().Get_LinkTo(o_result, i_destination); }
124 String CurPageCe_AsText() const;
125 String CurPageCe_AsFile(
126 const char * i_sEnding) const;
127 const ary::idl::CodeEntity *
128 CurPageCe() const { return pCurPageCe; }
130 // ACCESS
131 output::Tree & OutputTree() { return *pOutputTree; }
133 private:
134 // Local
135 void create_Directory(
136 const csv::ploc::Path &
137 i_path );
139 // DATA
140 csv::ploc::Directory
141 aOutputRoot;
142 csv::ploc::Path aCurPath;
144 Dyn<AryAccess> pData; /// @invariant *pData is valid.
145 const ary::idl::Gate *
146 pGate; /// @invariant pGate != 0.
147 Dyn<output::Tree> pOutputTree; /// @invariant *pOutputTree is valid.
148 mutable output::Position
149 aCurPosition;
150 const ary::idl::CodeEntity *
151 pCurPageCe;
153 const display::CorporateFrame *
154 pLayout;
156 Dyn<LinkHelper> pLinker;
160 #endif
163 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */