#include <wx/scrolwin.h>
#endif
+#if wxUSE_SLIDER
+
#include "wx/slider.h"
#include "wx/os2/private.h"
::WinDestroyWindow((HWND)m_hStaticValue);
} // end of wxSlider::~wxSlider
-void wxSlider::AdjustSubControls(
- int nX
-, int nY
-, int nWidth
-, int nHeight
-, int nSizeFlags
-)
+void wxSlider::AdjustSubControls( int nX,
+ int nY,
+ int nWidth,
+ int nHeight,
+ int WXUNUSED(nSizeFlags) )
{
int nXOffset = nX;
int nYOffset = nY;
int nCx; // slider,min,max sizes
int nCy;
int nCyf;
- char zBuf[300];
+ wxChar zBuf[300];
+ wxFont vFont = this->GetFont();
wxGetCharSize( GetHWND()
,&nCx
,&nCy
- ,&this->GetFont()
+ ,&vFont
);
if ((m_windowStyle & wxSL_VERTICAL) != wxSL_VERTICAL)
int nMinLen = 0;
int nMaxLen = 0;
- ::WinQueryWindowText((HWND)m_hStaticMin, 300, zBuf);
- GetTextExtent(zBuf, &nMinLen, &nCyf, NULL, NULL, &this->GetFont());
+ ::WinQueryWindowText((HWND)m_hStaticMin, 300, (PSZ)zBuf);
+ GetTextExtent(zBuf, &nMinLen, &nCyf, NULL, NULL, &vFont);
- ::WinQueryWindowText((HWND)m_hStaticMax, 300, zBuf);
- GetTextExtent(zBuf, &nMaxLen, &nCyf, NULL, NULL, &this->GetFont());
+ ::WinQueryWindowText((HWND)m_hStaticMax, 300, (PSZ)zBuf);
+ GetTextExtent(zBuf, &nMaxLen, &nCyf, NULL, NULL, &vFont);
if (m_hStaticValue)
{
int nMinLen = 0;
int nMaxLen = 0;
- ::WinQueryWindowText((HWND)m_hStaticMin, 300, zBuf);
- GetTextExtent(zBuf, &nMinLen, &nCyf, NULL, NULL, &this->GetFont());
+ ::WinQueryWindowText((HWND)m_hStaticMin, 300, (PSZ)zBuf);
+ GetTextExtent(zBuf, &nMinLen, &nCyf, NULL, NULL, &vFont);
- ::WinQueryWindowText((HWND)m_hStaticMax, 300, zBuf);
- GetTextExtent(zBuf, &nMaxLen, &nCyf, NULL, NULL, &this->GetFont());
+ ::WinQueryWindowText((HWND)m_hStaticMax, 300, (PSZ)zBuf);
+ GetTextExtent(zBuf, &nMaxLen, &nCyf, NULL, NULL, &vFont);
if (m_hStaticValue)
{
//
// Now create min static control
//
- sprintf(wxBuffer, "%d", nMinValue);
+ wxSprintf(wxBuffer, wxT("%d"), nMinValue);
lWstyle = SS_TEXT|DT_LEFT|WS_VISIBLE;
if (m_windowStyle & wxCLIP_SIBLINGS)
lWstyle |= WS_CLIPSIBLINGS;
lMsStyle |= SLS_RIBBONSTRIP;
m_nPageSize = ((nMaxValue - nMinValue)/10);
- vSlData.usScale1Increments = m_nPageSize;
- vSlData.usScale2Increments = m_nPageSize;
-
- HWND hScrollBar = ::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
- ,WC_SLIDER // Window class
- ,(PSZ)wxBuffer // Initial Text
- ,(ULONG)lMsStyle // Style flags
- ,0L, 0L, 0L, 0L // Origin -- 0 size
- ,(HWND)GetHwndOf(pParent) // owner window handle (same as parent
- ,HWND_BOTTOM // initial z position
- ,(HMENU)m_windowId // Window identifier
- ,&vSlData // Slider control data
- ,NULL // no Presentation parameters
- );
+ vSlData.usScale1Increments = (USHORT)m_nPageSize;
+ vSlData.usScale2Increments = (USHORT)m_nPageSize;
+
+ HWND hScrollBar = ::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
+ ,WC_SLIDER // Window class
+ ,(PSZ)wxBuffer // Initial Text
+ ,(ULONG)lMsStyle // Style flags
+ ,0L, 0L, 0L, 0L // Origin -- 0 size
+ ,(HWND)GetHwndOf(pParent) // owner window handle (same as parent
+ ,HWND_BOTTOM // initial z position
+ ,(HMENU)m_windowId // Window identifier
+ ,&vSlData // Slider control data
+ ,NULL // no Presentation parameters
+ );
m_nRangeMax = nMaxValue;
m_nRangeMin = nMinValue;
//
// Finally, create max value static item
//
- sprintf(wxBuffer, "%d", nMaxValue);
+ wxSprintf(wxBuffer, wxT("%d"), nMaxValue);
lWstyle = SS_TEXT|DT_LEFT|WS_VISIBLE;
if (m_windowStyle & wxCLIP_SIBLINGS)
lMsStyle |= WS_CLIPSIBLINGS;
wxColour vColour;
- vColour.Set(wxString("BLACK"));
+ vColour.Set(wxString(wxT("BLACK")));
LONG lColor = (LONG)vColour.GetPixel();
,sizeof(LONG)
,(PVOID)&lColor
);
- vColour.Set(wxString("BLUE"));
+ vColour.Set(wxString(wxT("BLUE")));
lColor = (LONG)vColour.GetPixel();
::WinSetPresParam( m_hWnd
,PP_HILITEBACKGROUNDCOLOR
,(PVOID)&lColor
);
SetValue(nValue);
- return TRUE;
+ return true;
} // end of wxSlider::Create
void wxSlider::DoSetSize(
int nCyf;
int nCurrentX;
int nCurrentY;
- char zBuf[300];
+ wxChar zBuf[300];
+ wxFont vFont = this->GetFont();
//
// Adjust for OS/2's reverse coordinate system
wxGetCharSize( GetHWND()
,&nCx
,&nCy
- ,&this->GetFont()
+ ,&vFont
);
if ((m_windowStyle & wxSL_VERTICAL) != wxSL_VERTICAL)
int nMinLen = 0;
int nMaxLen = 0;
- ::WinQueryWindowText((HWND)m_hStaticMin, 300, zBuf);
- GetTextExtent(zBuf, &nMinLen, &nCyf, NULL, NULL, &this->GetFont());
- ::WinQueryWindowText((HWND)m_hStaticMax, 300, zBuf);
- GetTextExtent(zBuf, &nMaxLen, &nCyf, NULL, NULL, &this->GetFont());
+ ::WinQueryWindowText((HWND)m_hStaticMin, 300, (PSZ)zBuf);
+ GetTextExtent(zBuf, &nMinLen, &nCyf, NULL, NULL, &vFont);
+ ::WinQueryWindowText((HWND)m_hStaticMax, 300, (PSZ)zBuf);
+ GetTextExtent(zBuf, &nMaxLen, &nCyf, NULL, NULL, &vFont);
if (m_hStaticValue)
{
int nMinLen;
int nMaxLen;
- ::WinQueryWindowText((HWND)m_hStaticMin, 300, zBuf);
- GetTextExtent(zBuf, &nMinLen, &nCyf, NULL, NULL, &this->GetFont());
- ::WinQueryWindowText((HWND)m_hStaticMax, 300, zBuf);
- GetTextExtent(zBuf, &nMaxLen, &nCyf, NULL, NULL, &this->GetFont());
+ ::WinQueryWindowText((HWND)m_hStaticMin, 300, (PSZ)zBuf);
+ GetTextExtent(zBuf, &nMinLen, &nCyf, NULL, NULL, &vFont);
+ ::WinQueryWindowText((HWND)m_hStaticMax, 300, (PSZ)zBuf);
+ GetTextExtent(zBuf, &nMaxLen, &nCyf, NULL, NULL, &vFont);
if (m_hStaticValue)
{
int nNewWidth = wxMax(nMinLen, nMaxLen);
);
} // end of wxSlider::OnCtlColor
-bool wxSlider::OS2OnScroll(
- int WXUNUSED(nOrientation)
-, WXWORD wParam
-, WXWORD wPos
-, WXHWND hControl
-)
+bool wxSlider::OS2OnScroll( int WXUNUSED(nOrientation),
+ WXWORD wParam,
+ WXWORD WXUNUSED(wPos),
+ WXHWND WXUNUSED(hControl) )
{
- wxEventType eScrollEvent = wxEVT_NULL;
+ wxEventType eScrollEvent = wxEVT_NULL;
switch (wParam)
{
break;
default:
- return FALSE;
+ return false;
}
- int nPixelRange = SHORT1FROMMR(::WinSendMsg( GetHwnd()
- ,SLM_QUERYSLIDERINFO
- ,MPFROM2SHORT( SMA_SHAFTDIMENSIONS
- ,SMA_RANGEVALUE
- )
- ,(MPARAM)0
- )
- );
+ int nPixelRange = SHORT1FROMMR(::WinSendMsg( GetHwnd()
+ , SLM_QUERYSLIDERINFO
+ , MPFROM2SHORT( SMA_SHAFTDIMENSIONS, SMA_RANGEVALUE )
+ , (MPARAM)0
+ )
+ );
m_dPixelToRange = (double)(nPixelRange - m_nThumbLength)/(double)(m_nRangeMax - m_nRangeMin);
- int nNewPos = 0;
- int nPixelPos = SHORT1FROMMR(::WinSendMsg( GetHwnd()
- ,SLM_QUERYSLIDERINFO
- ,MPFROM2SHORT( SMA_SLIDERARMPOSITION
- ,SMA_RANGEVALUE
- )
- ,(MPARAM)0
- )
- );
+ int nNewPos = 0;
+ int nPixelPos = SHORT1FROMMR(::WinSendMsg( GetHwnd()
+ , SLM_QUERYSLIDERINFO
+ , MPFROM2SHORT( SMA_SLIDERARMPOSITION, SMA_RANGEVALUE )
+ , (MPARAM)0
+ )
+ );
+
nNewPos = (int)(nPixelPos/m_dPixelToRange);
if (nNewPos > (m_nRangeMax - m_nRangeMin)/2)
nNewPos++;
//
// Out of range - but we did process it
//
- return TRUE;
+ return true;
}
SetValue(nNewPos);
- wxScrollEvent vEvent( eScrollEvent
- ,m_windowId
- );
+ wxScrollEvent vEvent( eScrollEvent, m_windowId );
vEvent.SetPosition(nNewPos);
vEvent.SetEventObject(this);
GetEventHandler()->ProcessEvent(vEvent);
- wxCommandEvent vCevent( wxEVT_COMMAND_SLIDER_UPDATED
- ,GetId()
- );
+ wxCommandEvent vCevent( wxEVT_COMMAND_SLIDER_UPDATED, GetId() );
vCevent.SetInt(nNewPos);
vCevent.SetEventObject(this);
return (GetEventHandler()->ProcessEvent(vCevent));
} // end of wxSlider::OS2OnScroll
-void wxSlider::SetLineSize(
- int nLineSize
-)
+void wxSlider::SetLineSize( int nLineSize )
{
m_nLineSize = nLineSize;
} // end of wxSlider::SetLineSize
-void wxSlider::SetPageSize(
- int nPageSize
-)
+void wxSlider::SetPageSize( int nPageSize )
{
m_nPageSize = nPageSize;
} // end of wxSlider::SetPageSize
if (m_hStaticMin)
{
wxSprintf(zBuf, wxT("%d"), m_nRangeMin);
- ::WinSetWindowText((HWND)m_hStaticMin, zBuf);
+ ::WinSetWindowText((HWND)m_hStaticMin, (PSZ)zBuf);
}
if (m_hStaticMax)
{
wxSprintf(zBuf, wxT("%d"), m_nRangeMax);
- ::WinSetWindowText((HWND)m_hStaticMax, zBuf);
+ ::WinSetWindowText((HWND)m_hStaticMax, (PSZ)zBuf);
}
} // end of wxSlider::SetRange
} // end of wxSlider::SetTick
// For trackbars only
-void wxSlider::SetTickFreq(
- int n
-, int nPos
-)
+void wxSlider::SetTickFreq( int n, int WXUNUSED(nPos) )
{
- SLDCDATA vSlData;
- WNDPARAMS vWndParams;
- int nPixelPos;
- int i;
+ SLDCDATA vSlData;
+ WNDPARAMS vWndParams;
+ int nPixelPos;
+ int i;
vSlData.cbSize = sizeof(SLDCDATA);
if (m_windowStyle & wxSL_AUTOTICKS)
vSlData.usScale1Spacing = 0;
vSlData.usScale2Spacing = 0;
}
- vSlData.usScale1Increments = (m_nRangeMax - m_nRangeMin)/n;
- vSlData.usScale2Increments = (m_nRangeMax - m_nRangeMin)/n;
+ vSlData.usScale1Increments = (USHORT)((m_nRangeMax - m_nRangeMin)/n);
+ vSlData.usScale2Increments = (USHORT)((m_nRangeMax - m_nRangeMin)/n);
vWndParams.fsStatus = WPM_CTLDATA;
vWndParams.cchText = 0L;
if (m_hStaticValue)
{
wxSprintf(wxBuffer, wxT("%d"), nValue);
- ::WinSetWindowText((HWND)m_hStaticValue, wxBuffer);
+ ::WinSetWindowText((HWND)m_hStaticValue, (PSZ)wxBuffer);
}
} // end of wxSlider::SetValue
::WinShowWindow((HWND)m_hStaticMin, bShow);
if(m_hStaticMax)
::WinShowWindow((HWND)m_hStaticMax, bShow);
- return TRUE;
+ return true;
} // end of wxSlider::Show
+#endif // wxUSE_SLIDER