1 #include "Terminal.h"
2 namespace term {
3 
4 // this is SUCH a dodgy hack
5 static bool forcecolour = false;
6 
forceColour(bool state)7 void forceColour(bool state) {
8 	forcecolour = state;
9 }
10 
title(string const & str)11 string title(string const &str) {
12 	return string("]0;") + str + "";
13 }
14 
background(Colour colour)15 string background(Colour colour) {
16 	return string("[4") + str::stringify(colour) + "m";
17 }
18 
foreground(Colour colour)19 string foreground(Colour colour) {
20 	return string("[3") + str::stringify(colour) + "m";
21 }
22 
colour(Colour colour)23 string colour(Colour colour) {
24 	return string("[3") + str::stringify(colour) + "m";
25 }
26 
attribute(Attribute attribute)27 string attribute(Attribute attribute) {
28 	return string("[") + str::stringify(attribute) + "m";
29 }
30 
black(ostream & os)31 ostream &black(ostream &os) {
32 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
33 	return os;
34 }
35 
red(ostream & os)36 ostream &red(ostream &os) {
37 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
38 	return os;
39 }
40 
green(ostream & os)41 ostream &green(ostream &os) {
42 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
43 	return os;
44 }
45 
yellow(ostream & os)46 ostream &yellow(ostream &os) {
47 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
48 	return os;
49 }
50 
blue(ostream & os)51 ostream &blue(ostream &os) {
52 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
53 	return os;
54 }
55 
magenta(ostream & os)56 ostream &magenta(ostream &os) {
57 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
58 	return os;
59 }
60 
cyan(ostream & os)61 ostream &cyan(ostream &os) {
62 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
63 	return os;
64 }
65 
white(ostream & os)66 ostream &white(ostream &os) {
67 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
68 	return os;
69 }
70 
normal(ostream & os)71 ostream &normal(ostream &os) {
72 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
73 	return os;
74 }
75 
bold(ostream & os)76 ostream &bold(ostream &os) {
77 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
78 	return os;
79 }
80 
halfbright(ostream & os)81 ostream &halfbright(ostream &os) {
82 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
83 	return os;
84 }
85 
underline(ostream & os)86 ostream &underline(ostream &os) {
87 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
88 	return os;
89 }
90 
blink(ostream & os)91 ostream &blink(ostream &os) {
92 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
93 	return os;
94 }
95 
reverse(ostream & os)96 ostream &reverse(ostream &os) {
97 	if (&cout == &os && (forcecolour || isatty(1))) os << "";
98 	return os;
99 }
100 
101 }
102