diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 57db82bf..3a2942c2 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -1696,8 +1696,6 @@ public: { SetIcon(wxICON(M_WND_ICON128)); - this->SetBackgroundColour(wxColour(0xFFFFFFFF)); - wxScrolledWindow* scrolledWindow = new wxScrolledWindow(this); wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); diff --git a/src/gui/components/wxGameList.cpp b/src/gui/components/wxGameList.cpp index 50a6254a..be8d3c70 100644 --- a/src/gui/components/wxGameList.cpp +++ b/src/gui/components/wxGameList.cpp @@ -358,16 +358,9 @@ long wxGameList::GetStyleFlags(Style style) const void wxGameList::UpdateItemColors(sint32 startIndex) { wxWindowUpdateLocker lock(this); - // get the background color so we can determine the theme in use - wxColour bgColour = GetBackgroundColour(); - uint32 bgLightness = (bgColour.GetRed() + bgColour.GetGreen() + bgColour.GetBlue()) / 3; - bool isDarkTheme = bgLightness < 128; - wxColour bgColourPrimary = bgColour; // color for odd rows - wxColour bgColourSecondary = bgColour.ChangeLightness(isDarkTheme ? 110 : 90); // color for even rows - // for very light themes we'll use a blue tint to match the older Windows Cemu look - if (bgLightness > 250) - bgColourSecondary = wxColour(bgColour.Red() - 13, bgColour.Green() - 6, bgColour.Blue() - 2); + wxColour bgColourPrimary = GetBackgroundColour(); + wxColour bgColourSecondary = wxHelper::CalculateAccentColour(bgColourPrimary); for (int i = startIndex; i < GetItemCount(); ++i) { @@ -1143,4 +1136,4 @@ bool wxGameList::QueryIconForTitle(TitleId titleId, int& icon, int& iconSmall) void wxGameList::DeleteCachedStrings() { m_name_cache.clear(); -} \ No newline at end of file +} diff --git a/src/gui/components/wxTitleManagerList.cpp b/src/gui/components/wxTitleManagerList.cpp index c00848c6..de1d8960 100644 --- a/src/gui/components/wxTitleManagerList.cpp +++ b/src/gui/components/wxTitleManagerList.cpp @@ -172,10 +172,11 @@ wxString wxTitleManagerList::OnGetItemText(long item, long column) const wxItemAttr* wxTitleManagerList::OnGetItemAttr(long item) const { - const auto entry = GetTitleEntry(item); - const wxColour kSecondColor{ 0xFDF9F2 }; - static wxListItemAttr s_coloured_attr(GetTextColour(), kSecondColor, GetFont()); - return item % 2 == 0 ? nullptr : &s_coloured_attr; + static wxColour bgColourPrimary = GetBackgroundColour(); + static wxColour bgColourSecondary = wxHelper::CalculateAccentColour(bgColourPrimary); + static wxListItemAttr s_primary_attr(GetTextColour(), bgColourPrimary, GetFont()); + static wxListItemAttr s_secondary_attr(GetTextColour(), bgColourSecondary, GetFont()); + return item % 2 == 0 ? &s_primary_attr : &s_secondary_attr; } boost::optional wxTitleManagerList::GetTitleEntry(long item) @@ -1274,4 +1275,4 @@ void wxTitleManagerList::ClearItems() void wxTitleManagerList::AutosizeColumns() { wxAutosizeColumns(this, ColumnTitleId, ColumnMAX - 1); -} \ No newline at end of file +} diff --git a/src/gui/input/panels/InputPanel.h b/src/gui/input/panels/InputPanel.h index 6ac15089..1c30333c 100644 --- a/src/gui/input/panels/InputPanel.h +++ b/src/gui/input/panels/InputPanel.h @@ -5,6 +5,8 @@ #include "input/emulated/EmulatedController.h" #include "input/api/Controller.h" +#include "gui/wxHelper.h" + class ControllerBase; class wxTextCtrl; class wxComboBox; @@ -12,9 +14,15 @@ class wxComboBox; class InputPanel : public wxPanel { public: +#if BOOST_OS_WINDOWS const wxColour kKeyColourNormalMode = 0xfafafa; const wxColour kKeyColourEditMode = 0x99ccff; const wxColour kKeyColourActiveMode = 0xE0E0E0; +#else + const wxColour kKeyColourNormalMode = GetBackgroundColour(); + const wxColour kKeyColourEditMode = GetBackgroundColour(); + const wxColour kKeyColourActiveMode = wxHelper::CalculateAccentColour(kKeyColourNormalMode); +#endif InputPanel(wxWindow* parent); diff --git a/src/gui/wxHelper.h b/src/gui/wxHelper.h index 753a5caf..41b13f5d 100644 --- a/src/gui/wxHelper.h +++ b/src/gui/wxHelper.h @@ -22,5 +22,16 @@ namespace wxHelper return wxString::FromUTF8(str.data(), str.size()); } + inline wxColour CalculateAccentColour(const wxColour& bgColour) + { + wxColour bgColourSecondary; + const uint32 bgLightness = (bgColour.GetRed() + bgColour.GetGreen() + bgColour.GetBlue()) / 3; + const bool isDarkTheme = bgLightness < 128; + bgColourSecondary = bgColour.ChangeLightness(isDarkTheme ? 110 : 90); // color for even rows + // for very light themes we'll use a blue tint to match the older Windows Cemu look + if (bgLightness > 250) + bgColourSecondary = wxColour(bgColour.Red() - 13, bgColour.Green() - 6, bgColour.Blue() - 2); + return bgColourSecondary; + } };