console_color.h
1 /* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
2  * See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
3  * Author(s): Clement Jamin
4  *
5  * Copyright (C) 2016 Inria
6  *
7  * Modification(s):
8  * - YYYY/MM Author: Description of the modification
9  */
10 
11 #ifndef CONSOLE_COLOR_H_
12 #define CONSOLE_COLOR_H_
13 
14 #include <iostream>
15 
16 #if defined(WIN32)
17 #include <windows.h>
18 #endif
19 
20 inline std::ostream& blue(std::ostream &s) {
21 #if defined(WIN32)
22  HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
23  SetConsoleTextAttribute(hStdout,
24  FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
25 #else
26  s << "\x1b[0;34m";
27 #endif
28  return s;
29 }
30 
31 inline std::ostream& red(std::ostream &s) {
32 #if defined(WIN32)
33  HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
34  SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_INTENSITY);
35 #else
36  s << "\x1b[0;31m";
37 #endif
38  return s;
39 }
40 
41 inline std::ostream& green(std::ostream &s) {
42 #if defined(WIN32)
43  HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
44  SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
45 #else
46  s << "\x1b[0;32m";
47 #endif
48  return s;
49 }
50 
51 inline std::ostream& yellow(std::ostream &s) {
52 #if defined(WIN32)
53  HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
54  SetConsoleTextAttribute(hStdout,
55  FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY);
56 #else
57  s << "\x1b[0;33m";
58 #endif
59  return s;
60 }
61 
62 inline std::ostream& white(std::ostream &s) {
63 #if defined(WIN32)
64  HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
65  SetConsoleTextAttribute(hStdout,
66  FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
67 #else
68  s << "\x1b[0;37m";
69 #endif
70  return s;
71 }
72 
73 inline std::ostream& black_on_white(std::ostream &s) {
74 #if defined(WIN32)
75  HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
76  SetConsoleTextAttribute(hStdout,
77  BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
78 #else
79  s << "\x1b[0;33m";
80 #endif
81  return s;
82 }
83 
84 
85 #endif // CONSOLE_COLOR_H_
GUDHI  Version 3.4.1  - C++ library for Topological Data Analysis (TDA) and Higher Dimensional Geometry Understanding.  - Copyright : MIT Generated on Fri Jan 22 2021 10:27:48 for GUDHI by Doxygen 1.9.1