X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e58dab20ce995856303154a367bcca904066525c..b2261c5bb8eff491a42eddc817a4c1fd1d9db15f:/src/os2/frame.cpp diff --git a/src/os2/frame.cpp b/src/os2/frame.cpp index 4b5e439c6a..4c345bcea7 100644 --- a/src/os2/frame.cpp +++ b/src/os2/frame.cpp @@ -67,7 +67,6 @@ extern void wxAssociateWinWithHandle( HWND hWnd // ---------------------------------------------------------------------------- BEGIN_EVENT_TABLE(wxFrame, wxFrameBase) - EVT_ACTIVATE(wxFrame::OnActivate) EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) END_EVENT_TABLE() @@ -101,7 +100,6 @@ void wxFrame::Init() m_nFsToolBarHeight = 0; m_hWndToolTip = 0L; m_bWasMinimized = FALSE; - m_pWinLastFocused = NULL; m_frameMenuBar = NULL; @@ -210,21 +208,6 @@ void wxFrame::Raise() ); } -// generate an artificial resize event -void wxFrame::SendSizeEvent() -{ - if (!m_bIconized) - { - RECTL vRect = wxGetWindowRect(GetHwnd()); - - (void)::WinPostMsg( m_hFrame - ,WM_SIZE - ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom) - ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom) - ); - } -} - #if wxUSE_STATUSBAR wxStatusBar* wxFrame::OnCreateStatusBar( int nNumber @@ -673,70 +656,13 @@ bool wxFrame::ShowFullScreen( ,m_vFsOldSize.height ,SWP_SIZE | SWP_SHOW ); - return TRUE; } + return wxFrameBase::ShowFullScreen(bShow, lStyle); } // end of wxFrame::ShowFullScreen // // Frame window // -// -// Default activation behaviour - set the focus for the first child -// subwindow found. -// -void wxFrame::OnActivate( - wxActivateEvent& rEvent -) -{ - if ( rEvent.GetActive() ) - { - // restore focus to the child which was last focused - wxLogTrace(_T("focus"), _T("wxFrame %08x activated."), m_hWnd); - - wxWindow* pParent = m_pWinLastFocused ? m_pWinLastFocused->GetParent() - : NULL; - if (!pParent) - { - pParent = this; - } - - wxSetFocusToChild( pParent - ,&m_pWinLastFocused - ); - } - else // deactivating - { - // - // Remember the last focused child if it is our child - // - m_pWinLastFocused = FindFocus(); - - for (wxWindowList::Node* pNode = GetChildren().GetFirst(); - pNode; - pNode = pNode->GetNext()) - { - // FIXME all this is totally bogus - we need to do the same as wxPanel, - // but how to do it without duplicating the code? - - // restore focus - wxWindow* pChild = pNode->GetData(); - - if (!pChild->IsTopLevel() -#if wxUSE_TOOLBAR - && !wxDynamicCast(pChild, wxToolBar) -#endif // wxUSE_TOOLBAR -#if wxUSE_STATUSBAR - && !wxDynamicCast(pChild, wxStatusBar) -#endif // wxUSE_STATUSBAR - ) - { - pChild->SetFocus(); - return; - } - } - } -} // end of wxFrame::OnActivate - // ---------------------------------------------------------------------------- // wxFrame size management: we exclude the areas taken by menu/status/toolbars // from the client area, so the client area is what's really available for the @@ -938,9 +864,10 @@ bool wxFrame::HandlePaint() // // Icons in PM are the same as "pointers" // + const wxIcon& vIcon = GetIcon(); HPOINTER hIcon; - if (m_icon.Ok()) + if (vIcon.Ok()) hIcon = (HPOINTER)::WinSendMsg(m_hFrame, WM_QUERYICON, 0L, 0L); else hIcon = (HPOINTER)m_hDefaultIcon; @@ -1086,15 +1013,10 @@ bool wxFrame::HandleSize( PositionToolBar(); #endif // wxUSE_TOOLBAR - wxSizeEvent vEvent( wxSize( nX - ,nY - ) - ,m_windowId - ); - - vEvent.SetEventObject(this); - bProcessed = GetEventHandler()->ProcessEvent(vEvent); - AlterChildPos(); + bProcessed = wxWindow::HandleSize( nX + ,nY + ,nId + ); } return bProcessed; } // end of wxFrame::HandleSize @@ -1165,6 +1087,11 @@ bool wxFrame::HandleMenuSelect( vEvent.SetEventObject(this); GetEventHandler()->ProcessEvent(vEvent); // return value would be ignored by PM } + else + { + DoGiveHelp(wxEmptyString, FALSE); + return FALSE; + } } return TRUE; } // end of wxFrame::HandleMenuSelect @@ -1395,9 +1322,10 @@ MRESULT wxFrame::OS2WindowProc( case CM_QUERYDRAGIMAGE: { + const wxIcon& vIcon = GetIcon(); HPOINTER hIcon; - if (m_icon.Ok()) + if (vIcon.Ok()) hIcon = (HPOINTER)::WinSendMsg(GetHWND(), WM_QUERYICON, 0L, 0L); else hIcon = (HPOINTER)m_hDefaultIcon;