X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/debe6624c1e9d4bf3243381153d1e173c849bcd8..1a6ed3711fa1c1032b1761c66067bec5558c9b77:/src/generic/choicdgg.cpp?ds=sidebyside diff --git a/src/generic/choicdgg.cpp b/src/generic/choicdgg.cpp index ee1280ca39..3758f96020 100644 --- a/src/generic/choicdgg.cpp +++ b/src/generic/choicdgg.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: choicesg.cpp +// Name: choicdgg.cpp // Purpose: Choice dialogs // Author: Julian Smart // Modified by: @@ -33,7 +33,38 @@ #include "wx/generic/choicdgg.h" -extern void wxSplitMessage2(const char *message, wxList *messageList, wxWindow *parent, wxRowColSizer *sizer); +// Split message, using constraints to position controls +static void wxSplitMessage2(const wxChar *message, wxList *messageList, wxWindow *parent, wxRowColSizer *sizer) +{ + wxChar *copyMessage = copystring(message); + size_t i = 0; + size_t len = wxStrlen(copyMessage); + wxChar *currentMessage = copyMessage; + +// wxWindow *lastWindow = parent; + + while (i < len) { + while ((i < len) && (copyMessage[i] != _T('\n'))) i++; + if (i < len) copyMessage[i] = 0; + wxStaticText *mess = new wxStaticText(parent, -1, currentMessage); + +/* + wxLayoutConstraints *c = new wxLayoutConstraints; + c->left.SameAs (parent, wxLeft, 10); + c->top.SameAs (lastWindow, wxBottom, 5); + c->right.AsIs (); + c->height.AsIs (); + + mess->SetConstraints(c); +*/ + sizer->AddSizerChild(mess); + + messageList->Append(mess); + + currentMessage = copyMessage + i + 1; + } + delete[] copyMessage; +} wxString wxGetSingleChoice( const wxString& message, const wxString& caption, int n, const wxString *choices, wxWindow *parent, @@ -83,7 +114,7 @@ int wxGetSingleChoiceIndex( const wxString& message, const wxString& caption, in // Overloaded for backward compatibility int wxGetSingleChoiceIndex( const wxString& message, const wxString& caption, int n, - char *choices[], wxWindow *parent, + wxChar *choices[], wxWindow *parent, int x, int y, bool centre, int width, int height ) { @@ -99,10 +130,10 @@ int wxGetSingleChoiceIndex( const wxString& message, const wxString& caption, in return ans; } -char *wxGetSingleChoiceData( const wxString& message, const wxString& caption, int n, - const wxString *choices, char **client_data, wxWindow *parent, - int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(centre), - int WXUNUSED(width), int WXUNUSED(height) ) +wxChar *wxGetSingleChoiceData( const wxString& message, const wxString& caption, int n, + const wxString *choices, wxChar **client_data, wxWindow *parent, + int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(centre), + int WXUNUSED(width), int WXUNUSED(height) ) { wxSingleChoiceDialog dialog(parent, message, caption, n, choices, client_data); if ( dialog.ShowModal() == wxID_OK ) @@ -114,10 +145,10 @@ char *wxGetSingleChoiceData( const wxString& message, const wxString& caption, i } // Overloaded for backward compatibility -char *wxGetSingleChoiceData( const wxString& message, const wxString& caption, int n, - char *choices[], char **client_data, wxWindow *parent, - int x, int y, bool centre, - int width, int height ) +wxChar *wxGetSingleChoiceData( const wxString& message, const wxString& caption, int n, + wxChar *choices[], wxChar **client_data, wxWindow *parent, + int x, int y, bool centre, + int width, int height ) { wxString *strings = new wxString[n]; int i; @@ -125,7 +156,7 @@ char *wxGetSingleChoiceData( const wxString& message, const wxString& caption, i { strings[i] = choices[i]; } - char *data = wxGetSingleChoiceData(message, caption, n, (const wxString *)strings, client_data, parent, + wxChar *data = wxGetSingleChoiceData(message, caption, n, (const wxString *)strings, client_data, parent, x, y, centre, width, height); delete[] strings; return data; @@ -171,21 +202,21 @@ IMPLEMENT_CLASS(wxSingleChoiceDialog, wxDialog) #endif wxSingleChoiceDialog::wxSingleChoiceDialog(wxWindow *parent, const wxString& message, const wxString& caption, - int n, const wxString *choices, char **clientData, long style, const wxPoint& pos): - wxDialog(parent, -1, caption, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL) + int n, const wxString *choices, wxChar **clientData, long style, const wxPoint& pos): + wxDialog(parent, -1, caption, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL|wxTAB_TRAVERSAL) { Create(parent, message, caption, n, choices, clientData, style); } wxSingleChoiceDialog::wxSingleChoiceDialog(wxWindow *parent, const wxString& message, const wxString& caption, - const wxStringList& choices, char **clientData, long style, const wxPoint& pos): + const wxStringList& choices, wxChar **clientData, long style, const wxPoint& pos): wxDialog(parent, -1, caption, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL) { Create(parent, message, caption, choices, clientData, style); } bool wxSingleChoiceDialog::Create(wxWindow *parent, const wxString& message, const wxString& caption, - const wxStringList& choices, char **clientData, long style, const wxPoint& pos) + const wxStringList& choices, wxChar **clientData, long style, const wxPoint& pos) { wxString *strings = new wxString[choices.Number()]; int i; @@ -200,12 +231,12 @@ bool wxSingleChoiceDialog::Create(wxWindow *parent, const wxString& message, con bool wxSingleChoiceDialog::Create( wxWindow *WXUNUSED(parent), const wxString& message, const wxString& WXUNUSED(caption), int n, - const wxString *choices, char **clientData, long style, + const wxString *choices, wxChar **clientData, long style, const wxPoint& WXUNUSED(pos) ) { m_dialogStyle = style; m_selection = 0; - m_stringSelection = ""; + m_stringSelection = _T(""); m_clientData = NULL; wxBeginBusyCursor(); @@ -214,7 +245,7 @@ bool wxSingleChoiceDialog::Create( wxWindow *WXUNUSED(parent), const wxString& m topSizer->SetBorder(10, 10); wxRowColSizer *messageSizer = new wxRowColSizer(topSizer, wxSIZER_COLS, 100); - messageSizer->SetName("messageSizer"); + messageSizer->SetName(_T("messageSizer")); // bool centre = ((style & wxCENTRE) == wxCENTRE); @@ -238,7 +269,7 @@ bool wxSingleChoiceDialog::Create( wxWindow *WXUNUSED(parent), const wxString& m wxRowColSizer *listBoxSizer = new wxRowColSizer(topSizer, wxSIZER_ROWS); listBoxSizer->AddSizerChild(listBox); - listBoxSizer->SetName("listBoxSizer"); + listBoxSizer->SetName(_T("listBoxSizer")); // Create constraints for the text sizer wxLayoutConstraints *textC = new wxLayoutConstraints; @@ -248,11 +279,12 @@ bool wxSingleChoiceDialog::Create( wxWindow *WXUNUSED(parent), const wxString& m // Insert another spacer wxSpacingSizer *spacingSizer2 = new wxSpacingSizer(topSizer, wxBelow, listBoxSizer, 10); - spacingSizer->SetName("spacingSizer2"); + spacingSizer->SetName(_T("spacingSizer2")); // Insert a sizer for the buttons wxRowColSizer *buttonSizer = new wxRowColSizer(topSizer, wxSIZER_ROWS); - buttonSizer->SetName("buttonSizer"); + buttonSizer->SetName(_T("buttonSizer")); + buttonSizer->SetSpacing(12,0); // Specify constraints for the button sizer wxLayoutConstraints *c = new wxLayoutConstraints; @@ -266,12 +298,12 @@ bool wxSingleChoiceDialog::Create( wxWindow *WXUNUSED(parent), const wxString& m wxButton *cancel = NULL; if (style & wxOK) { - ok = new wxButton(this, wxID_OK, _("OK")); + ok = new wxButton(this, wxID_OK, _("OK"), wxDefaultPosition, wxSize(75,-1) ); buttonSizer->AddSizerChild(ok); } if (style & wxCANCEL) { - cancel = new wxButton(this, wxID_CANCEL, _("Cancel")); + cancel = new wxButton(this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize(75,-1)); buttonSizer->AddSizerChild(cancel); } @@ -307,7 +339,7 @@ void wxSingleChoiceDialog::OnOK(wxCommandEvent& WXUNUSED(event)) { m_selection = listBox->GetSelection(); m_stringSelection = listBox->GetStringSelection(); - m_clientData = listBox->GetClientData(m_selection); + m_clientData = (wxChar*)listBox->GetClientData(m_selection); } EndModal(wxID_OK); @@ -320,7 +352,7 @@ void wxSingleChoiceDialog::OnListBoxDClick(wxCommandEvent& WXUNUSED(event)) { m_selection = listBox->GetSelection(); m_stringSelection = listBox->GetStringSelection(); - m_clientData = listBox->GetClientData(m_selection); + m_clientData = (wxChar*)listBox->GetClientData(m_selection); } EndModal(wxID_OK);