-
Notifications
You must be signed in to change notification settings - Fork 426
feat(themes): windows dark mode support #2714
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
nicklafleur
wants to merge
11
commits into
pyfa-org:master
Choose a base branch
from
nicklafleur:nicklafleur/windows_dark_mode
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat(themes): windows dark mode support #2714
nicklafleur
wants to merge
11
commits into
pyfa-org:master
from
nicklafleur:nicklafleur/windows_dark_mode
+804
−108
Conversation
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
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. |
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: