Compare commits
2 Commits
bf48bc3565
...
2e58983526
Author | SHA1 | Date | |
---|---|---|---|
2e58983526 | |||
c90fcf68b5 |
@ -12,7 +12,7 @@ PRODUCT := lib
|
|||||||
|
|
||||||
# Single source of truth for version.
|
# Single source of truth for version.
|
||||||
MAJOR := 1
|
MAJOR := 1
|
||||||
MINOR := 5
|
MINOR := 6
|
||||||
PATCH := 0
|
PATCH := 0
|
||||||
|
|
||||||
# Specify desired C++ standard for this project.
|
# Specify desired C++ standard for this project.
|
||||||
|
@ -34,6 +34,10 @@ void term::progress(int prefixlen,
|
|||||||
double cur,
|
double cur,
|
||||||
double total) const
|
double total) const
|
||||||
{
|
{
|
||||||
|
progress(prefixlen, prefix, cur / total);
|
||||||
|
}
|
||||||
|
|
||||||
|
void term::progress(int prefixlen, const std::string& prefix, double fraction) const {
|
||||||
if (!_isatty) return;
|
if (!_isatty) return;
|
||||||
|
|
||||||
// use unicode to make nice bar
|
// use unicode to make nice bar
|
||||||
@ -41,12 +45,12 @@ void term::progress(int prefixlen,
|
|||||||
u8"\u258F", u8"\u258E", u8"\u258D", u8"\u258C",
|
u8"\u258F", u8"\u258E", u8"\u258D", u8"\u258C",
|
||||||
u8"\u258B", u8"\u258A", u8"\u2589", u8"\u2588"
|
u8"\u258B", u8"\u258A", u8"\u2589", u8"\u2588"
|
||||||
};
|
};
|
||||||
if (cur > total) cur = total;
|
if (fraction > 1) fraction = 1.0;
|
||||||
int perclen = 5;
|
int perclen = 5;
|
||||||
int barwidth = cols() - perclen - prefixlen - 1;
|
int barwidth = cols() - perclen - prefixlen - 1;
|
||||||
int maxsteps = barwidth * 8;
|
int maxsteps = barwidth * 8;
|
||||||
int steps = round(cur * maxsteps / total);
|
int steps = round(fraction * maxsteps);
|
||||||
int perc = round(100 * cur / total);
|
int perc = round(100 * fraction);
|
||||||
int fill_len = barwidth - steps / 8;
|
int fill_len = barwidth - steps / 8;
|
||||||
*_out << '\r' << std::setw(prefixlen) << prefix.substr(0, prefixlen) << ' ' << io::grayf(8);
|
*_out << '\r' << std::setw(prefixlen) << prefix.substr(0, prefixlen) << ' ' << io::grayf(8);
|
||||||
for (int i = 0; i < steps / 8; ++i) {
|
for (int i = 0; i < steps / 8; ++i) {
|
||||||
|
@ -25,6 +25,10 @@ namespace sc {
|
|||||||
double cur,
|
double cur,
|
||||||
double total) const;
|
double total) const;
|
||||||
|
|
||||||
|
void progress(int prefixlen,
|
||||||
|
const std::string& prefix,
|
||||||
|
double fraction) const;
|
||||||
|
|
||||||
static bool has_truecolor();
|
static bool has_truecolor();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user