crex

Explore, test, and check regular expressions in the terminal.


crex

/

src

/

ansi_escape_codes.hh

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
#ifndef OB_ANSI_ESCAPE_CODES_HH
#define OB_ANSI_ESCAPE_CODES_HH

#include <string>
#include <vector>
#include <sstream>

namespace OB
{

namespace ANSI_Escape_Codes
{

// standard escaped characters
extern std::string const nl;
extern std::string const cr;
extern std::string const tab;
extern std::string const alert;

// escape code sequence
extern std::string const esc;

// clears all attributes
extern std::string const reset;

// style
extern std::string const bold;
extern std::string const dim;
extern std::string const italic;
extern std::string const underline;
extern std::string const blink;
extern std::string const rblink;
extern std::string const reverse;
extern std::string const conceal;
extern std::string const cross;

// erasing
extern std::string const erase_end;
extern std::string const erase_start;
extern std::string const erase_line;
extern std::string const erase_down;
extern std::string const erase_up;
extern std::string const erase_screen;

// cursor visibility
extern std::string const cursor_hide;
extern std::string const cursor_show;

// cursor movement
extern std::string const cursor_home;
extern std::string const cursor_up;
extern std::string const cursor_down;
extern std::string const cursor_right;
extern std::string const cursor_left;
extern std::string const cursor_save;
extern std::string const cursor_load;

// foreground color
extern std::string const fg_black;
extern std::string const fg_red;
extern std::string const fg_green;
extern std::string const fg_yellow;
extern std::string const fg_blue;
extern std::string const fg_magenta;
extern std::string const fg_cyan;
extern std::string const fg_white;

// background color
extern std::string const bg_black;
extern std::string const bg_red;
extern std::string const bg_green;
extern std::string const bg_yellow;
extern std::string const bg_blue;
extern std::string const bg_magenta;
extern std::string const bg_cyan;
extern std::string const bg_white;

// prototypes
std::string fg_256(std::string x);
std::string bg_256(std::string x);
std::string htoi(std::string x);
bool valid_hstr(std::string& str);
std::string fg_true(std::string x);
std::string bg_true(std::string x);
std::string cursor_set(size_t x, size_t y);

template<class T>
std::string wrap(T const val, std::string const col)
{
  std::stringstream ss; ss
  << col
  << val
  << reset;
  return ss.str();
}

template<class T>
std::string wrap(T const val, std::vector<std::string> const col)
{
  std::stringstream ss;
  for (auto const& e : col)
  {
    ss << e;
  }
  ss << val << reset;
  return ss.str();
}

} // namespace ANSI_Escape_Codes

} // namespace OB

#endif // OB_ANSI_ESCAPE_CODES_HH
Back to Top