summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2008-03-05 16:05:22 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2008-03-05 16:05:22 (GMT)
commit7173f2db0e37a1621236b3ceeb883d4f1255ee42 (patch)
treeec52c35deb6c136c8a16d0c23304934c09cd2653
parent68bcb056eba91d317e6ba90715e67f62c1e44c54 (diff)
downloadCMake-7173f2db0e37a1621236b3ceeb883d4f1255ee42.zip
CMake-7173f2db0e37a1621236b3ceeb883d4f1255ee42.tar.gz
CMake-7173f2db0e37a1621236b3ceeb883d4f1255ee42.tar.bz2
ENH: add master index into html full help
-rw-r--r--Source/cmDocumentation.cxx3
-rw-r--r--Source/cmDocumentationFormatter.h3
-rw-r--r--Source/cmDocumentationFormatterHTML.cxx15
-rw-r--r--Source/cmDocumentationFormatterHTML.h4
4 files changed, 24 insertions, 1 deletions
diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx
index fca5b3e..3b3dab7 100644
--- a/Source/cmDocumentation.cxx
+++ b/Source/cmDocumentation.cxx
@@ -846,6 +846,9 @@ void cmDocumentation::Print(Form f, std::ostream& os)
//----------------------------------------------------------------------------
void cmDocumentation::Print(std::ostream& os)
{
+ // if the formatter supports it, print a master index for
+ // all sections
+ this->CurrentFormatter->PrintIndex(os, this->PrintSections);
for(unsigned int i=0; i < this->PrintSections.size(); ++i)
{
std::string name = this->PrintSections[i]->
diff --git a/Source/cmDocumentationFormatter.h b/Source/cmDocumentationFormatter.h
index 451215f..33f95f2 100644
--- a/Source/cmDocumentationFormatter.h
+++ b/Source/cmDocumentationFormatter.h
@@ -59,6 +59,9 @@ public:
const char* name) = 0;
virtual void PrintPreformatted(std::ostream& os, const char* text) = 0;
virtual void PrintParagraph(std::ostream& os, const char* text) = 0;
+ virtual void PrintIndex(std::ostream& ,
+ std::vector<const cmDocumentationSection *>&)
+ {}
};
#endif
diff --git a/Source/cmDocumentationFormatterHTML.cxx b/Source/cmDocumentationFormatterHTML.cxx
index 0c44ed7..c3b0dee 100644
--- a/Source/cmDocumentationFormatterHTML.cxx
+++ b/Source/cmDocumentationFormatterHTML.cxx
@@ -206,3 +206,18 @@ void cmDocumentationFormatterHTML::PrintHTMLEscapes(std::ostream& os,
}
}
}
+
+void cmDocumentationFormatterHTML
+::PrintIndex(std::ostream& os,
+ std::vector<const cmDocumentationSection *>& sections)
+{
+ os << "<h2><a name=\"section_Index\"/>Master Index</h2>\n";
+ os << "<ul>\n";
+ for(unsigned int i=0; i < sections.size(); ++i)
+ {
+ std::string name = sections[i]->
+ GetName((this->GetForm()));
+ os << " <li><a href=\"#section_" << name << "\"<b>" << name << "</b></a></li>\n";
+ }
+ os << "</ul>\n";
+}
diff --git a/Source/cmDocumentationFormatterHTML.h b/Source/cmDocumentationFormatterHTML.h
index 58c2437..8e639c7 100644
--- a/Source/cmDocumentationFormatterHTML.h
+++ b/Source/cmDocumentationFormatterHTML.h
@@ -36,7 +36,9 @@ public:
const cmDocumentationSection& section,
const char* name);
virtual void PrintPreformatted(std::ostream& os, const char* text);
- virtual void PrintParagraph(std::ostream& os, const char* text);
+ virtual void PrintParagraph(std::ostream& os, const char* text);
+ virtual void PrintIndex(std::ostream& ,
+ std::vector<const cmDocumentationSection *>&);
private:
void PrintHTMLEscapes(std::ostream& os, const char* text);
};