Hi d7_2_laz, I did some modifications and adds to "your" (now "ours") uwin32widgetsetdark.pas (also noted in top of file):
- 20230330 E@T: Mod TStatusBar
- 20230330 E@T: Add DoLog
- 20230330 E@T: Mod All RGBToColor(255, 255, 255) to RGBToColor(245, 245, 245)
- 20230330 E@T: Add TP_SPLITBUTTON, TP_SPLITBUTTONDROPDOWN (and DrawUpDownArrow)
- 20230331 d7_2_laz: Add ListView in InterceptOpenThemeData
- 20230331 E@T: Add TWin32WSCustomListViewDark
- 20230331 E@T: Add teListView in DrawThemeBackgroundDark
- 20230331 E@T: Add DrawListViewHeader in InterceptDrawThemeBackground
If you do a file compare then you see it all.
Functional:
- StatusBar did not draw the separators.
- I think the light texts are to light, I modified them from clear white to a little less white.
- The ToolBar DropDown button did not have the DropDown and arrow; added those.
- ListView is now completely "darkened" from within uwin32widgetsetdark.pas. You don't have to call SetWindowTheme(ListView1.Handle, 'DarkMode_Explorer', NIL) and colors in your unit anymore.
- ListView's header is now not white, not dark, but a little dark. I did not find a correct way to modify the header text color, but black on 'a little dark' is readable.
It's fun to modify uwin32widgetsetdark. I'm beginning to understand the code. Maybe we should post it to github.com/doublecmd but I've never put something on GitHub...
I tried this code on the Lazarus IDE (like a post in this form about darkening the IDE with qt5). It works but the problem is that all applications made in Lazarus now default have the dark colors. That's not what I want so I'm back on Lazarus+qt5. It looks good.
I've attached the code (zip) and an image, let's see how this works to show them in this post.
Regards, Erik
PS, maybe these links are usefull (ListView):
https://github.com/ysc3839/win32-darkmode/blob/master/win32-darkmode/ListViewUtil.hhttps://osdn.net/projects/tortoisesvn/scm/svn/blobs/28786/trunk/src/Utils/Theme.cpp