Handling unsupported widgets/properties in wxPython and XRC
Description:
With XRC, if wxUiEditor supports a control and/or properties that XRC doesn't support, a comment is made to that effect in the XRC panel display (which is removed when the XRC file is written).
It's more complicated with Python, because you can end up with non-working UI. For example, wxPython does not (as of 4.2.0) support using a control in place of a label for wxStaticBox -- which means you cannot have a wxStaticBoxSizer with a checkbox or radiobutton as the label, but you can in both C++ and XRC.
The other issue is that the Mockup panel only shows what the UI looks like using C++ -- which is incorrect if one or more elements are not supported in XRC or Python. In some cases, we should be able to adjust the display based on the prop_code_preference of the current project, though if the user sets it to any then it is effectively only showing C++ code.
I don't have a good solution in mind for this problem -- I'm just adding the issue now to refer to.
wxRearrangeCtrl is supported by C++ and Python, but not supported by XRC. Currently this control is simply ignored when generating XRC, which means there is nothing to indicate to the user that XRC doesn't support it.
Once the hidden and magnify toolbar buttons become part of the Mockup panel, we could add a dropdown menu that let's the user choose which language to Mockup (C++, Python, Ruby, XRC). C++ would be the default.