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_NAV_MAIN_HXX
29 #define ADC_DISPLAY_HTML_NAV_MAIN_HXX
30 
31 // USED SERVICES
32 
33 namespace ary
34 {
35 namespace cpp
36 {
37     class CodeEntity;
38 }
39 namespace loc
40 {
41     class File;
42 }
43 }
44 namespace csi
45 {
46 namespace xml
47 {
48     class Element;
49 }
50 }
51 
52 class OuputPage_Environment;
53 class MainItem;
54 
55 
56 
57 
58 class MainRow
59 {
60   public:
61                         MainRow(
62                             const OuputPage_Environment &
63                                                 i_rEnv );
64                         ~MainRow();
65 
66     void                SetupItems_Overview();
67     void                SetupItems_AllDefs();
68     void                SetupItems_Index();
69     void                SetupItems_Help();
70 
71     void                SetupItems_Ce(
72                             const ary::cpp::CodeEntity &
73                                                 i_rCe );
74     void                SetupItems_FunctionGroup(); /// For class member methods.
75     void                SetupItems_DataGroup();     /// For class member data.
76 
77     void                Write2(
78                             csi::xml::Element & o_rOut ) const;
79   private:
80     // Local
81     enum E_Style
82     {
83         eSelf,
84         eNo,
85         eStd
86     };
87 
88     /** @precond
89         Only combinations of 1 eSelf and 2 eStd are allowed
90         as arguments, here.
91     */
92     void                Create_ItemList_Global(
93                             E_Style             i_eOverview,
94                             E_Style             i_eIndex,
95                             E_Style             i_eHelp );
96     void                Create_ItemList_InDirTree_Cpp(
97                             E_Style             i_eNsp,
98                             E_Style             i_eClass,
99                             E_Style             i_eTree,
100                             const char *        i_sTreeLink );
101     void                Add_Item(
102                             E_Style             i_eStyle,
103                             const String  &     i_sText,
104                             const char *        i_sLink,
105                             const char *        i_sTip );
106     // DATA
107     typedef std::vector< DYN MainItem* > ItemList;
108 
109 
110     ItemList            aItems;
111     const OuputPage_Environment *
112                         pEnv;
113 };
114 
115 
116 
117 
118 #endif
119