X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/59bd9598bc9a092dd51cbd8cfc1aa37299a8cd61..5adad46628e545a6d4172ecf3a0cb848934f5cd0:/src/generic/choicdgg.cpp diff --git a/src/generic/choicdgg.cpp b/src/generic/choicdgg.cpp index 2e0df746a8..f97e674d19 100644 --- a/src/generic/choicdgg.cpp +++ b/src/generic/choicdgg.cpp @@ -28,6 +28,8 @@ #pragma hdrstop #endif +#if wxUSE_CHOICEDLG + #ifndef WX_PRECOMP #include #include "wx/utils.h" @@ -81,9 +83,10 @@ int ConvertWXArrayToC(const wxArrayString& aChoices, wxString **choices) { int n = aChoices.GetCount(); *choices = new wxString[n]; + for ( int i = 0; i < n; i++ ) { - *choices[i] = aChoices[i]; + (*choices)[i] = aChoices[i]; } return n; @@ -166,6 +169,23 @@ int wxGetSingleChoiceIndex( const wxString& message, return choice; } +int wxGetSingleChoiceIndex( const wxString& message, + const wxString& caption, + const wxArrayString& aChoices, + wxWindow *parent, + int x, int y, + bool centre, + int width, int height) +{ + wxString *choices; + int n = ConvertWXArrayToC(aChoices, &choices); + int res = wxGetSingleChoiceIndex(message, caption, n, choices, parent, + x, y, centre, width, height); + delete [] choices; + + return res; +} + #ifdef WXWIN_COMPATIBILITY_2 // Overloaded for backward compatibility int wxGetSingleChoiceIndex( const wxString& message, @@ -194,7 +214,8 @@ void *wxGetSingleChoiceData( const wxString& message, bool WXUNUSED(centre), int WXUNUSED(width), int WXUNUSED(height) ) { - wxSingleChoiceDialog dialog(parent, message, caption, n, choices, (char **)client_data); + wxSingleChoiceDialog dialog(parent, message, caption, n, choices, + (char **)client_data); void *data; if ( dialog.ShowModal() == wxID_OK ) data = dialog.GetSelectionClientData(); @@ -204,6 +225,25 @@ void *wxGetSingleChoiceData( const wxString& message, return data; } +void *wxGetSingleChoiceData( const wxString& message, + const wxString& caption, + const wxArrayString& aChoices, + void **client_data, + wxWindow *parent, + int x, int y, + bool centre, + int width, int height) +{ + wxString *choices; + int n = ConvertWXArrayToC(aChoices, &choices); + void *res = wxGetSingleChoiceData(message, caption, n, choices, + client_data, parent, + x, y, centre, width, height); + delete [] choices; + + return res; +} + #ifdef WXWIN_COMPATIBILITY_2 // Overloaded for backward compatibility void *wxGetSingleChoiceData( const wxString& message, @@ -238,6 +278,10 @@ size_t wxGetMultipleChoices(wxArrayInt& selections, int WXUNUSED(width), int WXUNUSED(height)) { wxMultiChoiceDialog dialog(parent, message, caption, n, choices); + + if ( !selections.IsEmpty() ) + dialog.SetSelections(selections); + if ( dialog.ShowModal() == wxID_OK ) selections = dialog.GetSelections(); else @@ -481,3 +525,5 @@ bool wxMultiChoiceDialog::TransferDataFromWindow() return TRUE; } + +#endif // wxUSE_CHOICEDLG