1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski #ifndef ADC_DISPLAY_HDIMPL_HXX
25*b1cdbd2cSJim Jagielski #define ADC_DISPLAY_HDIMPL_HXX
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski // BASE CLASSES
28*b1cdbd2cSJim Jagielski #include <udm/html/htmlitem.hxx>
29*b1cdbd2cSJim Jagielski // USED SERVICES
30*b1cdbd2cSJim Jagielski #include "easywri.hxx"
31*b1cdbd2cSJim Jagielski #include <cosv/bstream.hxx>
32*b1cdbd2cSJim Jagielski #include <ary/ary_disp.hxx>
33*b1cdbd2cSJim Jagielski #include <ary/cpp/c_namesp.hxx>
34*b1cdbd2cSJim Jagielski #include <ary/cpp/c_ce.hxx>
35*b1cdbd2cSJim Jagielski #include "aryattrs.hxx" // For compatibility with earlier times, when those funtions were in this header.
36*b1cdbd2cSJim Jagielski
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski namespace ary
39*b1cdbd2cSJim Jagielski {
40*b1cdbd2cSJim Jagielski namespace cpp
41*b1cdbd2cSJim Jagielski {
42*b1cdbd2cSJim Jagielski class CodeEntity;
43*b1cdbd2cSJim Jagielski class Class;
44*b1cdbd2cSJim Jagielski class DisplayGate;
45*b1cdbd2cSJim Jagielski class Function;
46*b1cdbd2cSJim Jagielski class DefineEntity;
47*b1cdbd2cSJim Jagielski class OperationSignature;
48*b1cdbd2cSJim Jagielski }
49*b1cdbd2cSJim Jagielski
50*b1cdbd2cSJim Jagielski class QualifiedName;
51*b1cdbd2cSJim Jagielski }
52*b1cdbd2cSJim Jagielski namespace csi
53*b1cdbd2cSJim Jagielski {
54*b1cdbd2cSJim Jagielski namespace xml
55*b1cdbd2cSJim Jagielski {
56*b1cdbd2cSJim Jagielski class Element;
57*b1cdbd2cSJim Jagielski }
58*b1cdbd2cSJim Jagielski namespace html
59*b1cdbd2cSJim Jagielski {
60*b1cdbd2cSJim Jagielski class Table;
61*b1cdbd2cSJim Jagielski }
62*b1cdbd2cSJim Jagielski }
63*b1cdbd2cSJim Jagielski
64*b1cdbd2cSJim Jagielski namespace adcdisp
65*b1cdbd2cSJim Jagielski {
66*b1cdbd2cSJim Jagielski class ParameterTable;
67*b1cdbd2cSJim Jagielski }
68*b1cdbd2cSJim Jagielski
69*b1cdbd2cSJim Jagielski class OuputPage_Environment;
70*b1cdbd2cSJim Jagielski class Docu_Display;
71*b1cdbd2cSJim Jagielski
72*b1cdbd2cSJim Jagielski class HtmlDisplay_Impl
73*b1cdbd2cSJim Jagielski {
74*b1cdbd2cSJim Jagielski public:
75*b1cdbd2cSJim Jagielski ~HtmlDisplay_Impl();
76*b1cdbd2cSJim Jagielski
77*b1cdbd2cSJim Jagielski const OuputPage_Environment &
Env() const78*b1cdbd2cSJim Jagielski Env() const { return *pEnv; }
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski // ACCESS
81*b1cdbd2cSJim Jagielski OuputPage_Environment &
Env()82*b1cdbd2cSJim Jagielski Env() { return *pEnv; }
Easy()83*b1cdbd2cSJim Jagielski EasyWriter & Easy() { return aWriteHelper; }
CurOut()84*b1cdbd2cSJim Jagielski csi::xml::Element & CurOut() { return aWriteHelper.Out(); }
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski protected:
87*b1cdbd2cSJim Jagielski HtmlDisplay_Impl(
88*b1cdbd2cSJim Jagielski OuputPage_Environment &
89*b1cdbd2cSJim Jagielski io_rEnv );
90*b1cdbd2cSJim Jagielski private:
91*b1cdbd2cSJim Jagielski // DATA
92*b1cdbd2cSJim Jagielski OuputPage_Environment *
93*b1cdbd2cSJim Jagielski pEnv;
94*b1cdbd2cSJim Jagielski EasyWriter aWriteHelper;
95*b1cdbd2cSJim Jagielski };
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski
98*b1cdbd2cSJim Jagielski namespace dshelp
99*b1cdbd2cSJim Jagielski {
100*b1cdbd2cSJim Jagielski
101*b1cdbd2cSJim Jagielski void DisplaySlot(
102*b1cdbd2cSJim Jagielski ary::Display & o_rDisplay,
103*b1cdbd2cSJim Jagielski const ary::AryGroup &
104*b1cdbd2cSJim Jagielski i_rGroup,
105*b1cdbd2cSJim Jagielski ary::SlotAccessId i_nSlot );
106*b1cdbd2cSJim Jagielski
107*b1cdbd2cSJim Jagielski
108*b1cdbd2cSJim Jagielski const char * PathUp(
109*b1cdbd2cSJim Jagielski uintt i_nLevels );
110*b1cdbd2cSJim Jagielski const char * PathPerLevelsUp(
111*b1cdbd2cSJim Jagielski uintt i_nLevels,
112*b1cdbd2cSJim Jagielski const char * i_nPathBelowDestinationLevel );
113*b1cdbd2cSJim Jagielski
114*b1cdbd2cSJim Jagielski const char * PathPerRoot(
115*b1cdbd2cSJim Jagielski const OuputPage_Environment &
116*b1cdbd2cSJim Jagielski i_rEnv,
117*b1cdbd2cSJim Jagielski const char * i_sPathFromRootDir );
118*b1cdbd2cSJim Jagielski const char * PathPerNamespace(
119*b1cdbd2cSJim Jagielski const OuputPage_Environment &
120*b1cdbd2cSJim Jagielski i_rEnv,
121*b1cdbd2cSJim Jagielski const char * i_sPathFromNamespaceDir );
122*b1cdbd2cSJim Jagielski
123*b1cdbd2cSJim Jagielski void Create_ChildListLabel(
124*b1cdbd2cSJim Jagielski csi::xml::Element & o_rParentElement,
125*b1cdbd2cSJim Jagielski const char * i_sLabel );
126*b1cdbd2cSJim Jagielski DYN csi::html::Table &
127*b1cdbd2cSJim Jagielski Create_ChildListTable(
128*b1cdbd2cSJim Jagielski const char * i_sTitle );
129*b1cdbd2cSJim Jagielski
130*b1cdbd2cSJim Jagielski const char * HtmlFileName(
131*b1cdbd2cSJim Jagielski const char * i_sPrefix,
132*b1cdbd2cSJim Jagielski const char * i_sEntityName );
133*b1cdbd2cSJim Jagielski
134*b1cdbd2cSJim Jagielski inline const char *
ClassFileName(const char * i_sClassLocalName)135*b1cdbd2cSJim Jagielski ClassFileName( const char * i_sClassLocalName )
136*b1cdbd2cSJim Jagielski { return HtmlFileName( "c-", i_sClassLocalName); }
137*b1cdbd2cSJim Jagielski inline const char *
EnumFileName(const char * i_sEnumLocalName)138*b1cdbd2cSJim Jagielski EnumFileName( const char * i_sEnumLocalName )
139*b1cdbd2cSJim Jagielski { return HtmlFileName( "e-", i_sEnumLocalName); }
140*b1cdbd2cSJim Jagielski inline const char *
TypedefFileName(const char * i_sTypedefLocalName)141*b1cdbd2cSJim Jagielski TypedefFileName( const char * i_sTypedefLocalName )
142*b1cdbd2cSJim Jagielski { return HtmlFileName( "t-", i_sTypedefLocalName); }
143*b1cdbd2cSJim Jagielski inline const char *
FileFileName(const char * i_sFileLocalName)144*b1cdbd2cSJim Jagielski FileFileName( const char * i_sFileLocalName )
145*b1cdbd2cSJim Jagielski { return HtmlFileName( "f-", i_sFileLocalName); }
146*b1cdbd2cSJim Jagielski
147*b1cdbd2cSJim Jagielski const char * Path2Class(
148*b1cdbd2cSJim Jagielski uintt i_nLevelsUp,
149*b1cdbd2cSJim Jagielski const char * i_sClassLocalName );
150*b1cdbd2cSJim Jagielski
151*b1cdbd2cSJim Jagielski const char * Path2Child(
152*b1cdbd2cSJim Jagielski const char * i_sFileName,
153*b1cdbd2cSJim Jagielski const char * i_sSubDir = 0 );
154*b1cdbd2cSJim Jagielski
155*b1cdbd2cSJim Jagielski const char * Path2ChildNamespace(
156*b1cdbd2cSJim Jagielski const char * i_sLocalName );
157*b1cdbd2cSJim Jagielski
158*b1cdbd2cSJim Jagielski String OperationLink(
159*b1cdbd2cSJim Jagielski const ary::cpp::Gate & i_gate,
160*b1cdbd2cSJim Jagielski const String & i_sOpName,
161*b1cdbd2cSJim Jagielski ary::cpp::Ce_id i_nOpId,
162*b1cdbd2cSJim Jagielski const char * i_sPrePath = "" );
163*b1cdbd2cSJim Jagielski const char * DataLink(
164*b1cdbd2cSJim Jagielski const String & i_sLocalName,
165*b1cdbd2cSJim Jagielski const char * i_sPrePath = "" );
166*b1cdbd2cSJim Jagielski
167*b1cdbd2cSJim Jagielski inline String
OperationLabel(const String & i_sOpName,ary::cpp::Ce_id i_nOpId,const ary::cpp::Gate & i_gate)168*b1cdbd2cSJim Jagielski OperationLabel( const String & i_sOpName,
169*b1cdbd2cSJim Jagielski ary::cpp::Ce_id i_nOpId,
170*b1cdbd2cSJim Jagielski const ary::cpp::Gate & i_gate )
171*b1cdbd2cSJim Jagielski { return String(OperationLink(i_gate, i_sOpName, i_nOpId) + 1); } // Skip '#' in front.
172*b1cdbd2cSJim Jagielski inline const char *
DataLabel(const String & i_sLocalName)173*b1cdbd2cSJim Jagielski DataLabel( const String & i_sLocalName )
174*b1cdbd2cSJim Jagielski { return DataLink(i_sLocalName) + 1; } // Skip '#' in front.
175*b1cdbd2cSJim Jagielski
176*b1cdbd2cSJim Jagielski
177*b1cdbd2cSJim Jagielski void Get_LinkedTypeText(
178*b1cdbd2cSJim Jagielski csi::xml::Element & o_rOut,
179*b1cdbd2cSJim Jagielski const OuputPage_Environment &
180*b1cdbd2cSJim Jagielski i_rEnv,
181*b1cdbd2cSJim Jagielski ary::cpp::Type_id i_nId,
182*b1cdbd2cSJim Jagielski bool i_bWithAbsolutifier = true );
183*b1cdbd2cSJim Jagielski
184*b1cdbd2cSJim Jagielski
185*b1cdbd2cSJim Jagielski const char * Link2Ce(
186*b1cdbd2cSJim Jagielski const OuputPage_Environment &
187*b1cdbd2cSJim Jagielski i_rEnv,
188*b1cdbd2cSJim Jagielski const ary::cpp::CodeEntity &
189*b1cdbd2cSJim Jagielski i_rCe );
190*b1cdbd2cSJim Jagielski
191*b1cdbd2cSJim Jagielski const char * Link2CppDefinition(
192*b1cdbd2cSJim Jagielski const OuputPage_Environment &
193*b1cdbd2cSJim Jagielski i_rEnv,
194*b1cdbd2cSJim Jagielski const ary::cpp::DefineEntity &
195*b1cdbd2cSJim Jagielski i_rDef );
196*b1cdbd2cSJim Jagielski
197*b1cdbd2cSJim Jagielski const ary::cpp::CodeEntity *
198*b1cdbd2cSJim Jagielski FindUnambiguousCe(
199*b1cdbd2cSJim Jagielski const OuputPage_Environment &
200*b1cdbd2cSJim Jagielski i_rEnv,
201*b1cdbd2cSJim Jagielski const ary::QualifiedName &
202*b1cdbd2cSJim Jagielski i_rQuName,
203*b1cdbd2cSJim Jagielski const ary::cpp::Class * i_pJustDocumentedClass );
204*b1cdbd2cSJim Jagielski
205*b1cdbd2cSJim Jagielski void ShowDocu_On(
206*b1cdbd2cSJim Jagielski csi::xml::Element & o_rOut,
207*b1cdbd2cSJim Jagielski Docu_Display & io_rDisplay,
208*b1cdbd2cSJim Jagielski const ary::cpp::CppEntity &
209*b1cdbd2cSJim Jagielski i_rRE );
210*b1cdbd2cSJim Jagielski
211*b1cdbd2cSJim Jagielski void WriteOut_TokenList(
212*b1cdbd2cSJim Jagielski csi::xml::Element & o_rOut,
213*b1cdbd2cSJim Jagielski const StringVector & i_rTokens,
214*b1cdbd2cSJim Jagielski const char * i_sSeparator );
215*b1cdbd2cSJim Jagielski
216*b1cdbd2cSJim Jagielski void EraseLeadingSpace(
217*b1cdbd2cSJim Jagielski String & io_rStr );
218*b1cdbd2cSJim Jagielski
219*b1cdbd2cSJim Jagielski /** @param o_bIsConst
220*b1cdbd2cSJim Jagielski *o_bIsConst will be set to true, if o_bIsConst != 0 and function is const.
221*b1cdbd2cSJim Jagielski If the function is not const, *o_bIsConst remains unchanged!
222*b1cdbd2cSJim Jagielski
223*b1cdbd2cSJim Jagielski @param o_bIsVirtual
224*b1cdbd2cSJim Jagielski The same as o_bIsConst.
225*b1cdbd2cSJim Jagielski */
226*b1cdbd2cSJim Jagielski void WriteOut_LinkedFunctionText(
227*b1cdbd2cSJim Jagielski csi::xml::Element & o_rTitleOut,
228*b1cdbd2cSJim Jagielski adcdisp::ParameterTable &
229*b1cdbd2cSJim Jagielski o_rParameters,
230*b1cdbd2cSJim Jagielski const ary::cpp::Function &
231*b1cdbd2cSJim Jagielski i_rFunction,
232*b1cdbd2cSJim Jagielski const OuputPage_Environment &
233*b1cdbd2cSJim Jagielski i_rEnv,
234*b1cdbd2cSJim Jagielski bool * o_bIsConst = 0,
235*b1cdbd2cSJim Jagielski bool * o_bIsVirtual = 0 );
236*b1cdbd2cSJim Jagielski
237*b1cdbd2cSJim Jagielski
238*b1cdbd2cSJim Jagielski
239*b1cdbd2cSJim Jagielski } // namespace dshelp
240*b1cdbd2cSJim Jagielski
241*b1cdbd2cSJim Jagielski using namespace dshelp;
242*b1cdbd2cSJim Jagielski
243*b1cdbd2cSJim Jagielski #endif
244