// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "dialog.h"
#endif
IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxTopLevelWindow)
+/*
+ TODO PROPERTIES
+
+ style (wxDEFAULT_DIALOG_STYLE)
+ centered (bool, false )
+*/
+
BEGIN_EVENT_TABLE(wxDialog, wxDialogBase)
EVT_BUTTON(wxID_OK, wxDialog::OnOK)
EVT_BUTTON(wxID_APPLY, wxDialog::OnApply)
bool wxDialog::IsModalShowing() const
{
- return wxModalDialogs.Find((wxDialog *)this) != NULL; // const_cast
+ return wxModalDialogs.Find(wxConstCast(this, wxDialog)) != NULL;
}
wxWindow *wxDialog::FindSuitableParent() const
// this will cause IsModalShowing() return FALSE and our local
// message loop will terminate
wxModalDialogs.DeleteObject(this);
+
+ // ensure that there is another message for this window so the
+ // ShowModal loop will exit and won't get stuck in GetMessage().
+ ::PostMessage(GetHwnd(), WM_NULL, 0, 0);
}
}