You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wowlet/src/utils/ColorScheme.cpp

39 lines
1.5 KiB

// SPDX-License-Identifier: BSD-3-Clause
// Copyright (c) 2020-2021, The Monero Project.
// Copyright (c) 2012 thomasv@gitorious
#include "ColorScheme.h"
bool ColorScheme::darkScheme = false;
ColorSchemeItem ColorScheme::GREEN = ColorSchemeItem("#117c11", "#8af296");
ColorSchemeItem ColorScheme::YELLOW = ColorSchemeItem("#897b2a", "#ffff00");
ColorSchemeItem ColorScheme::RED = ColorSchemeItem("#7c1111", "#f18c8c");
ColorSchemeItem ColorScheme::BLUE = ColorSchemeItem("#123b7c", "#8cb3f2");
ColorSchemeItem ColorScheme::DEFAULT = ColorSchemeItem("black", "white");
ColorSchemeItem ColorScheme::GRAY = ColorSchemeItem("gray", "gray");
bool ColorScheme::hasDarkBackground(QWidget *widget) {
int r, g, b;
widget->palette().color(QPalette::Background).getRgb(&r, &g, &b);
auto brightness = r + g + b;
return brightness < (255*3/2);
}
void ColorScheme::updateFromWidget(QWidget *widget, bool forceDark) {
darkScheme = forceDark || ColorScheme::hasDarkBackground(widget);
}
QString ColorSchemeItem::asStylesheet(bool background) {
auto cssPrefix = background ? "background-" : "";
auto color = this->getColor(background);
return QString("QWidget { %1color : %2; }").arg(cssPrefix, color);
}
QColor ColorSchemeItem::asColor(bool background) {
auto color = this->getColor(background);
return QColor(color);
}
QString ColorSchemeItem::getColor(bool background) {
return m_colors[(int(background) + int(ColorScheme::darkScheme)) % 2];
}