X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/430974f8c443dcbe1616a85238ead7db5fb88e43..a536e411022b21280532c9daadc806a437fbb4c6:/src/os2/window.cpp diff --git a/src/os2/window.cpp b/src/os2/window.cpp index 42c6c75783..e41f21f386 100644 --- a/src/os2/window.cpp +++ b/src/os2/window.cpp @@ -293,11 +293,10 @@ void wxWindowOS2::Init() // // PM specific // - m_bDoubleClickAllowed = 0; m_bWinCaptured = FALSE; m_isBeingDeleted = FALSE; - m_fnOldWndProc = 0; + m_fnOldWndProc = NULL; m_bUseCtl3D = FALSE; m_bMouseInWindow = FALSE; m_bLastKeydownProcessed = FALSE; @@ -342,12 +341,12 @@ wxWindowOS2::~wxWindowOS2() for (wxWindow* pWin = GetParent(); pWin; pWin = pWin->GetParent()) { - wxFrame* pFrame = wxDynamicCast(pWin, wxFrame); + wxTopLevelWindow* pFrame = wxDynamicCast(pWin, wxTopLevelWindow); if (pFrame) { if (pFrame->GetLastFocus() == this) - pFrame->SetLastFocus((wxWindow*)NULL); + pFrame->SetLastFocus(NULL); } } @@ -2331,17 +2330,6 @@ bool wxWindowOS2::OS2ProcessMessage( pMsg = pMsg; // just shut up the compiler #endif // __WXUNIVERSAL__ -#if wxUSE_TOOLTIPS - if ( m_tooltip ) - { - // relay mouse move events to the tooltip control - QMSG* pQMsg = (QMSG*)pMsg; - - if (pQMsg->msg == WM_MOUSEMOVE ) - m_tooltip->RelayEvent(pMsg); - } -#endif // wxUSE_TOOLTIPS - return FALSE; } // end of wxWindowOS2::OS2ProcessMessage @@ -2593,6 +2581,8 @@ MRESULT wxWindowOS2::OS2WindowProc( { if (pFrame->GetStatusBar()) pFrame->PositionStatusBar(); + if (pFrame->GetToolBar()) + pFrame->PositionToolBar(); } } } @@ -2732,10 +2722,13 @@ MRESULT wxWindowOS2::OS2WindowProc( break; case WM_QUERYDLGCODE: - if ( m_lDlgCode ) + if (!IsOfStandardClass()) { - mResult = (MRESULT)m_lDlgCode; - bProcessed = TRUE; + if ( m_lDlgCode ) + { + mResult = (MRESULT)m_lDlgCode; + bProcessed = TRUE; + } } // //else: get the dlg code from the DefWindowProc() @@ -3067,36 +3060,37 @@ bool wxWindowOS2::OS2GetCreateWindowCoords( ) const { bool bNonDefault = FALSE; + static const int DEFAULT_Y = 200; + static const int DEFAULT_H = 250; if (rPos.x == -1) { - // - // If set x to CW_USEDEFAULT, y parameter is ignored anyhow so we can - // just as well set it to CW_USEDEFAULT as well rnX = rnY = CW_USEDEFAULT; } else { rnX = rPos.x; - rnY = rPos.y == -1 ? CW_USEDEFAULT : rPos.y; + rnY = rPos.y == -1 ? DEFAULT_Y : rPos.y; bNonDefault = TRUE; } if (rSize.x == -1) { - // - // As abobe, h is not used at all in this case anyhow - // rnWidth = rnHeight = CW_USEDEFAULT; } else { rnWidth = rSize.x; - rnHeight = rSize.y == -1 ? CW_USEDEFAULT : rSize.y; + rnHeight = rSize.y == -1 ? DEFAULT_H : rSize.y; bNonDefault = TRUE; } return bNonDefault; } // end of wxWindowOS2::OS2GetCreateWindowCoords +WXHWND wxWindowOS2::OS2GetParent() const +{ + return m_parent ? m_parent->GetHWND() : NULL; +} + bool wxWindowOS2::OS2Create( PSZ zClass , const char* zTitle @@ -3129,31 +3123,6 @@ bool wxWindowOS2::OS2Create( ,nHeight ); - if (GetWindowStyleFlag() & wxPOPUP_WINDOW) - hParent = HWND_DESKTOP; - else - { - if ((bIsChild || HasFlag(wxFRAME_TOOL_WINDOW)) && pParent ) - { - // - // This is either a normal child window or a top level window with - // wxFRAME_TOOL_WINDOW style (see below) - // - hParent = GetHwndOf(pParent); - } - else - { - // - // This is either a window for which no parent was specified (not - // much we can do then) or a frame without wxFRAME_TOOL_WINDOW - // style: we should use NULL parent HWND for it or it would be - // always on top of its parent which is not what we usually want - // (in fact, we only want it for frames with the special - // wxFRAME_TOOL_WINDOW as above) - // - hParent = NULL; - } - } if (bIsChild) { lControlId = GetId(); @@ -3171,20 +3140,20 @@ bool wxWindowOS2::OS2Create( { sClassName += wxT("NR"); } - m_hWnd = (WXHWND)::WinCreateWindow( (HWND)hParent - ,(PSZ)sClassName.c_str() - ,(PSZ)zTitle ? zTitle : "" - ,(ULONG)dwStyle - ,(LONG)0L - ,(LONG)0L - ,(LONG)0L - ,(LONG)0L - ,NULLHANDLE - ,HWND_TOP - ,(ULONG)lControlId - ,pCtlData - ,NULL - ); + m_hWnd = (WXHWND)::WinCreateWindow( (HWND)OS2GetParent() + ,(PSZ)sClassName.c_str() + ,(PSZ)zTitle ? zTitle : "" + ,(ULONG)dwStyle + ,(LONG)0L + ,(LONG)0L + ,(LONG)0L + ,(LONG)0L + ,NULLHANDLE + ,HWND_TOP + ,(ULONG)lControlId + ,pCtlData + ,NULL + ); if (!m_hWnd) { vError = ::WinGetLastError(wxGetInstance()); @@ -3946,6 +3915,7 @@ void wxWindowOS2::InitMouseEvent( rEvent.m_rightDown = ((uFlags & VK_BUTTON2) != 0); rEvent.SetTimestamp(s_currentMsg.time); rEvent.m_eventObject = this; + rEvent.SetId(GetId()); #if wxUSE_MOUSEEVENT_HACK m_lastMouseX = nX; @@ -4385,7 +4355,19 @@ int wxWindowOS2::GetOS2ParentHeight( IsKindOf(CLASSINFO(wxMenuBar)) || IsKindOf(CLASSINFO(wxToolBar)) ) - return(pParent->GetSize().y); + { + if (IsKindOf(CLASSINFO(wxToolBar))) + { + wxFrame* pFrame = wxDynamicCast(GetParent(), wxFrame); + + if (pFrame->GetToolBar() == this) + return(pParent->GetSize().y); + else + return(pParent->GetClientSize().y); + } + else + return(pParent->GetSize().y); + } else return(pParent->GetClientSize().y); }