git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31912
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// format an integer value as string
static wxString Format(int n) { return wxString::Format(_T("%d"), n); }
// format an integer value as string
static wxString Format(int n) { return wxString::Format(_T("%d"), n); }
+ // Common processing to invert slider values based on wxSL_INVERSE
+ int MSWInvertOrNot(int value) const;
+
// get the boundig box for the slider and possible labels
wxRect GetBoundingBox() const;
// get the boundig box for the slider and possible labels
wxRect GetBoundingBox() const;
wxFLAGS_MEMBER(wxSL_BOTTOM)
wxFLAGS_MEMBER(wxSL_BOTH)
wxFLAGS_MEMBER(wxSL_SELRANGE)
wxFLAGS_MEMBER(wxSL_BOTTOM)
wxFLAGS_MEMBER(wxSL_BOTH)
wxFLAGS_MEMBER(wxSL_SELRANGE)
+ wxFLAGS_MEMBER(wxSL_INVERSE)
wxEND_FLAGS( wxSliderStyle )
wxEND_FLAGS( wxSliderStyle )
- int newPos = (int) ::SendMessage((HWND) control, TBM_GETPOS, 0, 0);
+ int newPos = MSWInvertOrNot((int) ::SendMessage((HWND) control, TBM_GETPOS, 0, 0));
if ( (newPos < GetMin()) || (newPos > GetMax()) )
{
// out of range - but we did process it
if ( (newPos < GetMin()) || (newPos > GetMax()) )
{
// out of range - but we did process it
// slider-specific methods
// ----------------------------------------------------------------------------
// slider-specific methods
// ----------------------------------------------------------------------------
+int wxSlider95::MSWInvertOrNot(int value) const
+{
+ if (m_windowStyle & wxSL_INVERSE)
+ return (m_rangeMax + m_rangeMin) - value;
+ else
+ return value;
+}
+
int wxSlider95::GetValue() const
{
int wxSlider95::GetValue() const
{
- return ::SendMessage(GetHwnd(), TBM_GETPOS, 0, 0);
+ return MSWInvertOrNot(::SendMessage(GetHwnd(), TBM_GETPOS, 0, 0));
}
void wxSlider95::SetValue(int value)
{
}
void wxSlider95::SetValue(int value)
{
- ::SendMessage(GetHwnd(), TBM_SETPOS, (WPARAM)TRUE, (LPARAM)value);
+ ::SendMessage(GetHwnd(), TBM_SETPOS, (WPARAM)TRUE, (LPARAM)MSWInvertOrNot(value));
- ::SetWindowText((*m_labels)[SliderLabel_Min], Format(m_rangeMin));
- ::SetWindowText((*m_labels)[SliderLabel_Max], Format(m_rangeMax));
+ ::SetWindowText((*m_labels)[SliderLabel_Min], Format(MSWInvertOrNot(m_rangeMin)));
+ ::SetWindowText((*m_labels)[SliderLabel_Max], Format(MSWInvertOrNot(m_rangeMax)));
int wxSlider95::GetThumbLength() const
{
int wxSlider95::GetThumbLength() const
{
- return (int)::SendMessage( GetHwnd(), TBM_GETTHUMBLENGTH, 0, 0);
+ return (int)::SendMessage( GetHwnd(), TBM_GETTHUMBLENGTH, 0, 0);
}
void wxSlider95::SetTick(int tickPos)
{
}
void wxSlider95::SetTick(int tickPos)
{
- ::SendMessage( GetHwnd(), TBM_SETTIC, (WPARAM) 0, (LPARAM) tickPos );
+ ::SendMessage( GetHwnd(), TBM_SETTIC, (WPARAM) 0, (LPARAM) tickPos );
}
// ----------------------------------------------------------------------------
}
// ----------------------------------------------------------------------------