// Created: 16.04.01
// Id: $Id$
// Copyright: (c) 2001 Vadim Zeitlin
-// License: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// sides radiobox values
enum
{
+ SliderTicks_None,
SliderTicks_Top,
SliderTicks_Bottom,
SliderTicks_Left,
// ------------
// the check/radio boxes for styles
- wxCheckBox *m_chkLabels,
+ wxCheckBox *m_chkMinMaxLabels,
+ *m_chkValueLabel,
*m_chkInverse,
*m_chkTicks,
*m_chkBothSides;
m_chkInverse =
m_chkTicks =
- m_chkLabels =
+ m_chkMinMaxLabels =
+ m_chkValueLabel =
m_chkBothSides = (wxCheckBox *)NULL;
m_radioSides = (wxRadioBox *)NULL;
m_chkInverse = CreateCheckBoxAndAddToSizer(sizerLeft, wxT("&Inverse"));
m_chkTicks = CreateCheckBoxAndAddToSizer(sizerLeft, wxT("Show &ticks"));
- m_chkLabels = CreateCheckBoxAndAddToSizer(sizerLeft, wxT("Show &labels"));
+ m_chkMinMaxLabels = CreateCheckBoxAndAddToSizer(sizerLeft, wxT("Show min/max &labels"));
+ m_chkValueLabel = CreateCheckBoxAndAddToSizer(sizerLeft, wxT("Show &value label"));
static const wxString sides[] =
{
+ wxT("default"),
wxT("top"),
wxT("bottom"),
wxT("left"),
wxT("right"),
};
- m_radioSides = new wxRadioBox(this, SliderPage_RadioSides, wxT("&Ticks/Labels"),
+ m_radioSides = new wxRadioBox(this, SliderPage_RadioSides, wxT("&Label position"),
wxDefaultPosition, wxDefaultSize,
WXSIZEOF(sides), sides,
1, wxRA_SPECIFY_COLS);
{
m_chkInverse->SetValue(false);
m_chkTicks->SetValue(true);
- m_chkLabels->SetValue(true);
+ m_chkValueLabel->SetValue(true);
+ m_chkMinMaxLabels->SetValue(true);
m_chkBothSides->SetValue(false);
- m_radioSides->SetSelection(SliderTicks_Top);
+ m_radioSides->SetSelection(SliderTicks_None);
}
void SliderWidgetsPage::CreateSlider()
flags |= wxSL_INVERSE;
}
- if ( m_chkLabels->GetValue() )
+ if ( m_chkMinMaxLabels->GetValue() )
{
- flags |= wxSL_LABELS;
+ flags |= wxSL_MIN_MAX_LABELS;
+ }
+
+ if ( m_chkValueLabel->GetValue() )
+ {
+ flags |= wxSL_VALUE_LABEL;
}
if ( m_chkTicks->GetValue() )
flags |= wxSL_AUTOTICKS;
}
+ // notice that the style names refer to the _ticks_ positions while we want
+ // to allow the user to select the label(s) positions and the labels are on
+ // the opposite side from the ticks, hence the apparent reversal below
switch ( m_radioSides->GetSelection() )
{
+ case SliderTicks_None:
+ break;
+
case SliderTicks_Top:
- flags |= wxSL_TOP;
+ flags |= wxSL_BOTTOM;
break;
case SliderTicks_Left:
- flags |= wxSL_LEFT;
+ flags |= wxSL_RIGHT | wxSL_VERTICAL;
break;
case SliderTicks_Bottom:
- flags |= wxSL_BOTTOM;
+ flags |= wxSL_TOP;
break;
case SliderTicks_Right:
- flags |= wxSL_RIGHT;
+ flags |= wxSL_LEFT | wxSL_VERTICAL;
break;
default:
return;
}
- m_slider->SetTickFreq(freq, 0 /* unused */);
+ m_slider->SetTickFreq(freq);
}
void SliderWidgetsPage::DoSetThumbLen()
{
event.Enable( m_chkInverse->GetValue() ||
!m_chkTicks->GetValue() ||
- !m_chkLabels->GetValue() ||
+ !m_chkValueLabel->GetValue() ||
+ !m_chkMinMaxLabels->GetValue() ||
m_chkBothSides->GetValue() ||
- m_radioSides->GetSelection() != SliderTicks_Top );
+ m_radioSides->GetSelection() != SliderTicks_None );
}
void SliderWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))
void SliderWidgetsPage::OnUpdateUIRadioSides(wxUpdateUIEvent& event)
{
- event.Enable( m_chkLabels->GetValue() || m_chkTicks->GetValue() );
+ event.Enable( m_chkValueLabel->GetValue() || m_chkTicks->GetValue() );
}
void SliderWidgetsPage::OnUpdateUIBothSides(wxUpdateUIEvent& event)