xref: /AOO41X/main/autodoc/source/display/html/pm_index.hxx (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
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_INDEX_HXX
29 #define ADC_DISPLAY_HTML_PM_INDEX_HXX
30 
31 // BASE CLASSES
32 #include "pm_base.hxx"
33 #include <ary/ary_disp.hxx>
34 #include <cosv/tpl/processor.hxx>
35 // USED SERVICES
36 namespace adcdisp
37 {
38  	class IndexList;
39 }
40 namespace ary
41 {
42     namespace cpp
43     {
44         class Namespace;
45         class Class;
46         class Enum;
47         class Typedef;
48         class Function;
49         class Variable;
50         class EnumValue;
51         class Define;
52         class Macro;
53     }
54 }
55 
56 class NavigationBar;
57 
58 
59 
60 
61 class PageMaker_Index : public SpecializedPageMaker,
62                         public ary::Display,
63                         public csv::ConstProcessor<ary::cpp::Namespace>,
64                         public csv::ConstProcessor<ary::cpp::Class>,
65                         public csv::ConstProcessor<ary::cpp::Enum>,
66                         public csv::ConstProcessor<ary::cpp::Typedef>,
67                         public csv::ConstProcessor<ary::cpp::Function>,
68                         public csv::ConstProcessor<ary::cpp::Variable>,
69                         public csv::ConstProcessor<ary::cpp::EnumValue>,
70                         public csv::ConstProcessor<ary::cpp::Define>,
71                         public csv::ConstProcessor<ary::cpp::Macro>
72 {
73   public:
74 						PageMaker_Index(
75                             PageDisplay &       io_rPage,
76                             char                i_c );
77 
78 	virtual				~PageMaker_Index();
79 
80     virtual void        MakePage();
81 
82   private:
83     // Interface csv::ConstProcessor<>
84     virtual void        do_Process(
85                             const ary::cpp::Namespace &
86                                                 i_rData );
87     virtual void        do_Process(
88                             const ary::cpp::Class &
89                                                 i_rData );
90     virtual void        do_Process(
91                             const ary::cpp::Enum &
92                                                 i_rData );
93     virtual void        do_Process(
94                             const ary::cpp::Typedef &
95                                                 i_rData );
96     virtual void        do_Process(
97                             const ary::cpp::Function &
98                                                 i_rData );
99     virtual void        do_Process(
100                             const ary::cpp::Variable &
101                                                 i_rData );
102     virtual void        do_Process(
103                             const ary::cpp::EnumValue &
104                                                 i_rData );
105     virtual void        do_Process(
106 							const ary::cpp::Define &
107                                                 i_rData );
108     virtual void        do_Process(
109 							const ary::cpp::Macro &
110                                                 i_rData );
111     // Interface ary::cpp::Display:
112     virtual const ary::cpp::Gate *
113                         inq_Get_ReFinder() const;
114     // Locals
115     virtual void        Write_NavBar();
116     virtual void        Write_TopArea();
117     virtual void        Write_CompleteAlphabeticalList();
118 
119     void                Write_CeIndexEntry(
120                             const ary::cpp::CodeEntity &
121                                                 i_rCe,
122                             const char *        i_sType,
123                             const char *        i_sOwnerType );
124 
125     // DATA
126     Dyn<NavigationBar>  pNavi;
127     char                c;
128     adcdisp::IndexList *
129                         pCurIndex;
130 };
131 
132 
133 
134 
135 #endif
136