CMake/Source/cmDocumentationFormatter.h

58 lines
2.0 KiB
C
Raw Normal View History

/*============================================================================
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
2011-10-13 21:51:18 +04:00
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. */
2011-10-13 21:51:18 +04:00
enum Type
{
None, Version, Usage, Help, Full, ListManuals, ListCommands,
ListModules, ListProperties, ListVariables, ListPolicies, ListGenerators,
OneManual, OneCommand, OneModule, OneProperty, OneVariable, OnePolicy,
OldCustomModules
};
};
class cmDocumentationSection;
/** Print documentation in a simple text format. */
class cmDocumentationFormatter
{
public:
cmDocumentationFormatter();
virtual ~cmDocumentationFormatter();
void PrintFormatted(std::ostream& os, const char* text);
virtual void PrintSection(std::ostream& os,
cmDocumentationSection const& section);
virtual void PrintPreformatted(std::ostream& os, const char* text);
virtual void PrintParagraph(std::ostream& os, const char* text);
void PrintColumn(std::ostream& os, const char* text);
void SetIndent(const char* indent);
private:
int TextWidth;
const char* TextIndent;
};
#endif