]>
git.saurik.com Git - wxWidgets.git/blob - src/generic/msgdlgg.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxGenericMessageDialog
4 // Author: Julian Smart, Robert Roebling
8 // Copyright: (c) Julian Smart, Markus Holzem, Robert Roebling
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
13 #pragma implementation "msgdlgg.h"
16 // For compilers that support precompilation, includes "wx.h".
17 #include "wx/wxprec.h"
25 #include "wx/dialog.h"
26 #include "wx/button.h"
27 #include "wx/stattext.h"
28 #include "wx/statbmp.h"
29 #include "wx/layout.h"
39 #include "wx/generic/msgdlgg.h"
42 #include "wx/statline.h"
45 // ----------------------------------------------------------------------------
47 // ----------------------------------------------------------------------------
49 BEGIN_EVENT_TABLE(wxGenericMessageDialog
, wxDialog
)
50 EVT_BUTTON(wxID_YES
, wxGenericMessageDialog::OnYes
)
51 EVT_BUTTON(wxID_NO
, wxGenericMessageDialog::OnNo
)
52 EVT_BUTTON(wxID_CANCEL
, wxGenericMessageDialog::OnCancel
)
55 IMPLEMENT_CLASS(wxGenericMessageDialog
, wxDialog
)
57 wxGenericMessageDialog::wxGenericMessageDialog( wxWindow
*parent
,
58 const wxString
& message
,
59 const wxString
& caption
,
62 : wxDialog( parent
, -1, caption
, pos
, wxDefaultSize
, wxDEFAULT_DIALOG_STYLE
)
64 m_dialogStyle
= style
;
66 wxBoxSizer
*topsizer
= new wxBoxSizer( wxVERTICAL
);
68 wxBoxSizer
*icon_text
= new wxBoxSizer( wxHORIZONTAL
);
71 if (style
& wxICON_MASK
)
73 wxStaticBitmap
*icon
= new wxStaticBitmap(
74 this, -1, wxTheApp
->GetStdIcon((int)(style
& wxICON_MASK
)));
75 icon_text
->Add( icon
, 0, wxCENTER
);
79 icon_text
->Add( CreateTextSizer( message
), 0, wxCENTER
| wxLEFT
, 10 );
81 topsizer
->Add( icon_text
, 0, wxCENTER
| wxLEFT
|wxRIGHT
|wxTOP
, 10 );
85 topsizer
->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND
| wxLEFT
|wxRIGHT
|wxTOP
, 10 );
89 topsizer
->Add( CreateButtonSizer( style
), 0, wxCENTRE
| wxALL
, 10 );
91 SetAutoLayout( TRUE
);
94 topsizer
->SetSizeHints( this );
95 topsizer
->Fit( this );
96 wxSize
size( GetSize() );
97 if (size
.x
< size
.y
*3/2)
103 Centre( wxBOTH
| wxCENTER_FRAME
);
106 void wxGenericMessageDialog::OnYes(wxCommandEvent
& WXUNUSED(event
))
108 EndModal( wxID_YES
);
111 void wxGenericMessageDialog::OnNo(wxCommandEvent
& WXUNUSED(event
))
116 void wxGenericMessageDialog::OnCancel(wxCommandEvent
& WXUNUSED(event
))
118 /* Allow cancellation via ESC/Close button except if
119 only YES and NO are specified. */
120 if ( (m_dialogStyle
& wxYES_NO
) != wxYES_NO
|| (m_dialogStyle
& wxCANCEL
) )
122 EndModal( wxID_CANCEL
);