xref: /AOO41X/main/autodoc/source/display/html/pm_class.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
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_PM_CLASS_HXX
29 #define ADC_DISPLAY_HTML_PM_CLASS_HXX
30 
31 
32 
33 // USED SERVICES
34 	// BASE CLASSES
35 #include "pm_base.hxx"
36 	// COMPONENTS
37 	// PARAMETERS
38 
39 
40 namespace ary
41 {
42  	namespace cpp
43     {
44      	class Class;
45     }
46 }
47 
48 class ChildList_Display;
49 class NavigationBar;
50 
51 
52 class PageMaker_Class : public SpecializedPageMaker
53 {
54   public:
55     enum E_ChidList
56     {
57         cl_NestedClasses = 0,
58         cl_NestedStructs,
59         cl_NestedUnions,
60         cl_Enums,
61         cl_Typedefs,
62         cl_Operations,
63         cl_StaticOperations,
64         cl_Data,
65         cl_StaticData,
66         cl_MAX
67     };
68 						PageMaker_Class(
69                             PageDisplay &       io_rPage,
70                             const ary::cpp::Class &
71                                                 i_rClass );
72 
73 	virtual				~PageMaker_Class();
74 
75     virtual void        MakePage();
76 
77   private:
78     enum E_MemberProtection { mp_public = 0, mp_protected, mp_private, mp_MAX };
79 
80     virtual void        Write_NavBar();
81     virtual void        Write_TopArea();
82     virtual void        Write_DocuArea();
83     virtual void        Write_ChildList(
84                             ary::SlotAccessId   i_nSlot,
85                             E_ChidList          i_eChildListIndex,
86                             const char *        i_sLabel,
87                             const char *        i_sListTitle,
88                             csi::xml::Element & o_rPublic,
89                             csi::xml::Element & o_rProtected,
90                             csi::xml::Element & o_rPrivate );
91     void                Write_ChildList_forClasses(
92                             csi::xml::Element & o_rPublic,
93                             csi::xml::Element & o_rProtected,
94                             csi::xml::Element & o_rPrivate,
95                             const char *        i_sLabel,
96                             const char *        i_sListTitle,
97                             ary::cpp::E_ClassKey
98                                                 i_eFilter  );
99     void                Write_ChildLists();
100     static const char * ChildListLabel(
101                             const char *        i_sLabel,
102                             E_MemberProtection  i_eMpr );
103     csi::html::DefListDefinition &
104                         Setup_MemberSegment_Out(
105                             E_MemberProtection  i_eMpr );
106     void                Create_NaviSubRow(
107                             E_MemberProtection  i_eMpr );
108     void                Write_BaseHierarchy();
109     void                Write_DerivedList();
110 
111     const ary::cpp::Class &
112                         Me() const              { return *pMe; }
113     // DATA
114     const ary::cpp::Class *
115                         pMe;
116     Dyn<ChildList_Display>
117                         pChildDisplay;
118     Dyn<NavigationBar>  pNavi;
119 
120     Dyn<csi::xml::Element>
121                         pProtectionArea[mp_MAX];
122 
123     bool                bChildLists_Exist[3*cl_MAX];
124 };
125 
126 
127 
128 
129 
130 #endif
131 
132