This is not a duplicate of How to set SWT button foreground color?. It’s more like a follow up. I wrote follow-up questions as comments, but did not get any responses, so I thought I’d try to put it up as a question, and hopefully some expert will see it.
As is pointed in the referenced question, windows native button widgets do not support setting the foreground color (in fact, after more further research (more like experiments), it’s been revealed that setForeground() works under the Classic Theme, but not others).
The answer/suggestion given in the referenced question is a good one (a.k.a providing a paint listener and drawing over the text with the correct color). I gave it a whirl but ran into a world of problems trying to decide the coordinate at which to draw the text:
It appears that – in addition to SWT attributes like alignment etc. – Windows has some rather hard-to-figure-out rule of deciding the location of the text. What makes it worse is that the location appears to be dependent on the windows theme in effect. Since I need to draw the text exactly over the natively-drawn windows text in order to override the color, this is a huge problem.
Please, can someone provide some much-needed help here? It’d be greatly appreciated!
Thank you!
In the end, I decided to implement it as a custom Composite with a checkbox/radio button and a label. Not ideal, but I’ll have to make do.