14 #include "../omw/color.h"
15 #include "../omw/defs.h"
16 #include "../omw/string.h"
19 #ifndef OMWi_DOXYGEN_PREDEFINE
26 ostream_manip_t(
const omw::string& argument) : m_arg(argument) {}
27 virtual ~ostream_manip_t() {}
31 template<
class CharT,
class Traits = std::
char_traits<CharT>>
32 friend inline std::basic_ostream<CharT, Traits>&
operator<<(std::basic_ostream<CharT, Traits>& os,
const omw::ostream_manip_t& manip)
35 for (
size_t i = 0; i < str.length(); ++i) { os.put(os.widen(str[i])); }
51 #endif // OMWi_DOXYGEN_PREDEFINE
62 template<
class CharT,
class Traits = std::
char_traits<CharT>>
63 friend inline std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os,
const omw::ansiesc_ostream_manip_t& manip) {
return (os << manip.arg().c_str()); }
90 constexpr
char argDelimiter =
';';
92 constexpr
char escChar =
'\x1B';
96 constexpr
char SS2 =
'N';
97 constexpr
char SS3 =
'O';
98 constexpr
char DCS =
'P';
99 constexpr
char CSI =
'[';
100 constexpr
char ST =
'\\';
101 constexpr
char OSC =
']';
102 constexpr
char SOS =
'X';
103 constexpr
char PM =
'^';
104 constexpr
char APC =
'_';
105 constexpr
char RIS =
'c';
110 constexpr
char singleShiftTwo = SS2;
111 constexpr
char singleShiftThree = SS3;
112 constexpr
char deviceControlString = DCS;
113 constexpr
char controlSequenceIntroducer = CSI;
114 constexpr
char stringTerminator = ST;
115 constexpr
char osCommand = OSC;
116 constexpr
char startOfString = SOS;
117 constexpr
char privacyMessage = PM;
118 constexpr
char appProgramCommand = APC;
119 constexpr
char resetToInitialState = RIS;
137 void enable(
bool state =
true);
147 constexpr
char CUU =
'A';
148 constexpr
char CUD =
'B';
149 constexpr
char CUF =
'C';
150 constexpr
char CUB =
'D';
151 constexpr
char CUP =
'H';
152 constexpr
char ED =
'J';
153 constexpr
char EL =
'K';
154 constexpr
char SU =
'S';
155 constexpr
char SD =
'T';
156 constexpr
char HVP =
'f';
157 constexpr
char SGR =
'm';
162 constexpr
char cursorUp = CUU;
163 constexpr
char cursorDown = CUD;
164 constexpr
char cursorFwd = CUF;
165 constexpr
char cursorBack = CUB;
166 constexpr
char cursorPos = CUP;
167 constexpr
char eraseDisplay = ED;
168 constexpr
char eraseLine = EL;
169 constexpr
char scrollUp = SU;
170 constexpr
char scrollDown = SD;
175 constexpr
int fromCurToEnd = 0;
176 constexpr
int fromCurToBegin = 1;
177 constexpr
int entire = 2;
178 constexpr
int entireAndScrlBk = 3;
188 constexpr
int font_base = 10;
189 constexpr
int foreground_base = 30;
190 constexpr
int background_base = 40;
191 constexpr
int brightForeground_base = 90;
192 constexpr
int brightBackground_base = 100;
194 constexpr
int colorBlack = 0;
195 constexpr
int colorRed = 1;
196 constexpr
int colorGreen = 2;
197 constexpr
int colorYellow = 3;
198 constexpr
int colorBlue = 4;
199 constexpr
int colorMagenta = 5;
200 constexpr
int colorCyan = 6;
201 constexpr
int colorWhite = 7;
205 constexpr
int reset = 0;
206 constexpr
int bold = 1;
207 constexpr
int faint = 2;
208 constexpr
int italic = 3;
209 constexpr
int underline = 4;
210 constexpr
int blinkSlow = 5;
211 constexpr
int blinkFast = 6;
212 constexpr
int reverseVideo = 7;
213 constexpr
int conceal = 8;
214 constexpr
int strike = 9;
215 constexpr
int defaultFont = font_base;
216 constexpr
int font0 = font_base + 0;
217 constexpr
int font1 = font_base + 1;
218 constexpr
int font2 = font_base + 2;
219 constexpr
int font3 = font_base + 3;
220 constexpr
int font4 = font_base + 4;
221 constexpr
int font5 = font_base + 5;
222 constexpr
int font6 = font_base + 6;
223 constexpr
int font7 = font_base + 7;
224 constexpr
int font8 = font_base + 8;
225 constexpr
int font9 = font_base + 9;
226 constexpr
int fraktur = 20;
227 constexpr
int boldFaintOff = 22;
228 constexpr
int boldOff = boldFaintOff;
229 constexpr
int faintOff = boldFaintOff;
230 constexpr
int italicFrakturOff = 23;
231 constexpr
int italicOff = italicFrakturOff;
232 constexpr
int frakturOff = italicFrakturOff;
233 constexpr
int underlineOff = 24;
234 constexpr
int blinkOff = 25;
235 constexpr
int reverseVideoOff = 27;
236 constexpr
int concealOff = 28;
237 constexpr
int reveal = concealOff;
238 constexpr
int strikeOff = 29;
239 constexpr
int fgColorBlack = foreground_base + colorBlack;
240 constexpr
int fgColorRed = foreground_base + colorRed;
241 constexpr
int fgColorGreen = foreground_base + colorGreen;
242 constexpr
int fgColorYellow = foreground_base + colorYellow;
243 constexpr
int fgColorBlue = foreground_base + colorBlue;
244 constexpr
int fgColorMagenta = foreground_base + colorMagenta;
245 constexpr
int fgColorCyan = foreground_base + colorCyan;
246 constexpr
int fgColorWhite = foreground_base + colorWhite;
247 constexpr
int setForeColor = 38;
248 constexpr
int defaultForeColor = 39;
249 constexpr
int fgColorDefault = defaultForeColor;
250 constexpr
int bgColorBlack = background_base + colorBlack;
251 constexpr
int bgColorRed = background_base + colorRed;
252 constexpr
int bgColorGreen = background_base + colorGreen;
253 constexpr
int bgColorYellow = background_base + colorYellow;
254 constexpr
int bgColorBlue = background_base + colorBlue;
255 constexpr
int bgColorMagenta = background_base + colorMagenta;
256 constexpr
int bgColorCyan = background_base + colorCyan;
257 constexpr
int bgColorWhite = background_base + colorWhite;
258 constexpr
int setBackColor = 48;
259 constexpr
int defaultBackColor = 49;
260 constexpr
int bgColorDefault = defaultBackColor;
261 constexpr
int framed = 51;
262 constexpr
int encircled = 52;
263 constexpr
int overlined = 53;
264 constexpr
int framedEncircledOff = 54;
265 constexpr
int framedOff = framedEncircledOff;
266 constexpr
int encircledOff = framedEncircledOff;
267 constexpr
int overlinedOff = 55;
268 constexpr
int setUnderlineColor = 58;
269 constexpr
int defaultUnderlineColor = 59;
270 constexpr
int super = 73;
271 constexpr
int sub = 74;
272 constexpr
int superSubOff = 75;
273 constexpr
int superOff = superSubOff;
274 constexpr
int subOff = superSubOff;
275 constexpr
int fgColorBrightBlack = brightForeground_base + colorBlack;
276 constexpr
int fgColorBrightRed = brightForeground_base + colorRed;
277 constexpr
int fgColorBrightGreen = brightForeground_base + colorGreen;
278 constexpr
int fgColorBrightYellow = brightForeground_base + colorYellow;
279 constexpr
int fgColorBrightBlue = brightForeground_base + colorBlue;
280 constexpr
int fgColorBrightMagenta = brightForeground_base + colorMagenta;
281 constexpr
int fgColorBrightCyan = brightForeground_base + colorCyan;
282 constexpr
int fgColorBrightWhite = brightForeground_base + colorWhite;
283 constexpr
int bgColorBrightBlack = brightBackground_base + colorBlack;
284 constexpr
int bgColorBrightRed = brightBackground_base + colorRed;
285 constexpr
int bgColorBrightGreen = brightBackground_base + colorGreen;
286 constexpr
int bgColorBrightYellow = brightBackground_base + colorYellow;
287 constexpr
int bgColorBrightBlue = brightBackground_base + colorBlue;
288 constexpr
int bgColorBrightMagenta = brightBackground_base + colorMagenta;
289 constexpr
int bgColorBrightCyan = brightBackground_base + colorCyan;
290 constexpr
int bgColorBrightWhite = brightBackground_base + colorWhite;
296 constexpr
int setColor_8bit = 5;
297 constexpr
int setColor_rgb = 2;
303 omw::string seq(
int param,
int arg0,
int arg1,
int arg2,
int arg3);
310 constexpr
int col8bit_standardBlack = 0;
311 constexpr
int col8bit_standardBlue = 1;
312 constexpr
int col8bit_standardCyan = 2;
313 constexpr
int col8bit_standardGreen = 3;
314 constexpr
int col8bit_standardMagenta = 4;
315 constexpr
int col8bit_standardRed = 5;
316 constexpr
int col8bit_standardWhite = 6;
317 constexpr
int col8bit_standardYellow = 7;
318 constexpr
int col8bit_brightBlack = 8;
319 constexpr
int col8bit_brightBlue = 9;
320 constexpr
int col8bit_brightCyan = 10;
321 constexpr
int col8bit_brightGreen = 11;
322 constexpr
int col8bit_brightMagenta = 12;
323 constexpr
int col8bit_brightRed = 13;
324 constexpr
int col8bit_brightWhite = 14;
325 constexpr
int col8bit_brightYellow = 15;
328 232, 233, 234, 235, 236, 237, 238, 239,
329 240, 241, 242, 243, 244, 245, 246, 247,
330 248, 249, 250, 251, 252, 253, 254, 255
334 16, 232, 233, 234, 235, 236, 237, 238,
335 239, 240, 241, 242, 243, 244, 245, 246,
336 247, 248, 249, 250, 251, 252, 253, 254,
349 #pragma region sgr-ostream-manip
355 template<
class CharT,
class Traits = std::
char_traits<CharT>>
356 inline std::basic_ostream<CharT, Traits>& bgBlack(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorBlack).c_str()); }
357 template<
class CharT,
class Traits = std::
char_traits<CharT>>
358 inline std::basic_ostream<CharT, Traits>& bgBlue(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorBlue).c_str()); }
359 template<
class CharT,
class Traits = std::
char_traits<CharT>>
360 inline std::basic_ostream<CharT, Traits>& bgBrightBlack(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorBrightBlack).c_str()); }
361 template<
class CharT,
class Traits = std::
char_traits<CharT>>
362 inline std::basic_ostream<CharT, Traits>& bgBrightBlue(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorBrightBlue).c_str()); }
363 template<
class CharT,
class Traits = std::
char_traits<CharT>>
364 inline std::basic_ostream<CharT, Traits>& bgBrightCyan(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorBrightCyan).c_str()); }
365 template<
class CharT,
class Traits = std::
char_traits<CharT>>
366 inline std::basic_ostream<CharT, Traits>& bgBrightGreen(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorBrightGreen).c_str()); }
367 template<
class CharT,
class Traits = std::
char_traits<CharT>>
368 inline std::basic_ostream<CharT, Traits>& bgBrightMagenta(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorBrightMagenta).c_str()); }
369 template<
class CharT,
class Traits = std::
char_traits<CharT>>
370 inline std::basic_ostream<CharT, Traits>& bgBrightRed(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorBrightRed).c_str()); }
371 template<
class CharT,
class Traits = std::
char_traits<CharT>>
372 inline std::basic_ostream<CharT, Traits>& bgBrightWhite(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorBrightWhite).c_str()); }
373 template<
class CharT,
class Traits = std::
char_traits<CharT>>
374 inline std::basic_ostream<CharT, Traits>& bgBrightYellow(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorBrightYellow).c_str()); }
375 template<
class CharT,
class Traits = std::
char_traits<CharT>>
376 inline std::basic_ostream<CharT, Traits>& bgCyan(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorCyan).c_str()); }
377 template<
class CharT,
class Traits = std::
char_traits<CharT>>
378 inline std::basic_ostream<CharT, Traits>& bgDefault(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorDefault).c_str()); }
379 template<
class CharT,
class Traits = std::
char_traits<CharT>>
380 inline std::basic_ostream<CharT, Traits>& bgGreen(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorGreen).c_str()); }
381 template<
class CharT,
class Traits = std::
char_traits<CharT>>
382 inline std::basic_ostream<CharT, Traits>& bgMagenta(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorMagenta).c_str()); }
383 template<
class CharT,
class Traits = std::
char_traits<CharT>>
384 inline std::basic_ostream<CharT, Traits>& bgRed(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorRed).c_str()); }
385 template<
class CharT,
class Traits = std::
char_traits<CharT>>
386 inline std::basic_ostream<CharT, Traits>& bgWhite(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorWhite).c_str()); }
387 template<
class CharT,
class Traits = std::
char_traits<CharT>>
388 inline std::basic_ostream<CharT, Traits>& bgYellow(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bgColorYellow).c_str()); }
390 template<
class CharT,
class Traits = std::
char_traits<CharT>>
391 inline std::basic_ostream<CharT, Traits>& blinkFast(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::blinkFast).c_str()); }
392 template<
class CharT,
class Traits = std::
char_traits<CharT>>
393 inline std::basic_ostream<CharT, Traits>& blinkOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::blinkOff).c_str()); }
394 template<
class CharT,
class Traits = std::
char_traits<CharT>>
395 inline std::basic_ostream<CharT, Traits>& blinkSlow(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::blinkSlow).c_str()); }
396 template<
class CharT,
class Traits = std::
char_traits<CharT>>
397 inline std::basic_ostream<CharT, Traits>& bold(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::bold).c_str()); }
398 template<
class CharT,
class Traits = std::
char_traits<CharT>>
399 inline std::basic_ostream<CharT, Traits>& boldOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::boldOff).c_str()); }
400 template<
class CharT,
class Traits = std::
char_traits<CharT>>
401 inline std::basic_ostream<CharT, Traits>& conceal(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::conceal).c_str()); }
402 template<
class CharT,
class Traits = std::
char_traits<CharT>>
403 inline std::basic_ostream<CharT, Traits>& concealOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::concealOff).c_str()); }
405 template<
class CharT,
class Traits = std::
char_traits<CharT>>
406 inline std::basic_ostream<CharT, Traits>& defaultBackColor(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::defaultBackColor).c_str()); }
413 template<
class CharT,
class Traits = std::
char_traits<CharT>>
414 inline std::basic_ostream<CharT, Traits>&
defaultColors(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::defaultBackColor, omw::ansiesc::csi::sgr::defaultForeColor, omw::ansiesc::csi::sgr::defaultUnderlineColor).c_str()); }
415 template<
class CharT,
class Traits = std::
char_traits<CharT>>
416 inline std::basic_ostream<CharT, Traits>& defaultFont(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::defaultFont).c_str()); }
417 template<
class CharT,
class Traits = std::
char_traits<CharT>>
418 inline std::basic_ostream<CharT, Traits>& defaultForeColor(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::defaultForeColor).c_str()); }
419 template<
class CharT,
class Traits = std::
char_traits<CharT>>
420 inline std::basic_ostream<CharT, Traits>& defaultUnderlineColor(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::defaultUnderlineColor).c_str()); }
422 template<
class CharT,
class Traits = std::
char_traits<CharT>>
423 inline std::basic_ostream<CharT, Traits>& encircled(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::encircled).c_str()); }
424 template<
class CharT,
class Traits = std::
char_traits<CharT>>
425 inline std::basic_ostream<CharT, Traits>& encircledOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::encircledOff).c_str()); }
426 template<
class CharT,
class Traits = std::
char_traits<CharT>>
427 inline std::basic_ostream<CharT, Traits>& faint(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::faint).c_str()); }
428 template<
class CharT,
class Traits = std::
char_traits<CharT>>
429 inline std::basic_ostream<CharT, Traits>& faintOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::faintOff).c_str()); }
431 template<
class CharT,
class Traits = std::
char_traits<CharT>>
432 inline std::basic_ostream<CharT, Traits>& fgBlack(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorBlack).c_str()); }
433 template<
class CharT,
class Traits = std::
char_traits<CharT>>
434 inline std::basic_ostream<CharT, Traits>& fgBlue(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorBlue).c_str()); }
435 template<
class CharT,
class Traits = std::
char_traits<CharT>>
436 inline std::basic_ostream<CharT, Traits>& fgBrightBlack(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorBrightBlack).c_str()); }
437 template<
class CharT,
class Traits = std::
char_traits<CharT>>
438 inline std::basic_ostream<CharT, Traits>& fgBrightBlue(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorBrightBlue).c_str()); }
439 template<
class CharT,
class Traits = std::
char_traits<CharT>>
440 inline std::basic_ostream<CharT, Traits>& fgBrightCyan(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorBrightCyan).c_str()); }
441 template<
class CharT,
class Traits = std::
char_traits<CharT>>
442 inline std::basic_ostream<CharT, Traits>& fgBrightGreen(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorBrightGreen).c_str()); }
443 template<
class CharT,
class Traits = std::
char_traits<CharT>>
444 inline std::basic_ostream<CharT, Traits>& fgBrightMagenta(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorBrightMagenta).c_str()); }
445 template<
class CharT,
class Traits = std::
char_traits<CharT>>
446 inline std::basic_ostream<CharT, Traits>& fgBrightRed(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorBrightRed).c_str()); }
447 template<
class CharT,
class Traits = std::
char_traits<CharT>>
448 inline std::basic_ostream<CharT, Traits>& fgBrightWhite(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorBrightWhite).c_str()); }
449 template<
class CharT,
class Traits = std::
char_traits<CharT>>
450 inline std::basic_ostream<CharT, Traits>& fgBrightYellow(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorBrightYellow).c_str()); }
451 template<
class CharT,
class Traits = std::
char_traits<CharT>>
452 inline std::basic_ostream<CharT, Traits>& fgCyan(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorCyan).c_str()); }
453 template<
class CharT,
class Traits = std::
char_traits<CharT>>
454 inline std::basic_ostream<CharT, Traits>& fgDefault(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorDefault).c_str()); }
455 template<
class CharT,
class Traits = std::
char_traits<CharT>>
456 inline std::basic_ostream<CharT, Traits>& fgGreen(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorGreen).c_str()); }
457 template<
class CharT,
class Traits = std::
char_traits<CharT>>
458 inline std::basic_ostream<CharT, Traits>& fgMagenta(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorMagenta).c_str()); }
459 template<
class CharT,
class Traits = std::
char_traits<CharT>>
460 inline std::basic_ostream<CharT, Traits>& fgRed(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorRed).c_str()); }
461 template<
class CharT,
class Traits = std::
char_traits<CharT>>
462 inline std::basic_ostream<CharT, Traits>& fgWhite(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorWhite).c_str()); }
463 template<
class CharT,
class Traits = std::
char_traits<CharT>>
464 inline std::basic_ostream<CharT, Traits>& fgYellow(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fgColorYellow).c_str()); }
467 template<
class CharT,
class Traits = std::
char_traits<CharT>>
468 inline std::basic_ostream<CharT, Traits>& font0(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::font0).c_str()); }
469 template<
class CharT,
class Traits = std::
char_traits<CharT>>
470 inline std::basic_ostream<CharT, Traits>& font1(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::font1).c_str()); }
471 template<
class CharT,
class Traits = std::
char_traits<CharT>>
472 inline std::basic_ostream<CharT, Traits>& font2(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::font2).c_str()); }
473 template<
class CharT,
class Traits = std::
char_traits<CharT>>
474 inline std::basic_ostream<CharT, Traits>& font3(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::font3).c_str()); }
475 template<
class CharT,
class Traits = std::
char_traits<CharT>>
476 inline std::basic_ostream<CharT, Traits>& font4(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::font4).c_str()); }
477 template<
class CharT,
class Traits = std::
char_traits<CharT>>
478 inline std::basic_ostream<CharT, Traits>& font5(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::font5).c_str()); }
479 template<
class CharT,
class Traits = std::
char_traits<CharT>>
480 inline std::basic_ostream<CharT, Traits>& font6(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::font6).c_str()); }
481 template<
class CharT,
class Traits = std::
char_traits<CharT>>
482 inline std::basic_ostream<CharT, Traits>& font7(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::font7).c_str()); }
483 template<
class CharT,
class Traits = std::
char_traits<CharT>>
484 inline std::basic_ostream<CharT, Traits>& font8(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::font8).c_str()); }
485 template<
class CharT,
class Traits = std::
char_traits<CharT>>
486 inline std::basic_ostream<CharT, Traits>& font9(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::font9).c_str()); }
490 template<
class CharT,
class Traits = std::
char_traits<CharT>>
491 inline std::basic_ostream<CharT, Traits>& fraktur(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::fraktur).c_str()); }
492 template<
class CharT,
class Traits = std::
char_traits<CharT>>
493 inline std::basic_ostream<CharT, Traits>& frakturOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::frakturOff).c_str()); }
494 template<
class CharT,
class Traits = std::
char_traits<CharT>>
495 inline std::basic_ostream<CharT, Traits>& framed(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::framed).c_str()); }
496 template<
class CharT,
class Traits = std::
char_traits<CharT>>
497 inline std::basic_ostream<CharT, Traits>& framedOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::framedOff).c_str()); }
498 template<
class CharT,
class Traits = std::
char_traits<CharT>>
499 inline std::basic_ostream<CharT, Traits>& italic(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::italic).c_str()); }
500 template<
class CharT,
class Traits = std::
char_traits<CharT>>
501 inline std::basic_ostream<CharT, Traits>& italicOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::italicOff).c_str()); }
502 template<
class CharT,
class Traits = std::
char_traits<CharT>>
503 inline std::basic_ostream<CharT, Traits>& normal(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::reset).c_str()); }
504 template<
class CharT,
class Traits = std::
char_traits<CharT>>
505 inline std::basic_ostream<CharT, Traits>& overlined(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::overlined).c_str()); }
506 template<
class CharT,
class Traits = std::
char_traits<CharT>>
507 inline std::basic_ostream<CharT, Traits>& overlinedOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::overlinedOff).c_str()); }
508 template<
class CharT,
class Traits = std::
char_traits<CharT>>
509 inline std::basic_ostream<CharT, Traits>& reveal(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::reveal).c_str()); }
510 template<
class CharT,
class Traits = std::
char_traits<CharT>>
511 inline std::basic_ostream<CharT, Traits>& reverseVideo(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::reverseVideo).c_str()); }
512 template<
class CharT,
class Traits = std::
char_traits<CharT>>
513 inline std::basic_ostream<CharT, Traits>& reverseVideoOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::reverseVideoOff).c_str()); }
514 template<
class CharT,
class Traits = std::
char_traits<CharT>>
515 inline std::basic_ostream<CharT, Traits>& strike(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::strike).c_str()); }
516 template<
class CharT,
class Traits = std::
char_traits<CharT>>
517 inline std::basic_ostream<CharT, Traits>& strikeOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::strikeOff).c_str()); }
518 template<
class CharT,
class Traits = std::
char_traits<CharT>>
519 inline std::basic_ostream<CharT, Traits>& sub(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::sub).c_str()); }
520 template<
class CharT,
class Traits = std::
char_traits<CharT>>
521 inline std::basic_ostream<CharT, Traits>& subOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::subOff).c_str()); }
522 template<
class CharT,
class Traits = std::
char_traits<CharT>>
523 inline std::basic_ostream<CharT, Traits>& super(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::super).c_str()); }
524 template<
class CharT,
class Traits = std::
char_traits<CharT>>
525 inline std::basic_ostream<CharT, Traits>& superOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::superOff).c_str()); }
526 template<
class CharT,
class Traits = std::
char_traits<CharT>>
527 inline std::basic_ostream<CharT, Traits>& underline(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::underline).c_str()); }
531 template<
class CharT,
class Traits = std::
char_traits<CharT>>
532 inline std::basic_ostream<CharT, Traits>& underlineOff(std::basic_ostream<CharT, Traits>& os) {
return (os <<
omw::ansiesc::csi::sgr::seq(omw::ansiesc::csi::sgr::underlineOff).c_str()); }
534 #pragma endregion sgr-ostream-manip
540 #endif // IG_OMW_CLI_H