Change 'previous' background color to 'current' and add some documentation
This commit is contained in:
1
NEWS
1
NEWS
@@ -15,6 +15,7 @@ ncmpcpp-0.8 (????-??-??)
|
||||
* Configuration variable 'visualizer_sample_multiplier' was deprecated and will be removed in 0.9.
|
||||
* Wide character version of ncurses is now required.
|
||||
* Added 'statusbar_time_color' and 'player_state_color' configuration variables for further customization of statusbar.
|
||||
* Setting foreground color only now preserves current background color.
|
||||
* Format information can now be attached to selected color variables in the configuration file. Because of that variable 'progressbar_boldness' is now deprecated in favor of extended 'progressbar_color' and 'progressbar_elapsed_color' (for more information see example configuration file).
|
||||
* Lyrics and last_fm can now be startup screens and are lockable.
|
||||
* Action 'update_environment' now also synchronizes status with MPD.
|
||||
|
||||
@@ -495,6 +495,12 @@
|
||||
## the bottom of the help screen for list of available colors
|
||||
## and their numerical values.
|
||||
##
|
||||
## What is more, there are two special values for the background
|
||||
## color: "transparent" and "current". The first one explicitly sets
|
||||
## the background to be transparent, while the second one allows you
|
||||
## to preserve current background color and change only the foreground
|
||||
## one. It's used implicitly when background color is not specified.
|
||||
##
|
||||
## Moreover, it is possible to attach format information to
|
||||
## selected color variables by appending to their end a
|
||||
## colon followed by one or more format flags, e.g. black:b
|
||||
@@ -506,7 +512,7 @@
|
||||
## alternative_ui_separator_color.
|
||||
##
|
||||
## Note: due to technical limitations of older ncurses
|
||||
## versionw, if 256 colors are used there is a possibility
|
||||
## version, if 256 colors are used there is a possibility
|
||||
## that you'll be able to use only colors with transparent
|
||||
## background.
|
||||
#
|
||||
|
||||
@@ -199,17 +199,17 @@ std::vector<int> color_pair_map;
|
||||
namespace NC {
|
||||
|
||||
const short Color::transparent = -1;
|
||||
const short Color::previous = -2;
|
||||
const short Color::current = -2;
|
||||
|
||||
Color Color::Default(0, 0, true, false);
|
||||
Color Color::Black(COLOR_BLACK, Color::previous);
|
||||
Color Color::Red(COLOR_RED, Color::previous);
|
||||
Color Color::Green(COLOR_GREEN, Color::previous);
|
||||
Color Color::Yellow(COLOR_YELLOW, Color::previous);
|
||||
Color Color::Blue(COLOR_BLUE, Color::previous);
|
||||
Color Color::Magenta(COLOR_MAGENTA, Color::previous);
|
||||
Color Color::Cyan(COLOR_CYAN, Color::previous);
|
||||
Color Color::White(COLOR_WHITE, Color::previous);
|
||||
Color Color::Black(COLOR_BLACK, Color::current);
|
||||
Color Color::Red(COLOR_RED, Color::current);
|
||||
Color Color::Green(COLOR_GREEN, Color::current);
|
||||
Color Color::Yellow(COLOR_YELLOW, Color::current);
|
||||
Color Color::Blue(COLOR_BLUE, Color::current);
|
||||
Color Color::Magenta(COLOR_MAGENTA, Color::current);
|
||||
Color Color::Cyan(COLOR_CYAN, Color::current);
|
||||
Color Color::White(COLOR_WHITE, Color::current);
|
||||
Color Color::End(0, 0, false, true);
|
||||
|
||||
int Color::pairNumber() const
|
||||
@@ -219,7 +219,7 @@ int Color::pairNumber() const
|
||||
throw std::logic_error("'end' doesn't have a corresponding pair number");
|
||||
else if (!isDefault())
|
||||
{
|
||||
if (!previousBackground())
|
||||
if (!currentBackground())
|
||||
result = (background() + 1) % COLORS;
|
||||
result *= 256;
|
||||
result += foreground() % COLORS;
|
||||
@@ -270,8 +270,8 @@ std::istream &operator>>(std::istream &is, Color &c)
|
||||
result = COLOR_WHITE;
|
||||
else if (background && s == "transparent")
|
||||
result = NC::Color::transparent;
|
||||
else if (background && s == "previous")
|
||||
result = NC::Color::previous;
|
||||
else if (background && s == "current")
|
||||
result = NC::Color::current;
|
||||
else if (std::all_of(s.begin(), s.end(), isdigit))
|
||||
{
|
||||
result = atoi(s.c_str());
|
||||
@@ -313,7 +313,7 @@ std::istream &operator>>(std::istream &is, Color &c)
|
||||
c = Color(fg, bg);
|
||||
}
|
||||
else
|
||||
c = Color(fg, NC::Color::previous);
|
||||
c = Color(fg, NC::Color::current);
|
||||
}
|
||||
return is;
|
||||
}
|
||||
@@ -571,7 +571,7 @@ void Window::setColor(Color c)
|
||||
c = m_base_color;
|
||||
if (c != Color::Default)
|
||||
{
|
||||
assert(!c.previousBackground());
|
||||
assert(!c.currentBackground());
|
||||
wcolor_set(m_window, c.pairNumber(), nullptr);
|
||||
}
|
||||
else
|
||||
@@ -581,7 +581,7 @@ void Window::setColor(Color c)
|
||||
|
||||
void Window::setBaseColor(const Color &color)
|
||||
{
|
||||
if (color.previousBackground())
|
||||
if (color.currentBackground())
|
||||
m_base_color = Color(color.foreground(), Color::transparent);
|
||||
else
|
||||
m_base_color = color;
|
||||
@@ -1316,7 +1316,7 @@ Window &Window::operator<<(const Color &c)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (c.previousBackground())
|
||||
if (c.currentBackground())
|
||||
{
|
||||
short background = m_color.isDefault()
|
||||
? Color::transparent
|
||||
|
||||
@@ -149,7 +149,7 @@ struct Color
|
||||
friend struct Window;
|
||||
|
||||
static const short transparent;
|
||||
static const short previous;
|
||||
static const short current;
|
||||
|
||||
Color() : m_impl(0, 0, true, false) { }
|
||||
Color(short foreground_value, short background_value,
|
||||
@@ -183,7 +183,7 @@ struct Color
|
||||
private:
|
||||
short foreground() const { return std::get<0>(m_impl); }
|
||||
short background() const { return std::get<1>(m_impl); }
|
||||
bool previousBackground() const { return background() == previous; }
|
||||
bool currentBackground() const { return background() == current; }
|
||||
|
||||
std::tuple<short, short, bool, bool> m_impl;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user