summaryrefslogtreecommitdiffstats
path: root/Source/cmDocumentationSection.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmDocumentationSection.h')
-rw-r--r--Source/cmDocumentationSection.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/Source/cmDocumentationSection.h b/Source/cmDocumentationSection.h
new file mode 100644
index 0000000..60e735b
--- /dev/null
+++ b/Source/cmDocumentationSection.h
@@ -0,0 +1,71 @@
+/*=========================================================================
+
+ Program: CMake - Cross-Platform Makefile Generator
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef _cmDocumentationSection_h
+#define _cmDocumentationSection_h
+
+#include "cmStandardIncludes.h"
+#include "cmDocumentationFormatter.h"
+
+// Low-level interface for custom documents:
+/** Internal class representing a section of the documentation.
+ * Cares e.g. for the different section titles in the different
+ * output formats.
+ */
+class cmDocumentationSection
+{
+public:
+ /** Create a cmSection, with a special name for man-output mode. */
+ cmDocumentationSection(const char* name, const char* manName)
+ :Name(name), ManName(manName) {}
+
+ /** Has any content been added to this section or is it empty ? */
+ bool IsEmpty() const { return this->Entries.empty(); }
+
+ /** Clear contents. */
+ void Clear() { this->Entries.clear(); }
+
+ /** Return the name of this section for the given output form. */
+ const char* GetName(cmDocumentationEnums::Form form) const
+ { return (form==cmDocumentationEnums::ManForm ?
+ this->ManName.c_str() : this->Name.c_str()); }
+
+ /** Return a pointer to the first entry of this section. */
+ const std::vector<cmDocumentationEntry> &GetEntries() const
+ { return this->Entries; }
+
+ /** Append an entry to this section. */
+ void Append(const cmDocumentationEntry& entry)
+ { this->Entries.push_back(entry); }
+ void Append(const std::vector<cmDocumentationEntry> &entries)
+ { this->Entries.insert(this->Entries.end(),entries.begin(),entries.end()); }
+
+ /** Append an entry to this section using NULL terminated chars */
+ void Append(const char *[][3]);
+ void Append(const char *n, const char *b, const char *f);
+
+ /** Set the contents of this section. */
+// void Set(const std::vector<cmDocumentationEntry> header,
+// const std::vector<cmDocumentationEntry> section,
+// const std::vector<cmDocumentationEntry> footer);
+
+private:
+ std::string Name;
+ std::string ManName;
+ std::vector<cmDocumentationEntry> Entries;
+};
+
+#endif