Open MartinL0815 opened 9 years ago
Thank you for reporting the issue. We have not used high contrast modes (as you can clearly tell).
We built our theming to try and line up with Visual Studio's behavior - which supports both light and dark modes. The first option on the first dialog screen is to choose the Theme. By default it is set to auto-detect (i.e. pick up Visual Studio's dominant background color, and then choose dark or light). The other two options are correspondingly, dark and light.
The options dialog, in particular, is something that does not theme at all. This matches with Visual Studio's options dialog, which always has the same gray/white regardless of the active theme.
I would like to support the high contrast use case. It may take some time to address it, so please feel free to help contribute if you would like to expedite better support. If you could please subscribe to this thread, I can post screenshots along the way of how it is shaping up. Also, please let me know if there are other areas you encounter with CodeMaid that also need addressed.
Thanks Steve,
for your reply.
While the Visual Studio internal theming does not change the look of the options dialog or other dialogs, the high-contrast-mode does change it:
MSDN tells, that such accessibility helpers like high-contrast-mode are mandatory, so every application should let those high-contrast-mode colors (dark or light) override its own, should change its "outfit" and so Visual Studio does!
Our UI library checks for a high-contrast-mode and lets its VisualManagers adapt the mandatory system color usage and changed visualization of the controls:
m_bIsBlackHighContrast =
::GetSysColor (COLOR_3DLIGHT) == RGB (255, 255, 255) &&
::GetSysColor (COLOR_3DFACE) == RGB (0, 0, 0);
m_bIsWhiteHighContrast =
::GetSysColor (COLOR_3DDKSHADOW) == RGB (0, 0, 0) &&
::GetSysColor (COLOR_3DFACE) == RGB (255, 255, 255);
BOOL IsHighContastMode () const
{
return m_bIsWhiteHighContrast || m_bIsBlackHighContrast;
}
The CodeMaid options dialog should test for a high-contrast-mode, too. If detected, than the Visual Studio theming colors are unimportant and the system colors are to be used!
Taking a look at the screenshot of the CodeMaid dialog I wonder, if the usage of Visual Studio theme colors is complete, since the edit controls colors and the font color of the dialog are not explicitly changed and are already high-contrast-mode compatible!
I try to get involved in fixing this, by expertise, by reviewing in my private time.
Thanks in advance!
Best regards,
Martin
Hi,
since needing to switch to a dark high-contrast-mode, I have some problems with some applications.
One application I use is CodeMaid, which has some issues as well.
::GetSysColor(COLOR_WINDOW)
, which would be black in my case using high-contrast-theme #1. The text color should be::GetSysColor(COLOR_WINDOW_TEXT)
, which is already yellow in my case. The edit controls are already painted using the right colors.If I talk about something difficult or unusable for "me", than please think of all the other people with eye disabilities needing to use high-contrast-themes provided by Windows, which have an overriding semantic, which means ... the usage of the system color is mandatory in the case of high-contrast-theming!
Best regards,
Martin