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