X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12a124ddc9f861d00370de1c7dfb660c53e6931b..3988b3e819a2e336b8fcd90214c949f61069279b:/src/generic/choicdgg.cpp diff --git a/src/generic/choicdgg.cpp b/src/generic/choicdgg.cpp index 3a97b383fc..612b285ba4 100644 --- a/src/generic/choicdgg.cpp +++ b/src/generic/choicdgg.cpp @@ -87,9 +87,13 @@ wxString wxGetSingleChoice( const wxString& message, wxWindow *parent, int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(centre), - int WXUNUSED(width), int WXUNUSED(height) ) + int WXUNUSED(width), int WXUNUSED(height), + int initialSelection) { wxSingleChoiceDialog dialog(parent, message, caption, n, choices); + + dialog.SetSelection(initialSelection); + wxString choice; if ( dialog.ShowModal() == wxID_OK ) choice = dialog.GetStringSelection(); @@ -103,26 +107,56 @@ wxString wxGetSingleChoice( const wxString& message, wxWindow *parent, int x, int y, bool centre, - int width, int height) + int width, int height, + int initialSelection) { wxString *choices; int n = ConvertWXArrayToC(aChoices, &choices); wxString res = wxGetSingleChoice(message, caption, n, choices, parent, - x, y, centre, width, height); + x, y, centre, width, height, + initialSelection); delete [] choices; return res; } +wxString wxGetSingleChoice( const wxString& message, + const wxString& caption, + const wxArrayString& choices, + int initialSelection, + wxWindow *parent) +{ + return wxGetSingleChoice(message, caption, choices, parent, + wxDefaultCoord, wxDefaultCoord, + true, wxCHOICE_WIDTH, wxCHOICE_HEIGHT, + initialSelection); +} + +wxString wxGetSingleChoice( const wxString& message, + const wxString& caption, + int n, const wxString *choices, + int initialSelection, + wxWindow *parent) +{ + return wxGetSingleChoice(message, caption, n, choices, parent, + wxDefaultCoord, wxDefaultCoord, + true, wxCHOICE_WIDTH, wxCHOICE_HEIGHT, + initialSelection); +} + int wxGetSingleChoiceIndex( const wxString& message, const wxString& caption, int n, const wxString *choices, wxWindow *parent, int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(centre), - int WXUNUSED(width), int WXUNUSED(height) ) + int WXUNUSED(width), int WXUNUSED(height), + int initialSelection) { wxSingleChoiceDialog dialog(parent, message, caption, n, choices); + + dialog.SetSelection(initialSelection); + int choice; if ( dialog.ShowModal() == wxID_OK ) choice = dialog.GetSelection(); @@ -138,17 +172,45 @@ int wxGetSingleChoiceIndex( const wxString& message, wxWindow *parent, int x, int y, bool centre, - int width, int height) + int width, int height, + int initialSelection) { wxString *choices; int n = ConvertWXArrayToC(aChoices, &choices); int res = wxGetSingleChoiceIndex(message, caption, n, choices, parent, - x, y, centre, width, height); + x, y, centre, width, height, + initialSelection); delete [] choices; return res; } +int wxGetSingleChoiceIndex( const wxString& message, + const wxString& caption, + const wxArrayString& choices, + int initialSelection, + wxWindow *parent) +{ + return wxGetSingleChoiceIndex(message, caption, choices, parent, + wxDefaultCoord, wxDefaultCoord, + true, wxCHOICE_WIDTH, wxCHOICE_HEIGHT, + initialSelection); +} + + +int wxGetSingleChoiceIndex( const wxString& message, + const wxString& caption, + int n, const wxString *choices, + int initialSelection, + wxWindow *parent) +{ + return wxGetSingleChoiceIndex(message, caption, n, choices, parent, + wxDefaultCoord, wxDefaultCoord, + true, wxCHOICE_WIDTH, wxCHOICE_HEIGHT, + initialSelection); +} + + void *wxGetSingleChoiceData( const wxString& message, const wxString& caption, int n, const wxString *choices, @@ -156,13 +218,17 @@ void *wxGetSingleChoiceData( const wxString& message, wxWindow *parent, int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(centre), - int WXUNUSED(width), int WXUNUSED(height) ) + int WXUNUSED(width), int WXUNUSED(height), + int initialSelection) { wxSingleChoiceDialog dialog(parent, message, caption, n, choices, - (char **)client_data); + client_data); + + dialog.SetSelection(initialSelection); + void *data; if ( dialog.ShowModal() == wxID_OK ) - data = dialog.GetSelectionClientData(); + data = dialog.GetSelectionData(); else data = NULL; @@ -176,18 +242,49 @@ void *wxGetSingleChoiceData( const wxString& message, wxWindow *parent, int x, int y, bool centre, - int width, int height) + int width, int height, + int initialSelection) { wxString *choices; int n = ConvertWXArrayToC(aChoices, &choices); void *res = wxGetSingleChoiceData(message, caption, n, choices, client_data, parent, - x, y, centre, width, height); + x, y, centre, width, height, + initialSelection); delete [] choices; return res; } +void* wxGetSingleChoiceData( const wxString& message, + const wxString& caption, + const wxArrayString& choices, + void **client_data, + int initialSelection, + wxWindow *parent) +{ + return wxGetSingleChoiceData(message, caption, choices, + client_data, parent, + wxDefaultCoord, wxDefaultCoord, + true, wxCHOICE_WIDTH, wxCHOICE_HEIGHT, + initialSelection); +} + +void* wxGetSingleChoiceData( const wxString& message, + const wxString& caption, + int n, const wxString *choices, + void **client_data, + int initialSelection, + wxWindow *parent) +{ + return wxGetSingleChoiceData(message, caption, n, choices, + client_data, parent, + wxDefaultCoord, wxDefaultCoord, + true, wxCHOICE_WIDTH, wxCHOICE_HEIGHT, + initialSelection); +} + + int wxGetSelectedChoices(wxArrayInt& selections, const wxString& message, const wxString& caption, @@ -370,35 +467,12 @@ END_EVENT_TABLE() IMPLEMENT_DYNAMIC_CLASS(wxSingleChoiceDialog, wxDialog) -wxSingleChoiceDialog::wxSingleChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, - const wxString *choices, - char **clientData, - long style, - const wxPoint& WXUNUSED(pos)) -{ - Create(parent, message, caption, n, choices, clientData, style); -} - -wxSingleChoiceDialog::wxSingleChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - char **clientData, - long style, - const wxPoint& WXUNUSED(pos)) -{ - Create(parent, message, caption, choices, clientData, style); -} - bool wxSingleChoiceDialog::Create( wxWindow *parent, const wxString& message, const wxString& caption, int n, const wxString *choices, - char **clientData, + void **clientData, long style, const wxPoint& pos ) { @@ -422,7 +496,7 @@ bool wxSingleChoiceDialog::Create( wxWindow *parent, const wxString& message, const wxString& caption, const wxArrayString& choices, - char **clientData, + void **clientData, long style, const wxPoint& pos ) { @@ -434,6 +508,9 @@ bool wxSingleChoiceDialog::Create( wxWindow *parent, // Set the selection void wxSingleChoiceDialog::SetSelection(int sel) { + wxCHECK_RET( sel >= 0 && (unsigned)sel < m_listbox->GetCount(), + "Invalid initial selection" ); + m_listbox->SetSelection(sel); m_selection = sel; }