diff options
Diffstat (limited to 'traveler/AsciiTraveler.cc')
| -rw-r--r-- | traveler/AsciiTraveler.cc | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/traveler/AsciiTraveler.cc b/traveler/AsciiTraveler.cc index b20e53b..a44313b 100644 --- a/traveler/AsciiTraveler.cc +++ b/traveler/AsciiTraveler.cc @@ -1,4 +1,5 @@ #include "AsciiTraveler.hh" +#include "Color.hh" namespace pcc { const std::string AsciiTraveler::MiddleLevelPrefix_ = "|-"; @@ -10,28 +11,30 @@ const size_t AsciiTraveler::LevelWidth_ = AsciiTraveler::AsciiTraveler(std::ostream& out) : Traveler(out) - , prefix_("") { + , prefix_("") + , random_(13) + , dist_(0, 1) { IsLastChild_.push(true); } +void AsciiTraveler::PostTravel() { out_ << Color::DEFAULT; } + Traveler& AsciiTraveler::operator<<(TravelPart part) { switch (part) { case TravelPart::PREFIX: - out_ << prefix_ + out_ << Color::BLUE << prefix_ << (IsLastChild_.top() ? LastLevelPrefix_ : MiddleLevelPrefix_); break; case TravelPart::NAME_BEGIN: - out_ << '<'; + out_ << (dist_(random_) == 1 ? Color::MAGENTA : Color::GREEN); break; case TravelPart::NAME_END: - out_ << '>'; - break; break; case TravelPart::DESCRPTION_BEGIN: - out_ << '<'; + out_ << (dist_(random_) == 1 ? Color::CYAN : Color::YELLOW) << " "; break; case TravelPart::DESCRPTION_END: - out_ << ">\n"; + out_ << "\n"; break; case TravelPart::CHILD_BEGIN: prefix_.append(IsLastChild_.top() ? LastChildPrefix_ |
