libscterm/src/iomanip.hpp

119 lines
3.5 KiB
C++

#ifndef IOMANIP_H_
#define IOMANIP_H_
#include <iostream>
namespace sc {
namespace io {
bool should_color(const std::ostream& out);
bool isatty_ostream(const std::ostream& out);
std::ostream& hide_cursor(std::ostream& out);
std::ostream& show_cursor(std::ostream& out);
std::ostream& clear_screen(std::ostream& out);
std::ostream& reset(std::ostream& out);
std::ostream& bold(std::ostream& out);
std::ostream& italic(std::ostream& out);
std::ostream& underline(std::ostream& out);
std::ostream& overline(std::ostream& out);
std::ostream& strikethru(std::ostream& out);
std::ostream& blinkslow(std::ostream& out);
std::ostream& blinkfast(std::ostream& out);
std::ostream& reverse(std::ostream& out);
std::ostream& blackf(std::ostream& out);
std::ostream& redf(std::ostream& out);
std::ostream& greenf(std::ostream& out);
std::ostream& yellowf(std::ostream& out);
std::ostream& bluef(std::ostream& out);
std::ostream& magentaf(std::ostream& out);
std::ostream& cyanf(std::ostream& out);
std::ostream& whitef(std::ostream& out);
std::ostream& defaultf(std::ostream& out);
std::ostream& blackb(std::ostream& out);
std::ostream& redb(std::ostream& out);
std::ostream& greenb(std::ostream& out);
std::ostream& yellowb(std::ostream& out);
std::ostream& blueb(std::ostream& out);
std::ostream& magentab(std::ostream& out);
std::ostream& cyanb(std::ostream& out);
std::ostream& whiteb(std::ostream& out);
std::ostream& defaultb(std::ostream& out);
struct grayf {
int _val;
grayf(int val);
};
struct grayb {
int _val;
grayb(int val);
};
struct rgbf {
int _r; // 0 .. 5
int _g; // 0 .. 5
int _b; // 0 .. 5
rgbf(int r, int g, int b);
};
struct rgbb {
int _r; // 0 .. 5
int _g; // 0 .. 5
int _b; // 0 .. 5
rgbb(int r, int g, int b);
};
std::ostream& operator<<(std::ostream& out, const grayf& obj);
std::ostream& operator<<(std::ostream& out, const grayb& obj);
std::ostream& operator<<(std::ostream& out, const rgbf& obj);
std::ostream& operator<<(std::ostream& out, const rgbb& obj);
struct trgb {
double _r; // 0.0 .. 1.0
double _g; // 0.0 .. 1.0
double _b; // 0.0 .. 1.0
trgb(double r, double g, double b);
operator rgbf();
};
const trgb black {0.0, 0.0, 0.0};
const trgb red {1.0, 0.0, 0.0};
const trgb green {0.0, 1.0, 0.0};
const trgb yellow {1.0, 1.0, 0.0};
const trgb blue {0.0, 0.0, 1.0};
const trgb magenta {1.0, 0.0, 1.0};
const trgb cyan {0.0, 1.0, 1.0};
const trgb white {1.0, 1.0, 1.0};
struct truecolorf {
int _r; // 0 .. 255
int _g; // 0 .. 255
int _b; // 0 .. 255
truecolorf(int r, int g, int b);
};
struct truecolorb {
int _r; // 0 .. 255
int _g; // 0 .. 255
int _b; // 0 .. 255
truecolorb(int r, int g, int b);
};
std::ostream& operator<<(std::ostream& out, const truecolorf& obj);
std::ostream& operator<<(std::ostream& out, const truecolorb& obj);
}
}
#endif // IOMANIP_H_