X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9c88ff79e541770b589fdbf5f90f79aa9d254437..04db5c3f8f9dbf65ca81198ca1a6bbcbaa7a4a03:/src/os2/textctrl.cpp diff --git a/src/os2/textctrl.cpp b/src/os2/textctrl.cpp index 0e4b7a4461..69f0914f4b 100644 --- a/src/os2/textctrl.cpp +++ b/src/os2/textctrl.cpp @@ -117,37 +117,11 @@ bool wxTextCtrl::Create( return FALSE; wxPoint vPos = rPos; // The OS/2 position + SWP vSwp; if (pParent ) { pParent->AddChild(this); - hParent = GetWinHwnd(pParent); - // - // OS2 uses normal coordinates, no bassackwards Windows ones - // - if (pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)) || - pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) - ) - { - wxWindow* pGrandParent = NULL; - - pGrandParent = pParent->GetParent(); - if (pGrandParent) - nTempy = pGrandParent->GetSize().y - (vPos.y + rSize.y); - else - nTempy = pParent->GetSize().y - (vPos.y + rSize.y); - } - else - nTempy = pParent->GetSize().y - (vPos.y + rSize.y); - vPos.y = nTempy; - } - else - { - RECTL vRect; - - ::WinQueryWindowRect(HWND_DESKTOP, &vRect); - hParent = HWND_DESKTOP; - vPos.y = vRect.yTop - (vPos.y + rSize.y); } m_windowStyle = lStyle; @@ -180,10 +154,15 @@ bool wxTextCtrl::Create( if (m_windowStyle & wxTE_PASSWORD) // hidden input lSstyle |= ES_UNREADABLE; } - if ( pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)) || - pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) - ) - lSstyle |= WS_CLIPSIBLINGS; + // + // If the parent is a scrolled window the controls must + // have this style or they will overlap the scrollbars + // + if (pParent) + if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) || + pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow))) + lSstyle |= WS_CLIPSIBLINGS; + if (m_bIsMLE) { m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle @@ -237,13 +216,20 @@ bool wxTextCtrl::Create( } else { - SetFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT)); + SetFont(wxSystemSettings::GetFont(wxSYS_SYSTEM_FONT)); } if (!rsValue.IsEmpty()) { SetValue(rsValue); } SetupColours(); + // + // If X and/or Y are not zero the difference is the compensation value + // for margins for OS/2 controls. + // + ::WinQueryWindowPos(m_hWnd, &vSwp); + SetXComp(vSwp.x); + SetYComp(vSwp.y); SetSize( vPos.x ,vPos.y ,rSize.x @@ -281,7 +267,7 @@ void wxTextCtrl::SetupColours() { wxColour vBkgndColour; - vBkgndColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW); + vBkgndColour = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); SetBackgroundColour(vBkgndColour); SetForegroundColour(GetParent()->GetForegroundColour()); if (m_bIsMLE) @@ -973,7 +959,7 @@ WXHBRUSH wxTextCtrl::OnCtlColor( else ::GpiSetBackMix(hPS, BM_OVERPAINT); if (!IsEnabled() && (GetWindowStyle() & wxTE_MULTILINE) == 0) - vColBack = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); + vColBack = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE); ::GpiSetBackColor(hPS, vColBack.GetPixel()); ::GpiSetColor(hPS, vColFore.GetPixel()); return (WXHBRUSH)pBackgroundBrush->GetResourceHandle();