/////////////////////////////////////////////////////////////////////////////
-// Name: slider.cpp
+// Name: src/os2/slider.cpp
// Purpose: wxSlider
// Author: David Webster
// Modified by:
#endif
#ifndef WX_PRECOMP
-#include <stdio.h>
-#include <wx/utils.h>
-#include <wx/brush.h>
-#include <wx/scrolwin.h>
+ #include <stdio.h>
+ #include "wx/utils.h"
+ #include "wx/brush.h"
+ #include "wx/scrolwin.h"
#endif
#if wxUSE_SLIDER
#include "wx/slider.h"
#include "wx/os2/private.h"
-IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl)
-
wxSlider::wxSlider()
{
m_hStaticValue = 0L;
m_windowStyle = lStyle;
m_nTickFreq = 0;
- if (vId == -1)
+ if (vId == wxID_ANY)
m_windowId = (int)NewControlId();
else
m_windowId = vId;
,NULL // no control data
,NULL // no Presentation parameters
);
- if (GetFont().Ok())
+ if (GetFont().IsOk())
{
if (GetFont().GetResourceHandle())
{
)
) + 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
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
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))
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
)
);
double dPixelToRange = (double)(nPixelRange - m_nThumbLength)/(double)(m_nRangeMax - m_nRangeMin);
- int nNewPos = 0;
int nPixelPos = SHORT1FROMMR(::WinSendMsg( GetHwnd()
,SLM_QUERYSLIDERINFO
,MPFROM2SHORT( SMA_SLIDERARMPOSITION
,(MPARAM)0
)
);
- nNewPos = (int)(nPixelPos/dPixelToRange);
+ int nNewPos = (int)(nPixelPos/dPixelToRange);
if (nNewPos > (m_nRangeMax - m_nRangeMin)/2)
nNewPos++;
return nNewPos;
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 )
} // end of wxSlider::SetTick
// For trackbars only
-void wxSlider::SetTickFreq( int n, int WXUNUSED(nPos) )
+void wxSlider::DoSetTickFreq( int n )
{
SLDCDATA vSlData;
WNDPARAMS vWndParams;