#ifndef COLOR_H #define COLOR_H // //taken from //http://www.velocityreviews.com/forums/t279115-design-question-a-little-c-header-for-colorizing-text-in-linux-comments-ideas.html #include using namespace std; enum ColorName { black, red, green, brown, blue, magenta, cyan, gray, darkgray, lightred, lightgreen, yellow, lightblue, lightmagenta, lightcyan, white }; struct color { color(ColorName f = white, ColorName b = black) : fore(f), back(b) {} ColorName fore; ColorName back; }; inline ostream& operator<<(ostream& o, const color& c) { o << "\033["; if(c.back != black) { o << "4" << c.back << ";"; } else { o << "0;"; } if(c.fore > gray) { // bold color o << "1;3" << c.fore - gray - 1; } else { o << "0;3" << c.fore ; } return o << "m"; } #endif