1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef ADC_DISPLAY_HTML_OPAGEENV_HXX
25 #define ADC_DISPLAY_HTML_OPAGEENV_HXX
26 
27 
28 // USED SERVICES
29 	// BASE CLASSES
30 	// COMPONENTS
31 #include <cosv/ploc.hxx>
32 	// PARAMETERS
33 
34 namespace ary
35 {
36     namespace cpp
37     {
38         class Gate;
39 
40         class Namespace;
41         class Class;
42         class Enum;
43         class Typedef;
44     }
45     namespace loc
46     {
47         class File;
48     }
49 }
50 namespace display
51 {
52     class CorporateFrame;
53 }
54 
55 class OuputPage_Environment
56 {
57   public:
58     // LIFECYCLE
59                         OuputPage_Environment(
60                             const csv::ploc::Path &
61                                                 io_rOutputDir,
62                             const ary::cpp::Gate &
63                                                 i_rGate,
64                             const display::CorporateFrame &
65                                                 i_rLayout );
66                         ~OuputPage_Environment();
67 
68     // OPERATIONS
69     void                MoveDir_2Root();
70     void                MoveDir_2Names();
71     void                MoveDir_Down2(             /// Only one level.
72                             const ary::cpp::Namespace &
73                                                 i_rNsp );
74     void                MoveDir_Down2(             /// Only one level.
75                             const ary::cpp::Class &
76                                                 i_rClass );
77     void                MoveDir_2Index();
78     void                MoveDir_Up();
79 
80     void                SetFile_Css();
81     void                SetFile_Overview();
82     void                SetFile_AllDefs();
83     void                SetFile_Index(
84                             char                i_cLetter );
85     void                SetFile_Help();
86     void                SetFile_CurNamespace();
87     void                SetFile_Class(
88                             const ary::cpp::Class &
89                                                 i_rClass );
90     void                SetFile_Enum(
91                             const ary::cpp::Enum &
92                                                 i_rEnum );
93     void                SetFile_Typedef(
94                             const ary::cpp::Typedef &
95                                                 i_typedef );
96     void                SetFile_Operations(
97                             const ary::loc::File *
98                                                 i_pFile = 0 );  /// Only needed for global functions.
99     void                SetFile_Data(
100                             const ary::loc::File *
101                                                 i_pFile = 0 );  /// Only needed for global variables.
102     // INQUIRY
103     const ary::cpp::Namespace *
104                         CurNamespace() const;
105     const ary::cpp::Class *
106                         CurClass() const;
107     const csv::ploc::Path &
108                         CurPath() const;
109     const ary::cpp::Gate &
110                         Gate() const;
111     const display::CorporateFrame &
112                         Layout() const;
113     uintt               Depth() const;
114     const String &      RepositoryTitle() const;
115 
116   private:
117     struct CheshireCat;
118     Dyn<CheshireCat>    pi;
119 };
120 
121 
122 
123 
124 #endif
125