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 #ifndef ADC_DISPLAY_HTML_OPAGEENV_HXX
29 #define ADC_DISPLAY_HTML_OPAGEENV_HXX
30 
31 
32 // USED SERVICES
33 	// BASE CLASSES
34 	// COMPONENTS
35 #include <cosv/ploc.hxx>
36 	// PARAMETERS
37 
38 namespace ary
39 {
40     namespace cpp
41     {
42         class Gate;
43 
44         class Namespace;
45         class Class;
46         class Enum;
47         class Typedef;
48     }
49     namespace loc
50     {
51         class File;
52     }
53 }
54 namespace display
55 {
56     class CorporateFrame;
57 }
58 
59 class OuputPage_Environment
60 {
61   public:
62     // LIFECYCLE
63                         OuputPage_Environment(
64                             const csv::ploc::Path &
65                                                 io_rOutputDir,
66                             const ary::cpp::Gate &
67                                                 i_rGate,
68                             const display::CorporateFrame &
69                                                 i_rLayout );
70                         ~OuputPage_Environment();
71 
72     // OPERATIONS
73     void                MoveDir_2Root();
74     void                MoveDir_2Names();
75     void                MoveDir_Down2(             /// Only one level.
76                             const ary::cpp::Namespace &
77                                                 i_rNsp );
78     void                MoveDir_Down2(             /// Only one level.
79                             const ary::cpp::Class &
80                                                 i_rClass );
81     void                MoveDir_2Index();
82     void                MoveDir_Up();
83 
84     void                SetFile_Css();
85     void                SetFile_Overview();
86     void                SetFile_AllDefs();
87     void                SetFile_Index(
88                             char                i_cLetter );
89     void                SetFile_Help();
90     void                SetFile_CurNamespace();
91     void                SetFile_Class(
92                             const ary::cpp::Class &
93                                                 i_rClass );
94     void                SetFile_Enum(
95                             const ary::cpp::Enum &
96                                                 i_rEnum );
97     void                SetFile_Typedef(
98                             const ary::cpp::Typedef &
99                                                 i_typedef );
100     void                SetFile_Operations(
101                             const ary::loc::File *
102                                                 i_pFile = 0 );  /// Only needed for global functions.
103     void                SetFile_Data(
104                             const ary::loc::File *
105                                                 i_pFile = 0 );  /// Only needed for global variables.
106     // INQUIRY
107     const ary::cpp::Namespace *
108                         CurNamespace() const;
109     const ary::cpp::Class *
110                         CurClass() const;
111     const csv::ploc::Path &
112                         CurPath() const;
113     const ary::cpp::Gate &
114                         Gate() const;
115     const display::CorporateFrame &
116                         Layout() const;
117     uintt               Depth() const;
118     const String &      RepositoryTitle() const;
119 
120   private:
121     struct CheshireCat;
122     Dyn<CheshireCat>    pi;
123 };
124 
125 
126 
127 
128 #endif
129