A dedicated place for this excellent tool would be really nice indeed. Every time i post within this specific thread i've a bad feeling, as it's no Lazarus topic in the strict sense and somebody might be bothered by off-topic stuff.
Hi Erik, great approach!
Ah, i see the difference (actually looking onto the listview). Apparently there might be reasons to take a separate header control (for me that would impact existing stuff too much).
For an 'esisting' header the background brush is dimmed down, so that the black font keeps somehow to be readable.
That's surely a possible solution - better anyway than empty black bars
- and suitable for many projects
But the sort indicator - if set - goes lost, will visually disappear, bad
For that reason i'd rather stay at the 'ItemsView::Header' approach if the text color only could be changed.
If there's now already a 'TWin32WSCustomListViewDark' intoduced, probably an own subclassed windowproc will be needed, i fear.
One reason i hoped to avoid this is that it possibly might interfere with a component's own builtin listview subclassing. But i don't know yet. Proabably there's no way around (the subclass shouldn't touch the default windowproc unless notifications reagarding the header's text color is referred to).
Regarding Double Commander, it should be taken into account that it doesn't use a listview, so this is not in their scope.
My main and only concerns at that stage would be:
- (Needed:) good readable listview's column headers -> without loosing a sort indicator
- (Liked:) app-wise controlling dark on/off (eg. via an ini key). This is still a bit unfocused. Erik, I think, that would be needed for you IDE problem too.
Actually i'm using IFDEFs (using a file 'set_USE_DARKMODE.INC' for to switch). Results in to exe's; light, dark. There should be a better way.
@zamtmn, do your files already handle this eg. via udarkstyleparams.pas?