//
// aegis - project change supervisor
// Copyright (C) 1999, 2002, 2005, 2006, 2008, 2012 Peter Miller
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or (at
// your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
//
#ifndef LIBAEGIS_COL_UNFORMATTED_H
#define LIBAEGIS_COL_UNFORMATTED_H
#include
#include
#include
/**
* The col_unformatted class is used to represent columnar output wich
* simply has the columns concatenated on a single line, without any
* formatting.
*/
class col_unformatted:
public col
{
public:
/**
* The destructor.
*/
virtual ~col_unformatted();
private:
/**
* The constructor. It is private on purpose, use the #create
* class method instead.
*
* @param deeper
* the output stream upon which to write the columnar output
*/
col_unformatted(const wide_output::pointer &deeper);
public:
/**
* The create class method is used to create new dynamically
* allocated instances of this class.
*
* @param deeper
* the output stream upon which to write the columnar output
*/
static pointer create(const wide_output::pointer &deeper);
protected:
// See base class for documentation.
output::pointer create(int left, int right, const char *title);
// See base class for documentation.
void title(const nstring &first, const nstring &second);
// See base class for documentation.
void eoln();
// See base class for documentation.
void need(int n);
// See base class for documentation.
void eject();
// See base class for documentation.
void flush();
// See base class for documentation.
void forget(const output::pointer &op);
private:
struct column_ty
{
~column_ty();
column_ty();
wide_output_column::cpointer content;
output::pointer content_filter;
void clear();
};
wide_output::pointer deeper;
wchar_t separator;
size_t ncolumns;
size_t ncolumns_max;
column_ty *column;
/**
* The default constructor. Do not use.
*/
col_unformatted();
/**
* The copy constructor. Do not use.
*/
col_unformatted(const col_unformatted &);
/**
* The assignment operator. Do not use.
*/
col_unformatted &operator=(const col_unformatted &);
};
#endif // LIBAEGIS_COL_UNFORMATTED_H
// vim: set ts=8 sw=4 et :