#include "stdafx.h"


#include "IndentedWriter.h"

bool IndentedWriter::get_Print()
{
    return myPrintFlag;
}

void IndentedWriter::set_Print(bool value)
{
    myPrintFlag = value;
}

TextWriter* IndentedWriter::get_TextWriter()
{
    return myTextWriter;
}

void IndentedWriter::set_TextWriter(TextWriter* value)
{
    myTextWriter = value;
}


void IndentedWriter::PushIndent()
{
    myIndent += 2;
}

void IndentedWriter::PopIndent()
{
    if (myIndent > 0)
    {
        myIndent -= 2;
    }
}

void IndentedWriter::WriteLine()
{
    WriteLine(S"");
}

void IndentedWriter::WriteLine(String* format, Object* arg[])
{
    WriteLine(String::Format(format, arg));
}

void IndentedWriter::WriteLine(String* message)
{
    if (myPrintFlag)
    {
        StringBuilder* sb = new StringBuilder();
        for (int i = 0; i < myIndent; i++)
        {
            sb->Append(' ');
        }
        sb->Append(message);
        myTextWriter->WriteLine(sb->ToString());
    }
}

IndentedWriter::IndentedWriter() : 
myTextWriter(Console::Out), 
myPrintFlag(true), 
myIndent(0)
{
}


