| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /*============================================================================
- CMake - Cross Platform Makefile Generator
- Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
- Distributed under the OSI-approved BSD License (the "License");
- see accompanying file Copyright.txt for details.
- This software is distributed WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the License for more information.
- ============================================================================*/
- #ifndef _cmDocumentationFormatter_h
- #define _cmDocumentationFormatter_h
- #include "cmStandardIncludes.h"
- /** This is just a helper class to make it build with MSVC 6.0.
- Actually the enums and internal classes could directly go into
- cmDocumentation, but then MSVC6 complains in RequestedHelpItem that
- cmDocumentation is an undefined type and so it doesn't know the enums.
- Moving the enums to a class which is then already completely parsed helps
- against this. */
- class cmDocumentationEnums
- {
- public:
- /** Types of help provided. */
- enum Type
- {
- None, Version, Usage, ListManuals,
- ListCommands, ListModules, ListProperties, ListVariables, ListPolicies,
- OneManual, OneCommand, OneModule, OneProperty, OneVariable, OnePolicy
- };
- /** Forms of documentation output. */
- enum Form { TextForm, HTMLForm, RSTForm, ManForm, UsageForm, DocbookForm };
- };
- class cmDocumentationSection;
- /** Base class for printing the documentation in the various supported
- formats. */
- class cmDocumentationFormatter
- {
- public:
- cmDocumentationFormatter();
- virtual ~cmDocumentationFormatter();
- void PrintFormatted(std::ostream& os, const char* text);
- virtual cmDocumentationEnums::Form GetForm() const = 0;
- virtual void PrintHeader(const char* /*docname*/,
- const char* /*appname*/,
- std::ostream& /*os*/) {}
- virtual void PrintFooter(std::ostream& /*os*/) {}
- virtual void PrintSection(std::ostream& os,
- const cmDocumentationSection& section,
- 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 *>&)
- {}
- /** Compute a prefix for links into a section (#\<prefix\>_SOMETHING). */
- std::string ComputeSectionLinkPrefix(std::string const& name);
- };
- #endif
|