1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef ADC_DISPLAY_HTML_PM_INDEX_HXX 25 #define ADC_DISPLAY_HTML_PM_INDEX_HXX 26 27 // BASE CLASSES 28 #include "pm_base.hxx" 29 #include <ary/ary_disp.hxx> 30 #include <cosv/tpl/processor.hxx> 31 // USED SERVICES 32 namespace adcdisp 33 { 34 class IndexList; 35 } 36 namespace ary 37 { 38 namespace cpp 39 { 40 class Namespace; 41 class Class; 42 class Enum; 43 class Typedef; 44 class Function; 45 class Variable; 46 class EnumValue; 47 class Define; 48 class Macro; 49 } 50 } 51 52 class NavigationBar; 53 54 55 56 57 class PageMaker_Index : public SpecializedPageMaker, 58 public ary::Display, 59 public csv::ConstProcessor<ary::cpp::Namespace>, 60 public csv::ConstProcessor<ary::cpp::Class>, 61 public csv::ConstProcessor<ary::cpp::Enum>, 62 public csv::ConstProcessor<ary::cpp::Typedef>, 63 public csv::ConstProcessor<ary::cpp::Function>, 64 public csv::ConstProcessor<ary::cpp::Variable>, 65 public csv::ConstProcessor<ary::cpp::EnumValue>, 66 public csv::ConstProcessor<ary::cpp::Define>, 67 public csv::ConstProcessor<ary::cpp::Macro> 68 { 69 public: 70 PageMaker_Index( 71 PageDisplay & io_rPage, 72 char i_c ); 73 74 virtual ~PageMaker_Index(); 75 76 virtual void MakePage(); 77 78 private: 79 // Interface csv::ConstProcessor<> 80 virtual void do_Process( 81 const ary::cpp::Namespace & 82 i_rData ); 83 virtual void do_Process( 84 const ary::cpp::Class & 85 i_rData ); 86 virtual void do_Process( 87 const ary::cpp::Enum & 88 i_rData ); 89 virtual void do_Process( 90 const ary::cpp::Typedef & 91 i_rData ); 92 virtual void do_Process( 93 const ary::cpp::Function & 94 i_rData ); 95 virtual void do_Process( 96 const ary::cpp::Variable & 97 i_rData ); 98 virtual void do_Process( 99 const ary::cpp::EnumValue & 100 i_rData ); 101 virtual void do_Process( 102 const ary::cpp::Define & 103 i_rData ); 104 virtual void do_Process( 105 const ary::cpp::Macro & 106 i_rData ); 107 // Interface ary::cpp::Display: 108 virtual const ary::cpp::Gate * 109 inq_Get_ReFinder() const; 110 // Locals 111 virtual void Write_NavBar(); 112 virtual void Write_TopArea(); 113 virtual void Write_CompleteAlphabeticalList(); 114 115 void Write_CeIndexEntry( 116 const ary::cpp::CodeEntity & 117 i_rCe, 118 const char * i_sType, 119 const char * i_sOwnerType ); 120 121 // DATA 122 Dyn<NavigationBar> pNavi; 123 char c; 124 adcdisp::IndexList * 125 pCurIndex; 126 }; 127 128 129 130 131 #endif 132