# Poco::Util

# class HelpFormatter

Library: Util
Package: Options
Header: Poco/Util/HelpFormatter.h

## Description

This class formats a help message from an OptionSet.

## Member Summary

Member Functions: calcIndent, clearWord, format, formatOption, formatOptions, formatText, formatWord, getCommand, getFooter, getHeader, getIndent, getUsage, getWidth, isUnixStyle, longPrefix, setAutoIndent, setCommand, setFooter, setHeader, setIndent, setUnixStyle, setUsage, setWidth, shortPrefix

## Constructors

### HelpFormatter

HelpFormatter(
const OptionSet & options
);

Creates the HelpFormatter, using the given options.

The HelpFormatter just stores a reference to the given OptionSet, so the OptionSet must not be destroyed during the lifetime of the HelpFormatter.

## Destructor

### ~HelpFormatter

~HelpFormatter();

Destroys the HelpFormatter.

## Member Functions

### format

void format(
std::ostream & ostr
) const;

Writes the formatted help text to the given stream.

### getCommand

const std::string & getCommand() const;

Returns the command name.

### getFooter

const std::string & getFooter() const;

Returns the footer string.

### getHeader

const std::string & getHeader() const;

Returns the header string.

### getIndent

int getIndent() const;

Returns the indentation for description continuation lines.

### getUsage

const std::string & getUsage() const;

Returns the usage string.

### getWidth

int getWidth() const;

Returns the line width for the formatted help text.

The default width is 72.

### isUnixStyle

bool isUnixStyle() const;

Returns if Unix-style options are set.

### longPrefix

std::string longPrefix() const;

Returns the platform-specific prefix for long options. "--" on Unix, "/" on Windows and OpenVMS.

### setAutoIndent

void setAutoIndent();

Sets the indentation for description continuation lines so that the description text is left-aligned.

### setCommand

void setCommand(
const std::string & command
);

Sets the command name.

### setFooter

void setFooter(
const std::string & footer
);

Sets the footer string.

### setHeader

void setHeader(
const std::string & header
);

Sets the header string.

### setIndent

void setIndent(
int indent
);

Sets the indentation for description continuation lines.

### setUnixStyle

void setUnixStyle(
bool flag
);

Enables Unix-style options. Both short and long option names are printed if Unix-style is set. Otherwise, only long option names are printed.

After calling setUnixStyle(), setAutoIndent() should be called as well to ensure proper help text formatting.

### setUsage

void setUsage(
const std::string & usage
);

Sets the usage string.

### setWidth

void setWidth(
int width
);

Sets the line width for the formatted help text.

### shortPrefix

std::string shortPrefix() const;

Returns the platform-specific prefix for short options. "-" on Unix, "/" on Windows and OpenVMS.

### calcIndent

int calcIndent() const;

Calculates the indentation for the option descriptions from the given options.

### clearWord

void clearWord(
std::ostream & ostr,
int & pos,
std::string & word,
int indent
) const;

Formats and then clears the given word.

### formatOption

void formatOption(
std::ostream & ostr,
const Option & option,
int width
) const;

Formats an option, using the platform-specific prefixes.

### formatOptions

void formatOptions(
std::ostream & ostr
) const;

Formats all options.

### formatText

void formatText(
std::ostream & ostr,
const std::string & text,
int indent
) const;

Formats the given text.

### formatText

void formatText(
std::ostream & ostr,
const std::string & text,
int indent,
int firstIndent
) const;

Formats the given text.

### formatWord

void formatWord(
std::ostream & ostr,
int & pos,
const std::string & word,
int indent
) const;

Formats the given word.