From f44fdfb032152a62cc0e3a4c0f09330cfab76710 Mon Sep 17 00:00:00 2001 From: David Webster Date: Wed, 25 Oct 2000 04:22:11 +0000 Subject: [PATCH] OS/2 fixes git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/statusbr.cpp | 2 +- src/os2/dc.cpp | 35 +++++++++++++++++----------------- src/os2/dcclient.cpp | 6 +++--- src/os2/window.cpp | 41 +++++++++++++++++++++++++++------------- 4 files changed, 50 insertions(+), 34 deletions(-) diff --git a/src/generic/statusbr.cpp b/src/generic/statusbr.cpp index dbd35b40f8..d661b1be08 100644 --- a/src/generic/statusbr.cpp +++ b/src/generic/statusbr.cpp @@ -182,7 +182,7 @@ void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) ) dc.SetBackgroundMode(wxTRANSPARENT); #ifdef __WXPM__ - ::WinFillRect(vDC.m_hPS, &vDC.m_rclPaint, CLR_GREEN); + ::WinFillRect(dc.m_hPS, &dc.m_vRclPaint, CLR_GREEN); #endif for ( i = 0; i < m_nFields; i ++ ) diff --git a/src/os2/dc.cpp b/src/os2/dc.cpp index 0f5740f398..5ddf11b13b 100644 --- a/src/os2/dc.cpp +++ b/src/os2/dc.cpp @@ -77,10 +77,11 @@ int QueryTextBkColor( { CHARBUNDLE vCbnd; - ::GpiQueryAttrs(hPS // presentation-space handle - PRIM_CHAR // Char primitive. - CBB_BACK_COLOR // Background color. - &vCbnd // buffer for attributes. + ::GpiQueryAttrs( hPS // presentation-space handle + ,PRIM_CHAR // Char primitive. + ,CBB_BACK_COLOR // Background color. + ,&vCbnd // buffer for attributes. + ); return vCbnd.lBackColor; } @@ -338,7 +339,7 @@ void wxDC::DoDrawLines( int n, wxPoint points[] } void wxDC::DoDrawRectangle( - wxCoord vS + wxCoord vX , wxCoord vY , wxCoord vWidth , wxCoord vHeight @@ -348,8 +349,8 @@ void wxDC::DoDrawRectangle( vPoint[0].x = vX; vPoint[0].y = vY; - vPoint[1].x = vX + Width; - vPoint[1].y = vY - Height; //mustdie !!! ?? + vPoint[1].x = vX + vWidth; + vPoint[1].y = vY - vHeight; //mustdie !!! ?? ::GpiMove(m_hPS, &vPoint[0]); ::GpiBox( m_hPS // handle to a presentation space @@ -376,11 +377,11 @@ void wxDC::DoDrawRoundedRectangle( vPoint[1].y = vY + vHeight; //or -height aka mustdie !!! ?? ::GpiMove(m_hPS, &vPoint[0]); - ::GpiBox( m_hPS // handle to a presentation space - ,DRO_OUTLINE // draw the box outline ? or ? - ,&vPoint[1] // address of the corner - ,(LONG)radius // horizontal corner radius - ,(LONG)radius // vertical corner radius + ::GpiBox( m_hPS // handle to a presentation space + ,DRO_OUTLINE // draw the box outline ? or ? + ,&vPoint[1] // address of the corner + ,(LONG)dRadius // horizontal corner radius + ,(LONG)dRadius // vertical corner radius ); } @@ -617,8 +618,8 @@ void wxDC::SetPen( else { double dW = 0.5 + - ( fabs((double) XLOG2DEVREL(width)) + - fabs((double) YLOG2DEVREL(width)) + ( fabs((double) XLOG2DEVREL(nWidth)) + + fabs((double) YLOG2DEVREL(nWidth)) ) / 2.0; nWidth = (int)dW; } @@ -721,7 +722,7 @@ void wxDC::DoGetTextExtent( const wxString& rsString , wxCoord* pvX , wxCoord* pvY -, wxCoord* pvDecent +, wxCoord* pvDescent , wxCoord* pvExternalLeading , wxFont* pTheFont ) const @@ -750,7 +751,7 @@ void wxDC::DoGetTextExtent( ,pStr ,TXTBOX_COUNT // return maximum information ,avPoint // array of coordinates points - ) + ); if(!bRc) { vErrorCode = ::WinGetLastError(wxGetInstance()); @@ -778,7 +779,7 @@ void wxDC::DoGetTextExtent( *pvY = (wxCoord)(vPtMax.y - vPtMin.y + 1); if (pvDescent) *pvDescent = vFM.lMaxDescender; - if (externalLeading) + if (pvExternalLeading) *pvExternalLeading = vFM.lExternalLeading; } diff --git a/src/os2/dcclient.cpp b/src/os2/dcclient.cpp index 27ae79a395..af77090fd1 100644 --- a/src/os2/dcclient.cpp +++ b/src/os2/dcclient.cpp @@ -150,7 +150,7 @@ wxClientDC::wxClientDC(wxWindow *the_canvas) m_hDC = (WXHDC) ::WinOpenWindowDC(GetWinHwnd(the_canvas)); m_hPS = ::GpiCreatePS( wxGetInstance() ,m_hDC - ,&sizl + ,&vSizl ,PU_PELS | GPIF_LONG | GPIA_ASSOC ); @@ -208,7 +208,7 @@ wxPaintDC::wxPaintDC( wxWindow* pCanvas ) { - wxCHECK_RET( canvas, wxT("NULL canvas in wxPaintDC ctor") ); + wxCHECK_RET(pCanvas, wxT("NULL canvas in wxPaintDC ctor")); #ifdef __WXDEBUG__ if (g_isPainting <= 0) @@ -265,7 +265,7 @@ wxPaintDC::~wxPaintDC() if ( !--info->count ) { ::WinEndPaint(m_hPS); - m_hPS = m_OldhPS; + m_hPS = m_hOldPS; m_bIsPaintTime = FALSE; ms_cache.Remove(index); } diff --git a/src/os2/window.cpp b/src/os2/window.cpp index 59c203cc17..7a31cfbbda 100644 --- a/src/os2/window.cpp +++ b/src/os2/window.cpp @@ -2861,7 +2861,7 @@ bool wxWindow::HandlePaint() // #ifdef __WXDEBUG__ { - HWND hWnd + HWND hWnd; HWND hWnd0 = NULLHANDLE; hWnd = GetHwnd(); @@ -4012,28 +4012,43 @@ static void TranslateKbdEventToMouse( // Find the wxWindow at the current mouse position, returning the mouse // position. -wxWindow* wxFindWindowAtPointer(wxPoint& pt) +wxWindow* wxFindWindowAtPointer( + wxPoint& rPt +) { return wxFindWindowAtPoint(wxGetMousePosition()); } -wxWindow* wxFindWindowAtPoint(const wxPoint& pt) +wxWindow* wxFindWindowAtPoint( + const wxPoint& rPt +) { - POINT pt2; - pt2.x = pt.x; - pt2.y = pt.y; - HWND hWndHit = ::WindowFromPoint(pt2); + POINTL vPt2; - wxWindow* win = wxFindWinFromHandle((WXHWND) hWndHit) ; - HWND hWnd = hWndHit; + vPt2.x = rPt.x; + vPt2.y = rPt.y; + HWND hWndHit = ::WinWindowFromPoint(HWND_DESKTOP, &vPt2, FALSE); + wxWindow* pWin = wxFindWinFromHandle((WXHWND)hWndHit) ; + HWND hWnd = hWndHit; + + // // Try to find a window with a wxWindow associated with it - while (!win && (hWnd != 0)) + // + while (!pWin && (hWnd != 0)) { - hWnd = ::GetParent(hWnd); - win = wxFindWinFromHandle((WXHWND) hWnd) ; + hWnd = ::WinQueryWindow(hWnd, QW_PARENT); + pWin = wxFindWinFromHandle((WXHWND)hWnd) ; } - return win; + return pWin; } +// Get the current mouse position. +wxPoint wxGetMousePosition() +{ + POINTL vPt; + + ::WinQueryPointerPos(HWND_DESKTOP, &vPt); + return wxPoint(vPt.x, vPt.y); +} -- 2.45.2