mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
added dark window to dark theme
This commit is contained in:
parent
5c23be2122
commit
06c3201a1a
|
@ -54,9 +54,10 @@ void ThemeManager::update()
|
|||
void ThemeManager::actuallyUpdate(double hue, double multiplier)
|
||||
{
|
||||
isLight = multiplier > 0;
|
||||
bool isLightTabs;
|
||||
bool lightWin = isLight;
|
||||
|
||||
QColor themeColor = QColor::fromHslF(hue, 0.5, 0.5);
|
||||
QColor none(0, 0, 0, 0);
|
||||
QColor themeColor = QColor::fromHslF(hue, 0.43, 0.5);
|
||||
QColor themeColorNoSat = QColor::fromHslF(hue, 0, 0.5);
|
||||
|
||||
qreal sat = 0;
|
||||
|
@ -66,48 +67,40 @@ void ThemeManager::actuallyUpdate(double hue, double multiplier)
|
|||
return QColor::fromHslF(h, s, ((l - 0.5) * multiplier) + 0.5, a);
|
||||
};
|
||||
|
||||
//#ifdef USEWINSDK
|
||||
// isLightTabs = isLight;
|
||||
// QColor tabFg = isLight ? "#000" : "#fff";
|
||||
// this->windowBg = isLight ? "#fff" : getColor(0, sat, 0.9);
|
||||
//#else
|
||||
isLightTabs = true;
|
||||
QColor tabFg = isLightTabs ? "#000" : "#fff";
|
||||
this->windowBg = "#fff";
|
||||
//#endif
|
||||
/// WINDOW
|
||||
{
|
||||
QColor bg = this->window.background = lightWin ? "#fff" : "#444";
|
||||
QColor fg = this->window.text = lightWin ? "#000" : "#eee";
|
||||
this->window.borderFocused = lightWin ? "#ccc" : themeColor;
|
||||
this->window.borderUnfocused = lightWin ? "#ccc" : themeColorNoSat;
|
||||
|
||||
// Ubuntu style
|
||||
// TODO: add setting for this
|
||||
// TabText = QColor(210, 210, 210);
|
||||
// TabBackground = QColor(61, 60, 56);
|
||||
// TabHoverText = QColor(210, 210, 210);
|
||||
// TabHoverBackground = QColor(73, 72, 68);
|
||||
// Ubuntu style
|
||||
// TODO: add setting for this
|
||||
// TabText = QColor(210, 210, 210);
|
||||
// TabBackground = QColor(61, 60, 56);
|
||||
// TabHoverText = QColor(210, 210, 210);
|
||||
// TabHoverBackground = QColor(73, 72, 68);
|
||||
|
||||
// message (referenced later)
|
||||
this->messages.textColors.caret = //
|
||||
this->messages.textColors.regular = isLight ? "#000" : "#fff";
|
||||
// message (referenced later)
|
||||
this->messages.textColors.caret = //
|
||||
this->messages.textColors.regular = isLight ? "#000" : "#fff";
|
||||
|
||||
// tabs
|
||||
// text, {regular, hover, unfocused}
|
||||
// this->windowBg = "#ccc";
|
||||
/// TABS
|
||||
// text, {regular, hover, unfocused}
|
||||
|
||||
this->tabs.border = "#999";
|
||||
this->tabs.regular = {tabFg, {windowBg, blendColors(windowBg, "#999", 0.5), windowBg}};
|
||||
|
||||
this->tabs.selected = {"#fff", {themeColor, themeColor, QColor::fromHslF(hue, 0, 0.5)}};
|
||||
|
||||
this->tabs.newMessage = {
|
||||
tabFg,
|
||||
{QBrush(blendColors(themeColor, windowBg, 0.7), Qt::FDiagPattern),
|
||||
QBrush(blendColors(themeColor, windowBg, 0.5), Qt::FDiagPattern),
|
||||
QBrush(blendColors(themeColorNoSat, windowBg, 0.7), Qt::FDiagPattern)}};
|
||||
|
||||
this->tabs.highlighted = {
|
||||
tabFg,
|
||||
{blendColors(themeColor, windowBg, 0.7), blendColors(themeColor, windowBg, 0.5),
|
||||
blendColors(themeColorNoSat, windowBg, 0.7)}};
|
||||
|
||||
// this->windowBg = "#fff";
|
||||
if (lightWin) {
|
||||
this->tabs.regular = {fg, {bg, "#ccc", bg}};
|
||||
this->tabs.newMessage = {fg, {bg, "#ccc", bg}};
|
||||
this->tabs.highlighted = {fg, {bg, "#ccc", bg}};
|
||||
this->tabs.selected = {"#fff", {"#333", "#333", "#666"}};
|
||||
} else {
|
||||
this->tabs.regular = {fg, {bg, "#555", bg}};
|
||||
this->tabs.newMessage = {fg, {bg, "#555", bg}};
|
||||
this->tabs.highlighted = {fg, {bg, "#555", bg}};
|
||||
// this->tabs.selected = {"#000", {themeColor, themeColor, themeColorNoSat}};
|
||||
this->tabs.selected = {"#000", {"#999", "#999", "#888"}};
|
||||
}
|
||||
}
|
||||
|
||||
// Split
|
||||
bool flat = isLight;
|
||||
|
|
|
@ -32,6 +32,15 @@ public:
|
|||
} backgrounds;
|
||||
};
|
||||
|
||||
/// WINDOW
|
||||
struct {
|
||||
QColor background;
|
||||
QColor text;
|
||||
QColor borderUnfocused;
|
||||
QColor borderFocused;
|
||||
} window;
|
||||
|
||||
/// TABS
|
||||
struct {
|
||||
TabColors regular;
|
||||
TabColors selected;
|
||||
|
@ -40,6 +49,7 @@ public:
|
|||
QColor border;
|
||||
} tabs;
|
||||
|
||||
/// SPLITS
|
||||
struct {
|
||||
QColor messageSeperator;
|
||||
QColor background;
|
||||
|
@ -64,6 +74,7 @@ public:
|
|||
} input;
|
||||
} splits;
|
||||
|
||||
/// MESSAGES
|
||||
struct {
|
||||
struct {
|
||||
QColor regular;
|
||||
|
@ -85,6 +96,7 @@ public:
|
|||
QColor selection;
|
||||
} messages;
|
||||
|
||||
/// SCROLLBAR
|
||||
struct {
|
||||
QColor background;
|
||||
QColor thumb;
|
||||
|
@ -93,14 +105,12 @@ public:
|
|||
// QColor highlights[3];
|
||||
} scrollbars;
|
||||
|
||||
/// TOOLTIP
|
||||
struct {
|
||||
QColor text;
|
||||
QColor background;
|
||||
} tooltip;
|
||||
|
||||
QColor windowBg;
|
||||
QColor windowText;
|
||||
|
||||
void normalizeColor(QColor &color);
|
||||
|
||||
void update();
|
||||
|
|
|
@ -160,12 +160,12 @@ void BaseWindow::themeRefreshEvent()
|
|||
{
|
||||
if (this->enableCustomFrame) {
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::Background, this->themeManager.windowBg);
|
||||
palette.setColor(QPalette::Foreground, this->themeManager.windowText);
|
||||
palette.setColor(QPalette::Background, this->themeManager.window.background);
|
||||
palette.setColor(QPalette::Foreground, this->themeManager.window.text);
|
||||
this->setPalette(palette);
|
||||
|
||||
for (RippleEffectButton *button : this->buttons) {
|
||||
button->setMouseEffectColor(this->themeManager.windowText);
|
||||
button->setMouseEffectColor(this->themeManager.window.text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -408,15 +408,22 @@ void BaseWindow::paintEvent(QPaintEvent *event)
|
|||
|
||||
bool windowFocused = this->window() == QApplication::activeWindow();
|
||||
|
||||
QLinearGradient gradient(0, 0, 10, 250);
|
||||
gradient.setColorAt(1, this->themeManager.tabs.selected.backgrounds.unfocused.color());
|
||||
// QLinearGradient gradient(0, 0, 10, 250);
|
||||
// gradient.setColorAt(1,
|
||||
// this->themeManager.tabs.selected.backgrounds.unfocused.color());
|
||||
|
||||
if (windowFocused) {
|
||||
gradient.setColorAt(.4, this->themeManager.tabs.selected.backgrounds.regular.color());
|
||||
} else {
|
||||
gradient.setColorAt(.4, this->themeManager.tabs.selected.backgrounds.unfocused.color());
|
||||
}
|
||||
painter.setPen(QPen(QBrush(gradient), 1));
|
||||
// if (windowFocused) {
|
||||
// gradient.setColorAt(.4,
|
||||
// this->themeManager.tabs.selected.backgrounds.regular.color());
|
||||
// } else {
|
||||
// gradient.setColorAt(.4,
|
||||
// this->themeManager.tabs.selected.backgrounds.unfocused.color());
|
||||
// }
|
||||
// painter.setPen(QPen(QBrush(gradient), 1));
|
||||
|
||||
QColor &border = windowFocused ? this->themeManager.window.borderFocused
|
||||
: this->themeManager.window.borderUnfocused;
|
||||
painter.setPen(QPen(QBrush(border), 1));
|
||||
|
||||
painter.drawRect(0, 0, this->width() - 1, this->height() - 1);
|
||||
}
|
||||
|
|
|
@ -17,11 +17,14 @@ namespace widgets {
|
|||
NotebookButton::NotebookButton(BaseWidget *parent)
|
||||
: RippleEffectButton(parent)
|
||||
{
|
||||
setMouseEffectColor(QColor(0, 0, 0));
|
||||
|
||||
this->setAcceptDrops(true);
|
||||
}
|
||||
|
||||
void NotebookButton::themeRefreshEvent()
|
||||
{
|
||||
this->setMouseEffectColor(this->themeManager.tabs.regular.text);
|
||||
}
|
||||
|
||||
void NotebookButton::paintEvent(QPaintEvent *)
|
||||
{
|
||||
QPainter painter(this);
|
||||
|
@ -30,15 +33,14 @@ void NotebookButton::paintEvent(QPaintEvent *)
|
|||
QColor foreground;
|
||||
|
||||
if (mouseDown || mouseOver) {
|
||||
background = this->themeManager.tabs.regular.backgrounds.regular.color();
|
||||
background = this->themeManager.tabs.regular.backgrounds.hover.color();
|
||||
foreground = this->themeManager.tabs.regular.text;
|
||||
} else {
|
||||
background = this->themeManager.tabs.regular.backgrounds.regular.color();
|
||||
foreground = QColor(70, 80, 80);
|
||||
foreground = this->themeManager.tabs.regular.text;
|
||||
}
|
||||
|
||||
painter.setPen(Qt::NoPen);
|
||||
// painter.fillRect(this->rect(), background);
|
||||
|
||||
float h = height(), w = width();
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ public:
|
|||
NotebookButton(BaseWidget *parent);
|
||||
|
||||
protected:
|
||||
virtual void themeRefreshEvent() override;
|
||||
virtual void paintEvent(QPaintEvent *) override;
|
||||
virtual void mouseReleaseEvent(QMouseEvent *) override;
|
||||
virtual void dragEnterEvent(QDragEnterEvent *) override;
|
||||
|
|
|
@ -209,13 +209,13 @@ void NotebookTab::paintEvent(QPaintEvent *)
|
|||
painter.fillRect(rect(), tabBackground);
|
||||
|
||||
// draw border
|
||||
painter.setPen(QPen("#ccc"));
|
||||
QPainterPath path(QPointF(0, height));
|
||||
path.lineTo(0, 0);
|
||||
path.lineTo(this->width() - 1, 0);
|
||||
path.lineTo(this->width() - 1, this->height() - 1);
|
||||
path.lineTo(0, this->height() - 1);
|
||||
painter.drawPath(path);
|
||||
// painter.setPen(QPen("#ccc"));
|
||||
// QPainterPath path(QPointF(0, height));
|
||||
// path.lineTo(0, 0);
|
||||
// path.lineTo(this->width() - 1, 0);
|
||||
// path.lineTo(this->width() - 1, this->height() - 1);
|
||||
// path.lineTo(0, this->height() - 1);
|
||||
// painter.drawPath(path);
|
||||
} else {
|
||||
// QPainterPath path(QPointF(0, height));
|
||||
// path.lineTo(8 * scale, 0);
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#include "titlebarbutton.hpp"
|
||||
|
||||
#include "singletons/thememanager.hpp"
|
||||
|
||||
namespace chatterino {
|
||||
namespace widgets {
|
||||
|
||||
|
@ -23,8 +25,8 @@ void TitleBarButton::paintEvent(QPaintEvent *)
|
|||
{
|
||||
QPainter painter(this);
|
||||
|
||||
QColor color = "#000";
|
||||
QColor background = "#fff";
|
||||
QColor color = this->themeManager.window.text;
|
||||
QColor background = this->themeManager.window.background;
|
||||
|
||||
int xD = this->height() / 3;
|
||||
int centerX = this->width() / 2;
|
||||
|
@ -59,7 +61,8 @@ void TitleBarButton::paintEvent(QPaintEvent *)
|
|||
break;
|
||||
}
|
||||
case User: {
|
||||
color = QColor("#333");
|
||||
// color = QColor("#333");
|
||||
color = "#999";
|
||||
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
painter.setRenderHint(QPainter::HighQualityAntialiasing);
|
||||
|
@ -85,7 +88,8 @@ void TitleBarButton::paintEvent(QPaintEvent *)
|
|||
break;
|
||||
}
|
||||
case Settings: {
|
||||
color = QColor("#333");
|
||||
// color = QColor("#333");
|
||||
color = "#999";
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
painter.setRenderHint(QPainter::HighQualityAntialiasing);
|
||||
|
||||
|
|
|
@ -414,7 +414,7 @@ void SplitContainer::paintEvent(QPaintEvent *)
|
|||
? this->themeManager.tabs.selected.backgrounds.regular
|
||||
: this->themeManager.tabs.selected.backgrounds.unfocused);
|
||||
|
||||
painter.fillRect(0, 0, width(), 2, accentColor);
|
||||
painter.fillRect(0, 0, width(), 1, accentColor);
|
||||
}
|
||||
|
||||
void SplitContainer::showEvent(QShowEvent *event)
|
||||
|
|
Loading…
Reference in a new issue