EndModal( wxID_CANCEL );
}
- bool ret = wxWindow::Show( show );
+ if (show && CanDoLayoutAdaptation())
+ DoLayoutAdaptation();
- if (show) InitDialog();
+ bool ret = wxDialogBase::Show(show);
+
+ if (show)
+ InitDialog();
return ret;
}
+wxDialog::~wxDialog()
+{
+ m_isBeingDeleted = true;
+
+ // if the dialog is modal, this will end its event loop
+ if ( IsModal() )
+ EndModal(wxID_CANCEL);
+}
+
bool wxDialog::IsModal() const
{
return m_modalShowing;
int wxDialog::ShowModal()
{
- if (IsModal())
- {
- wxFAIL_MSG( wxT("wxDialog:ShowModal called twice") );
- return GetReturnCode();
- }
+ wxASSERT_MSG( !IsModal(), "ShowModal() can't be called twice" );
// release the mouse if it's currently captured as the window having it
// will be disabled when this dialog is shown -- but will still keep the
if (!IsModal())
{
- wxFAIL_MSG( wxT("wxDialog:EndModal called twice") );
+ wxFAIL_MSG( "either wxDialog:EndModal called twice or ShowModal wasn't called" );
return;
}