Add line and page size modification possibility.
Fix tick freq text field going insensitive and unusable. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40338 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -60,12 +60,16 @@ enum
|
||||
SliderPage_Clear,
|
||||
SliderPage_SetValue,
|
||||
SliderPage_SetMinAndMax,
|
||||
SliderPage_SetLineSize,
|
||||
SliderPage_SetPageSize,
|
||||
SliderPage_SetTickFreq,
|
||||
SliderPage_SetThumbLen,
|
||||
SliderPage_CurValueText,
|
||||
SliderPage_ValueText,
|
||||
SliderPage_MinText,
|
||||
SliderPage_MaxText,
|
||||
SliderPage_LineSizeText,
|
||||
SliderPage_PageSizeText,
|
||||
SliderPage_TickFreqText,
|
||||
SliderPage_ThumbLenText,
|
||||
SliderPage_RadioSides,
|
||||
@@ -104,6 +108,8 @@ protected:
|
||||
void OnButtonClear(wxCommandEvent& event);
|
||||
void OnButtonSetValue(wxCommandEvent& event);
|
||||
void OnButtonSetMinAndMax(wxCommandEvent& event);
|
||||
void OnButtonSetLineSize(wxCommandEvent& event);
|
||||
void OnButtonSetPageSize(wxCommandEvent& event);
|
||||
void OnButtonSetTickFreq(wxCommandEvent& event);
|
||||
void OnButtonSetThumbLen(wxCommandEvent& event);
|
||||
|
||||
@@ -113,6 +119,8 @@ protected:
|
||||
|
||||
void OnUpdateUIValueButton(wxUpdateUIEvent& event);
|
||||
void OnUpdateUIMinMaxButton(wxUpdateUIEvent& event);
|
||||
void OnUpdateUILineSize(wxUpdateUIEvent& event);
|
||||
void OnUpdateUIPageSize(wxUpdateUIEvent& event);
|
||||
void OnUpdateUITickFreq(wxUpdateUIEvent& event);
|
||||
void OnUpdateUIThumbLen(wxUpdateUIEvent& event);
|
||||
void OnUpdateUIRadioSides(wxUpdateUIEvent& event);
|
||||
@@ -128,6 +136,12 @@ protected:
|
||||
// (re)create the slider
|
||||
void CreateSlider();
|
||||
|
||||
// set the line size from the text field value
|
||||
void DoSetLineSize();
|
||||
|
||||
// set the page size from the text field value
|
||||
void DoSetPageSize();
|
||||
|
||||
// set the tick frequency from the text field value
|
||||
void DoSetTickFreq();
|
||||
|
||||
@@ -160,6 +174,8 @@ protected:
|
||||
wxTextCtrl *m_textValue,
|
||||
*m_textMin,
|
||||
*m_textMax,
|
||||
*m_textLineSize,
|
||||
*m_textPageSize,
|
||||
*m_textTickFreq,
|
||||
*m_textThumbLen;
|
||||
|
||||
@@ -176,14 +192,17 @@ BEGIN_EVENT_TABLE(SliderWidgetsPage, WidgetsPage)
|
||||
EVT_BUTTON(SliderPage_Reset, SliderWidgetsPage::OnButtonReset)
|
||||
EVT_BUTTON(SliderPage_SetValue, SliderWidgetsPage::OnButtonSetValue)
|
||||
EVT_BUTTON(SliderPage_SetMinAndMax, SliderWidgetsPage::OnButtonSetMinAndMax)
|
||||
EVT_BUTTON(SliderPage_SetLineSize, SliderWidgetsPage::OnButtonSetLineSize)
|
||||
EVT_BUTTON(SliderPage_SetPageSize, SliderWidgetsPage::OnButtonSetPageSize)
|
||||
EVT_BUTTON(SliderPage_SetTickFreq, SliderWidgetsPage::OnButtonSetTickFreq)
|
||||
EVT_BUTTON(SliderPage_SetThumbLen, SliderWidgetsPage::OnButtonSetThumbLen)
|
||||
|
||||
EVT_UPDATE_UI(SliderPage_SetValue, SliderWidgetsPage::OnUpdateUIValueButton)
|
||||
EVT_UPDATE_UI(SliderPage_SetMinAndMax, SliderWidgetsPage::OnUpdateUIMinMaxButton)
|
||||
EVT_UPDATE_UI(SliderPage_SetLineSize, SliderWidgetsPage::OnUpdateUILineSize)
|
||||
EVT_UPDATE_UI(SliderPage_SetPageSize, SliderWidgetsPage::OnUpdateUIPageSize)
|
||||
EVT_UPDATE_UI(SliderPage_SetTickFreq, SliderWidgetsPage::OnUpdateUITickFreq)
|
||||
EVT_UPDATE_UI(SliderPage_SetThumbLen, SliderWidgetsPage::OnUpdateUIThumbLen)
|
||||
EVT_UPDATE_UI(SliderPage_TickFreqText, SliderWidgetsPage::OnUpdateUITickFreq)
|
||||
EVT_UPDATE_UI(SliderPage_RadioSides, SliderWidgetsPage::OnUpdateUIRadioSides)
|
||||
EVT_UPDATE_UI(SliderPage_BothSides, SliderWidgetsPage::OnUpdateUIBothSides)
|
||||
|
||||
@@ -293,6 +312,20 @@ void SliderWidgetsPage::CreateContent()
|
||||
|
||||
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
|
||||
|
||||
sizerRow = CreateSizerWithTextAndButton(SliderPage_SetLineSize,
|
||||
_T("Li&ne size"),
|
||||
SliderPage_LineSizeText,
|
||||
&m_textLineSize);
|
||||
|
||||
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
|
||||
|
||||
sizerRow = CreateSizerWithTextAndButton(SliderPage_SetPageSize,
|
||||
_T("P&age size"),
|
||||
SliderPage_PageSizeText,
|
||||
&m_textPageSize);
|
||||
|
||||
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
|
||||
|
||||
sizerRow = CreateSizerWithTextAndButton(SliderPage_SetTickFreq,
|
||||
_T("Tick &frequency"),
|
||||
SliderPage_TickFreqText,
|
||||
@@ -317,6 +350,9 @@ void SliderWidgetsPage::CreateContent()
|
||||
Reset();
|
||||
CreateSlider();
|
||||
|
||||
m_textLineSize->SetValue(wxString::Format(_T("%d"), m_slider->GetLineSize()));
|
||||
m_textPageSize->SetValue(wxString::Format(_T("%d"), m_slider->GetPageSize()));
|
||||
|
||||
// the 3 panes panes compose the window
|
||||
sizerTop->Add(sizerLeft, 0, wxGROW | (wxALL & ~wxLEFT), 10);
|
||||
sizerTop->Add(sizerMiddle, 0, wxGROW | wxALL, 10);
|
||||
@@ -434,6 +470,42 @@ void SliderWidgetsPage::CreateSlider()
|
||||
m_sizerSlider->Layout();
|
||||
}
|
||||
|
||||
void SliderWidgetsPage::DoSetLineSize()
|
||||
{
|
||||
long lineSize;
|
||||
if ( !m_textLineSize->GetValue().ToLong(&lineSize) )
|
||||
{
|
||||
wxLogWarning(_T("Invalid slider line size"));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
m_slider->SetLineSize(lineSize);
|
||||
|
||||
if ( m_slider->GetLineSize() != lineSize )
|
||||
{
|
||||
wxLogWarning(_T("Invalid line size in slider."));
|
||||
}
|
||||
}
|
||||
|
||||
void SliderWidgetsPage::DoSetPageSize()
|
||||
{
|
||||
long pageSize;
|
||||
if ( !m_textPageSize->GetValue().ToLong(&pageSize) )
|
||||
{
|
||||
wxLogWarning(_T("Invalid slider page size"));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
m_slider->SetPageSize(pageSize);
|
||||
|
||||
if ( m_slider->GetPageSize() != pageSize )
|
||||
{
|
||||
wxLogWarning(_T("Invalid page size in slider."));
|
||||
}
|
||||
}
|
||||
|
||||
void SliderWidgetsPage::DoSetTickFreq()
|
||||
{
|
||||
long freq;
|
||||
@@ -471,6 +543,16 @@ void SliderWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event))
|
||||
CreateSlider();
|
||||
}
|
||||
|
||||
void SliderWidgetsPage::OnButtonSetLineSize(wxCommandEvent& WXUNUSED(event))
|
||||
{
|
||||
DoSetLineSize();
|
||||
}
|
||||
|
||||
void SliderWidgetsPage::OnButtonSetPageSize(wxCommandEvent& WXUNUSED(event))
|
||||
{
|
||||
DoSetPageSize();
|
||||
}
|
||||
|
||||
void SliderWidgetsPage::OnButtonSetTickFreq(wxCommandEvent& WXUNUSED(event))
|
||||
{
|
||||
DoSetTickFreq();
|
||||
@@ -525,6 +607,20 @@ void SliderWidgetsPage::OnUpdateUIValueButton(wxUpdateUIEvent& event)
|
||||
event.Enable( m_textValue->GetValue().ToLong(&val) && IsValidValue(val) );
|
||||
}
|
||||
|
||||
void SliderWidgetsPage::OnUpdateUILineSize(wxUpdateUIEvent& event)
|
||||
{
|
||||
long lineSize;
|
||||
event.Enable( m_textLineSize->GetValue().ToLong(&lineSize) &&
|
||||
(lineSize > 0) && (lineSize <= m_max - m_min) );
|
||||
}
|
||||
|
||||
void SliderWidgetsPage::OnUpdateUIPageSize(wxUpdateUIEvent& event)
|
||||
{
|
||||
long pageSize;
|
||||
event.Enable( m_textPageSize->GetValue().ToLong(&pageSize) &&
|
||||
(pageSize > 0) && (pageSize <= m_max - m_min) );
|
||||
}
|
||||
|
||||
void SliderWidgetsPage::OnUpdateUITickFreq(wxUpdateUIEvent& event)
|
||||
{
|
||||
long freq;
|
||||
|
Reference in New Issue
Block a user