X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6670f56440ae9209b3e2e51e06acf3bc5aaf1905..8626e0b73de21463908bf855700c31e41c661b30:/src/os2/slider.cpp?ds=sidebyside diff --git a/src/os2/slider.cpp b/src/os2/slider.cpp index e2827fa6ce..2bf845aaad 100644 --- a/src/os2/slider.cpp +++ b/src/os2/slider.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: slider.cpp +// Name: src/os2/slider.cpp // Purpose: wxSlider // Author: David Webster // Modified by: @@ -17,10 +17,10 @@ #endif #ifndef WX_PRECOMP -#include -#include -#include -#include + #include + #include "wx/utils.h" + #include "wx/brush.h" + #include "wx/scrolwin.h" #endif #if wxUSE_SLIDER @@ -28,8 +28,6 @@ #include "wx/slider.h" #include "wx/os2/private.h" -IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl) - wxSlider::wxSlider() { m_hStaticValue = 0L; @@ -232,7 +230,7 @@ bool wxSlider::Create( m_windowStyle = lStyle; m_nTickFreq = 0; - if (vId == -1) + if (vId == wxID_ANY) m_windowId = (int)NewControlId(); else m_windowId = vId; @@ -370,7 +368,7 @@ bool wxSlider::Create( ,NULL // no control data ,NULL // no Presentation parameters ); - if (GetFont().Ok()) + if (GetFont().IsOk()) { if (GetFont().GetResourceHandle()) { @@ -406,11 +404,9 @@ bool wxSlider::Create( ) ) + 4; // for bordersizes - wxColour vColour; - - vColour.Set(wxString(wxT("BLACK"))); + wxColour vColour(*wxBLACK); - LONG lColor = (LONG)vColour.GetPixel(); + LONG lColor = (LONG)vColour.GetPixel(); ::WinSetPresParam( m_hStaticMin ,PP_FOREGROUNDCOLOR @@ -464,27 +460,25 @@ bool wxSlider::Create( return true; } // end of wxSlider::Create -void wxSlider::DoSetSize( - int nX -, int nY -, int nWidth -, int nHeight -, int nSizeFlags -) +void wxSlider::DoSetSize( int nX, + int nY, + int nWidth, + int nHeight, + int nSizeFlags ) { - int nX1 = nX; - int nY1 = nY; - int nWidth1 = nWidth; - int nHeight1 = nHeight; - int nXOffset = nX; - int nYOffset = nY; - int nCx; // slider,min,max sizes - int nCy; - int nCyf; - int nCurrentX; - int nCurrentY; - wxChar zBuf[300]; - wxFont vFont = this->GetFont(); + int nX1 = nX; + int nY1 = nY; + int nWidth1 = nWidth; + int nHeight1 = nHeight; + int nXOffset = nX; + int nYOffset = nY; + int nCx; // slider,min,max sizes + int nCy; + int nCyf; + int nCurrentX; + int nCurrentY; + wxChar zBuf[300]; + wxFont vFont = this->GetFont(); // // Adjust for OS/2's reverse coordinate system @@ -495,29 +489,28 @@ void wxSlider::DoSetSize( if (nOS2Height < 0) nOS2Height = 20; + CacheBestSize(wxSize(nWidth,nOS2Height)); if (pParent) { - int nOS2ParentHeight = GetOS2ParentHeight(pParent); + int nOS2ParentHeight = GetOS2ParentHeight(pParent); nYOffset = nOS2ParentHeight - (nYOffset + nOS2Height); - if (nY != -1) + if (nY != wxDefaultCoord) nY1 = nOS2ParentHeight - (nY1 + nOS2Height); } else { - RECTL vRect; + RECTL vRect; ::WinQueryWindowRect(HWND_DESKTOP, &vRect); nYOffset = vRect.yTop - (nYOffset + nOS2Height); - if (nY != -1) + if (nY != wxDefaultCoord) nY1 = vRect.yTop - (nY1 + nOS2Height); } m_nSizeFlags = nSizeFlags; - GetPosition( &nCurrentX - ,&nCurrentY - ); + GetPosition( &nCurrentX, &nCurrentY ); if (nX == -1 && !(nSizeFlags & wxSIZE_ALLOW_MINUS_ONE)) nX1 = nCurrentX; if (nY == -1 && !(nSizeFlags & wxSIZE_ALLOW_MINUS_ONE)) @@ -812,8 +805,10 @@ void wxSlider::GetPosition( vPoint.x -= vPt.x; vPoint.y -= vPt.y; } - *pnX = vPoint.x; - *pnY = vPoint.y; + if (pnX) + *pnX = vPoint.x; + if (pnY) + *pnY = vPoint.y; } // end of wxSlider::GetPosition int wxSlider::GetSelEnd() const @@ -886,7 +881,6 @@ int wxSlider::GetValue() const ) ); double dPixelToRange = (double)(nPixelRange - m_nThumbLength)/(double)(m_nRangeMax - m_nRangeMin); - int nNewPos = 0; int nPixelPos = SHORT1FROMMR(::WinSendMsg( GetHwnd() ,SLM_QUERYSLIDERINFO ,MPFROM2SHORT( SMA_SLIDERARMPOSITION @@ -895,7 +889,7 @@ int wxSlider::GetValue() const ,(MPARAM)0 ) ); - nNewPos = (int)(nPixelPos/dPixelToRange); + int nNewPos = (int)(nPixelPos/dPixelToRange); if (nNewPos > (m_nRangeMax - m_nRangeMin)/2) nNewPos++; return nNewPos; @@ -975,13 +969,13 @@ bool wxSlider::OS2OnScroll( int WXUNUSED(nOrientation), vEvent.SetPosition(nNewPos); vEvent.SetEventObject(this); - GetEventHandler()->ProcessEvent(vEvent); + HandleWindowEvent(vEvent); wxCommandEvent vCevent( wxEVT_COMMAND_SLIDER_UPDATED, GetId() ); vCevent.SetInt(nNewPos); vCevent.SetEventObject(this); - return (GetEventHandler()->ProcessEvent(vCevent)); + return (HandleWindowEvent(vCevent)); } // end of wxSlider::OS2OnScroll void wxSlider::SetLineSize( int nLineSize ) @@ -1079,7 +1073,7 @@ void wxSlider::SetTick( } // end of wxSlider::SetTick // For trackbars only -void wxSlider::SetTickFreq( int n, int WXUNUSED(nPos) ) +void wxSlider::DoSetTickFreq( int n ) { SLDCDATA vSlData; WNDPARAMS vWndParams;