// first the label
const wxString stringTmp = GetString(pos1);
SetString(pos1, GetString(pos2));
- Check(pos1, IsChecked(pos2));
+ SetString(pos2, stringTmp);
// then the checked state
const bool checkedTmp = IsChecked(pos1);
- SetString(pos2, stringTmp);
+ Check(pos1, IsChecked(pos2));
Check(pos2, checkedTmp);
// and finally the client data, if necessary
case wxClientData_Object:
{
- wxClientData * const dataTmp = GetClientObject(pos1);
- SetClientObject(pos1, GetClientObject(pos2));
+ wxClientData * const dataTmp = DetachClientObject(pos1);
+ SetClientObject(pos1, DetachClientObject(pos2));
SetClientObject(pos2, dataTmp);
}
break;
// notice that the items in this sizer should be inserted accordingly to
// wxRearrangeDialogSizerPositions order
wxSizer * const sizerTop = new wxBoxSizer(wxVERTICAL);
- sizerTop->Add(new wxStaticText(this, wxID_ANY, message),
- wxSizerFlags().Border());
+
+ if ( !message.empty() )
+ {
+ sizerTop->Add(new wxStaticText(this, wxID_ANY, message),
+ wxSizerFlags().Border());
+ }
+ else
+ {
+ // for convenience of other wxRearrangeDialog code that depends on
+ // positions of sizer items, insert a dummy zero-sized item
+ sizerTop->AddSpacer(0);
+ }
+
sizerTop->Add(m_ctrl,
wxSizerFlags(1).Expand().Border());
sizerTop->Add(CreateSeparatedButtonSizer(wxOK | wxCANCEL),