checked_set (wxFilePickerCtrl* widget, string value)
{
if (widget->GetPath() != std_to_wx (value)) {
+ if (value.empty()) {
+ /* Hack to make wxWidgets clear the control when we are passed
+ an empty value.
+ */
+ value = " ";
+ }
widget->SetPath (std_to_wx (value));
}
}
checked_set (wxComboBox* widget, int value)
{
if (widget->GetSelection() != value) {
- widget->SetSelection (value);
+ if (value == wxNOT_FOUND) {
+ /* Work around an apparent wxWidgets bug; SetSelection (wxNOT_FOUND)
+ appears not to work sometimes.
+ */
+ widget->SetValue (wxT (""));
+ } else {
+ widget->SetSelection (value);
+ }
}
}
void
checked_set (wxComboBox* widget, string value)
{
- wxClientData* o = widget->GetClientObject (widget->GetSelection ());
+ wxClientData* o = 0;
+ if (widget->GetSelection() != -1) {
+ o = widget->GetClientObject (widget->GetSelection ());
+ }
if (!o || string_client_data(o) != value) {
for (unsigned int i = 0; i < widget->GetCount(); ++i) {