X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/82c9f85ce5aceaa3aedac7e690070d5eff904e5b..e6cec3db8ce53752adb51f4ff1c4c3bfea6882c9:/src/common/toplvcmn.cpp diff --git a/src/common/toplvcmn.cpp b/src/common/toplvcmn.cpp index 7a9101dbb2..a67959b9f0 100644 --- a/src/common/toplvcmn.cpp +++ b/src/common/toplvcmn.cpp @@ -45,7 +45,10 @@ END_EVENT_TABLE() // implementation // ============================================================================ -IMPLEMENT_DYNAMIC_CLASS(wxTopLevelWindow, wxWindow) +// FIXME: some platforms don't have wxTopLevelWindow yet +#ifdef wxTopLevelWindowNative + IMPLEMENT_DYNAMIC_CLASS(wxTopLevelWindow, wxWindow) +#endif // ---------------------------------------------------------------------------- // construction/destruction @@ -55,6 +58,11 @@ wxTopLevelWindowBase::wxTopLevelWindowBase() { } +wxTopLevelWindowBase::~wxTopLevelWindowBase() +{ + // this destructor is required for Darwin +} + bool wxTopLevelWindowBase::Destroy() { // delayed destruction: the frame will be deleted during the next idle @@ -129,6 +137,9 @@ void wxTopLevelWindowBase::OnSize(wxSizeEvent& WXUNUSED(event)) { if ( child ) { +#ifdef __WXPM__ + AlterChildPos(); +#endif return; // it's our second subwindow - nothing to do } @@ -151,7 +162,14 @@ void wxTopLevelWindowBase::OnSize(wxSizeEvent& WXUNUSED(event)) static const int ofs = 0; #endif +#ifdef __WXPM__ + // OS/2 PM has to do a LOT of stuff to get things + // positioned right, especially if the child is a + // scrolled window. + UpdateInternalSize(child, clientW, clientH); +#else child->SetSize(ofs, ofs, clientW - 2*ofs, clientH - 2*ofs); +#endif } } } @@ -169,4 +187,3 @@ bool wxTopLevelWindowBase::SendIconizeEvent(bool iconized) return GetEventHandler()->ProcessEvent(event); } -