feat(themes): windows dark mode support#2714
Draft
nicklafleur wants to merge 11 commits intopyfa-org:masterfrom
Draft
feat(themes): windows dark mode support#2714nicklafleur wants to merge 11 commits intopyfa-org:masterfrom
nicklafleur wants to merge 11 commits intopyfa-org:masterfrom
Conversation
Add ThemeSettings class with THEME_SYSTEM, THEME_DARK, THEME_LIGHT modes. Fix SettingsProvider.BASE_PATH lazy initialization for early settings access. Add dark mode detection: usePyfaDark(), useSystemColors(), isDark(). Add setWindowsDarkMode() and setDarkTitleBar() for Windows dark mode APIs. Add Colors class with theme-aware color methods for all UI elements. Add ThemedPanel, ThemedDialog, ThemedFrame base classes for auto-theming.
Set background/foreground colors via Colors class on MainFrame. Apply dark title bar on Windows via setDarkTitleBar(). Update AuxiliaryMixin to use Colors.buttonFace() and Colors.text().
Convert PreferenceDialog, CopySelectDialog, UpdateDialog, SsoLogin, FitBrowserLiteDialog, SecStatusDialog, WaitDialog, and context menu dialogs to use ThemedDialog base class for dark mode support.
Convert MarketBrowser, ShipBrowser, StatsPane, CharacterSelection to ThemedPanel. Apply Colors to ship browser items, item stats views, chrome tabs, display. Update toggle panel, fitting view, implant editor with theme colors.
Apply Colors.styleInput() to TextCtrl, Choice, ComboBox controls. On Windows, native controls ignore SetBackgroundColour due to visual styles. styleInput() calls SetWindowTheme() via ctypes to disable native theming, allowing custom dark backgrounds to render correctly. Apply theme colors to MarketTree, preference views, ESI fittings.
Add _styleAxes() for matplotlib dark/light mode styling. Apply Colors to graph canvas, control panel, vector picker. Update style pickers and line style icons for theme awareness.
Add theme dropdown to General preferences (System Default, Pyfa Dark, Light). Prompt user to restart when theme changes. Apply Colors.gaugeBackground() to PyGauge and AttributeGauge.
d5e7227 to
50f349d
Compare
Author
|
can't seem to see exactly what the macos build failure logs are, would appreciate some help with retrieving those since it builds on my end. Also I'm continuing to look into whether there are non-insane ways to get the menu bar and friends to actually go dark mode. happy to hold until then but figured it could also come as a fast-follow. |
Author
|
converting to draft as I'm finding some improperly themed text |
Member
|
When you are done, pls poke me on discord |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#1206
Changes Include:
Known Issues: