BOINC / boinc

Open-source software for volunteer computing and grid computing.
https://boinc.berkeley.edu
GNU Lesser General Public License v3.0
2k stars 445 forks source link

[BOINC][Simple View] Computing Preferences text background doesn't match window color #4951

Open Vulpine05 opened 2 years ago

Vulpine05 commented 2 years ago

Describe the bug Under simple view's computing preferences, the background text color for any checkbox text is a gray color, but the background is white. Text without a checkbox appears to have the same background color.

Expected behavior Text background color should be consistent, with or without text.

Screenshots image

System Information

Additional context Walking the code, I see there is a difference in the checkbox class that is used between advanced and simple modes. For simple mode, these check boxes are using the class CTransparentCheckBox, which is defined in sg_CustomControls, and is dependent on the wxCheckBox class. For advanced view, the checkboxes for preferences all use wxCheckBox.

The easy solution, I think, would be to switch all CTransparentCheckBox to wxCheckBox. However, I'm assuming there is a reason this custom check box was made in the first place.

CharlieFenton commented 2 years ago

CTransparentCheckBox and other CTransparent*classes are used in the Simple View preferences dialog because skins have the option of specifying a bitmap for the background of this dialog using the XML tag _dialog_backgroundimage in the skin.xml file as described here. The default BOINC skin does not use this option, so its background is white.

FWIW, This is not an issue on MacOS; the backgrounds of the checkboxes are consistent with other text:

Screen Shot 2022-10-05 at 2 31 13 AM
AenBleidd commented 2 years ago

I'll check this, but as far as I remember, OSX and Windows are fine and fixable, but linux just doesn't support UI components with transparent background. I plan to work on this and somehow fix this behavior but it's definitely not in a near future :)

CharlieFenton commented 2 years ago

Just to clarify:

The default BOINC skin does not use this option, so its background is white.

But some branded versions of BOINC, such as GridRepublic and CharityEngine do use the _dialog_backgroundimage XML tag to specify a bitmap as the background for the Simple View preferences dialog. Older versions of World Community Grid also did. In addition, numerous custom skins have been created and shared by users; some of these may also use this option.

Changing the CTransparentCheckBox calls to wxCheckBox would cause problems for those skins.