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