X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/15b24b148ad8ceadc501893ce34df3867f519a41..8c517ddd1a2dd7eee7f95eb9ac1783f4a2e6fd76:/src/generic/msgdlgg.cpp diff --git a/src/generic/msgdlgg.cpp b/src/generic/msgdlgg.cpp index d2339efb44..2f4aeb5425 100644 --- a/src/generic/msgdlgg.cpp +++ b/src/generic/msgdlgg.cpp @@ -6,7 +6,7 @@ // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart, Markus Holzem, Robert Roebling -// Licence: wxWindows license +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -21,13 +21,11 @@ #endif #ifndef WX_PRECOMP -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/stattext.h" -#include "wx/layout.h" -#include "wx/intl.h" + #include "wx/utils.h" + #include "wx/dialog.h" + #include "wx/button.h" + #include "wx/stattext.h" + #include "wx/intl.h" #endif #include @@ -35,11 +33,12 @@ #include "wx/generic/msgdlgg.h" -/////////////////////////////////////////////////////////////////// -// New dialog box implementations +#if wxUSE_STATLINE + #include "wx/statline.h" +#endif -// Split message, using constraints to position controls -wxSize wxSplitMessage2( const wxString &message, wxWindow *parent ) +/* Split message, using constraints to position controls */ +static wxSize wxSplitMessage2( const wxString &message, wxWindow *parent ) { int y = 10; int w = 50; @@ -47,29 +46,29 @@ wxSize wxSplitMessage2( const wxString &message, wxWindow *parent ) for (uint pos = 0; pos < message.Len(); pos++) { if (message[pos] == _T('\n')) - { - if (!line.IsEmpty()) - { - wxStaticText *s1 = new wxStaticText( parent, -1, line, wxPoint(15,y) ); - wxSize size1( s1->GetSize() ); - if (size1.x > w) w = size1.x; - line = _T(""); - } - y += 18; - } - else - { - line += message[pos]; - } + { + if (!line.IsEmpty()) + { + wxStaticText *s1 = new wxStaticText( parent, -1, line, wxPoint(15,y) ); + wxSize size1( s1->GetSize() ); + if (size1.x > w) w = size1.x; + line = _T(""); + } + y += 18; + } + else + { + line += message[pos]; + } } if (!line.IsEmpty()) { - wxStaticText *s2 = new wxStaticText( parent, -1, line, wxPoint(15,y) ); - wxSize size2( s2->GetSize() ); - if (size2.x > w) w = size2.x; + wxStaticText *s2 = new wxStaticText( parent, -1, line, wxPoint(15,y) ); + wxSize size2( s2->GetSize() ); + if (size2.x > w) w = size2.x; } - + y += 18; return wxSize(w+30,y); @@ -77,9 +76,9 @@ wxSize wxSplitMessage2( const wxString &message, wxWindow *parent ) #if !USE_SHARED_LIBRARY BEGIN_EVENT_TABLE(wxGenericMessageDialog, wxDialog) - EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes) - EVT_BUTTON(wxID_NO, wxGenericMessageDialog::OnNo) - EVT_BUTTON(wxID_CANCEL, wxGenericMessageDialog::OnCancel) + EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes) + EVT_BUTTON(wxID_NO, wxGenericMessageDialog::OnNo) + EVT_BUTTON(wxID_CANCEL, wxGenericMessageDialog::OnCancel) END_EVENT_TABLE() IMPLEMENT_CLASS(wxGenericMessageDialog, wxDialog) @@ -87,10 +86,12 @@ IMPLEMENT_CLASS(wxGenericMessageDialog, wxDialog) wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent, const wxString& message, const wxString& caption, long style, const wxPoint& pos) : - wxDialog( parent, -1, caption, pos, wxDefaultSize ) + wxDialog( parent, -1, caption, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE ) { m_dialogStyle = style; + wxBeginBusyCursor(); + wxSize message_size( wxSplitMessage2( message, this ) ); wxButton *ok = (wxButton *) NULL; @@ -103,21 +104,21 @@ wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent, const wxString if (style & wxYES_NO) { yes = new wxButton( this, wxID_YES, _("Yes"), wxPoint(-1,y), wxSize(80,-1) ); - m_buttons.Append( yes ); + m_buttons.Append( yes ); no = new wxButton( this, wxID_NO, _("No"), wxPoint(-1,y), wxSize(80,-1) ); - m_buttons.Append( no ); + m_buttons.Append( no ); } if (style & wxOK) { ok = new wxButton( this, wxID_OK, _("OK"), wxPoint(-1,y), wxSize(80,-1) ); - m_buttons.Append( ok ); + m_buttons.Append( ok ); } if (style & wxCANCEL) { cancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxPoint(-1,y), wxSize(80,-1) ); - m_buttons.Append( cancel ); + m_buttons.Append( cancel ); } if (ok) @@ -127,8 +128,16 @@ wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent, const wxString } else if (yes) { - yes->SetDefault(); - yes->SetFocus(); + if(style & wxNO_DEFAULT) + { + no->SetDefault(); + no->SetFocus(); + } + else + { + yes->SetDefault(); + yes->SetFocus(); + } } int w = m_buttons.GetCount() * 100; @@ -140,15 +149,21 @@ wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent, const wxString while (node) { wxWindow *win = (wxWindow*)node->Data(); - int x = (n*2+1)*space - 40 + 15; - win->Move( x, -1 ); + int x = (n*2+1)*space - 40 + 15; + win->Move( x, -1 ); node = node->Next(); - n++; + n++; } +#if wxUSE_STATLINE + (void) new wxStaticLine( this, -1, wxPoint(0,y-20), wxSize(w+30, 5) ); +#endif + SetSize( w+30, y+40 ); Centre( wxBOTH ); + + wxEndBusyCursor(); } void wxGenericMessageDialog::OnYes(wxCommandEvent& WXUNUSED(event))