[cmake-commits] martink committed cmDocumentationSection.cxx NONE 1.1
cmDocumentationSection.h NONE 1.1
cmake-commits at cmake.org
cmake-commits at cmake.org
Mon Oct 22 12:49:11 EDT 2007
Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv24258/Source
Added Files:
cmDocumentationSection.cxx cmDocumentationSection.h
Log Message:
ENH: change to make the documentation class more generic, about halfway there, also provides secitons for Variables now
--- NEW FILE: cmDocumentationSection.cxx ---
/*=========================================================================
Program: CMake - Cross-Platform Makefile Generator
Module: $RCSfile: cmDocumentationSection.cxx,v $
Language: C++
Date: $Date: 2007/10/22 16:49:09 $
Version: $Revision: 1.1 $
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.
=========================================================================*/
#include "cmDocumentationSection.h"
//----------------------------------------------------------------------------
void cmDocumentationSection::Append(const char *data[][3])
{
int i = 0;
while(data[i][1])
{
this->Entries.push_back(cmDocumentationEntry(data[i][0],
data[i][1],
data[i][2]));
data += 1;
}
}
//----------------------------------------------------------------------------
void cmDocumentationSection::Append(const char *n, const char *b,
const char *f)
{
this->Entries.push_back(cmDocumentationEntry(n,b,f));
}
#if 0
//----------------------------------------------------------------------------
void cmDocumentationSection::Set(const cmDocumentationEntry* header,
const cmDocumentationEntry* section,
const cmDocumentationEntry* footer)
{
this->Entries.erase(this->Entries.begin(), this->Entries.end());
if(header)
{
for(const cmDocumentationEntry* op = header; op->brief; ++op)
{
this->Entries.push_back(*op);
}
}
if(section)
{
for(const cmDocumentationEntry* op = section; op->brief; ++op)
{
this->Entries.push_back(*op);
}
}
if(footer)
{
for(const cmDocumentationEntry* op = footer; op->brief; ++op)
{
this->Entries.push_back(*op);
}
}
cmDocumentationEntry empty = {0,0,0};
this->Entries.push_back(empty);
}
#endif
--- NEW FILE: cmDocumentationSection.h ---
/*=========================================================================
Program: CMake - Cross-Platform Makefile Generator
Module: $RCSfile: cmDocumentationSection.h,v $
Language: C++
Date: $Date: 2007/10/22 16:49:09 $
Version: $Revision: 1.1 $
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
More information about the Cmake-commits
mailing list