eranif / codelite

A multi purpose IDE specialized in C/C++/Rust/Python/PHP and Node.js. Written in C++
https://codelite.org
GNU General Public License v2.0
2.08k stars 444 forks source link

[Bug]: Black theme does not work in CodeLite under Windows 7 #3325

Closed yunkot closed 3 months ago

yunkot commented 3 months ago

What happened?

Selecting Dark theme in CodeLite does not work on Windows 7, either when selected in Welcome Screen, or changed manually in options ("Force dark" option in Colors) afterwards - CodeLite appears white regardless.

The last version, where such option worked was CodeLite 16.7, in CodeLite 16.8 it stopped working.

Version

CodeLite 16.8 or later

Operating system

Windows 7 SP1 64-bit

eranif commented 3 months ago

I just realized that you are talking about Windows 7 -> this is not supported by wxWidgets (IIRC, Windows itself does not support it). So this wont get fixed

yunkot commented 3 months ago

But "Dark Theme" have been working successfully in CodeLite up until version of 16.7 (December 10, 2022). Are you sure wxWidgets does not support Windows 7 anymore? I can't find any information about this.

Assuming the above, I am trying to build CodeLite with wxWidgets 3.2.1, but it fails with:

D:\msys64\home\ynkot\codelite\Plugin\drawingutils.cpp:409:48: error: no member named 'SelectLightDark' in 'clSystemSettings'
  409 |     wxColour darkPen = clSystemSettings::Get().SelectLightDark(bgColour.ChangeLightness(95), *wxBLACK);

wxWidgets 3.2.1 was released in second half of 2022, so roughly a year and half ago, shouldn't CodeLite still support it? Especially because it still might be used on non-latest versions of Ubuntu/Debian?

eranif commented 3 months ago

It does not matter. The new dark theme is now using Windows native API - which is not supported by Windows 7

yunkot commented 3 months ago

Thanks for clarifying this. This is sad news, because CodeLite is a strong option for development on Windows 7 (for Windows 10+, there is always newest version of Visual Studio). I myself have to use it occasionally there to target and debug older industrial systems, down to Windows NT 4.0 (using latest GCC with a special C runtime) - as surprising as it may sound, there are still few of these around used in production environments.

After the crash in #3323 has been fixed, I was really excited to be able to update from CodeLite 14, but that unusually white theme is really hard on the eyes, and I'm unable to use versions of CodeLite between 14.02 and 15 because there were some regressions that have been fixed last year.

It would have been great if CodeLite would focus on dark theme, with white theme being optional and specific to Windows 10+.

AJenbo commented 4 weeks ago

@yunkot you could produce a dll wrapper that provides the Windows theme API calls used by CodeLite, and just responds with the values Windows 10 would if set to a dark theme.