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_Clear,
|
||||||
SliderPage_SetValue,
|
SliderPage_SetValue,
|
||||||
SliderPage_SetMinAndMax,
|
SliderPage_SetMinAndMax,
|
||||||
|
SliderPage_SetLineSize,
|
||||||
|
SliderPage_SetPageSize,
|
||||||
SliderPage_SetTickFreq,
|
SliderPage_SetTickFreq,
|
||||||
SliderPage_SetThumbLen,
|
SliderPage_SetThumbLen,
|
||||||
SliderPage_CurValueText,
|
SliderPage_CurValueText,
|
||||||
SliderPage_ValueText,
|
SliderPage_ValueText,
|
||||||
SliderPage_MinText,
|
SliderPage_MinText,
|
||||||
SliderPage_MaxText,
|
SliderPage_MaxText,
|
||||||
|
SliderPage_LineSizeText,
|
||||||
|
SliderPage_PageSizeText,
|
||||||
SliderPage_TickFreqText,
|
SliderPage_TickFreqText,
|
||||||
SliderPage_ThumbLenText,
|
SliderPage_ThumbLenText,
|
||||||
SliderPage_RadioSides,
|
SliderPage_RadioSides,
|
||||||
@@ -104,6 +108,8 @@ protected:
|
|||||||
void OnButtonClear(wxCommandEvent& event);
|
void OnButtonClear(wxCommandEvent& event);
|
||||||
void OnButtonSetValue(wxCommandEvent& event);
|
void OnButtonSetValue(wxCommandEvent& event);
|
||||||
void OnButtonSetMinAndMax(wxCommandEvent& event);
|
void OnButtonSetMinAndMax(wxCommandEvent& event);
|
||||||
|
void OnButtonSetLineSize(wxCommandEvent& event);
|
||||||
|
void OnButtonSetPageSize(wxCommandEvent& event);
|
||||||
void OnButtonSetTickFreq(wxCommandEvent& event);
|
void OnButtonSetTickFreq(wxCommandEvent& event);
|
||||||
void OnButtonSetThumbLen(wxCommandEvent& event);
|
void OnButtonSetThumbLen(wxCommandEvent& event);
|
||||||
|
|
||||||
@@ -113,6 +119,8 @@ protected:
|
|||||||
|
|
||||||
void OnUpdateUIValueButton(wxUpdateUIEvent& event);
|
void OnUpdateUIValueButton(wxUpdateUIEvent& event);
|
||||||
void OnUpdateUIMinMaxButton(wxUpdateUIEvent& event);
|
void OnUpdateUIMinMaxButton(wxUpdateUIEvent& event);
|
||||||
|
void OnUpdateUILineSize(wxUpdateUIEvent& event);
|
||||||
|
void OnUpdateUIPageSize(wxUpdateUIEvent& event);
|
||||||
void OnUpdateUITickFreq(wxUpdateUIEvent& event);
|
void OnUpdateUITickFreq(wxUpdateUIEvent& event);
|
||||||
void OnUpdateUIThumbLen(wxUpdateUIEvent& event);
|
void OnUpdateUIThumbLen(wxUpdateUIEvent& event);
|
||||||
void OnUpdateUIRadioSides(wxUpdateUIEvent& event);
|
void OnUpdateUIRadioSides(wxUpdateUIEvent& event);
|
||||||
@@ -128,6 +136,12 @@ protected:
|
|||||||
// (re)create the slider
|
// (re)create the slider
|
||||||
void CreateSlider();
|
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
|
// set the tick frequency from the text field value
|
||||||
void DoSetTickFreq();
|
void DoSetTickFreq();
|
||||||
|
|
||||||
@@ -160,6 +174,8 @@ protected:
|
|||||||
wxTextCtrl *m_textValue,
|
wxTextCtrl *m_textValue,
|
||||||
*m_textMin,
|
*m_textMin,
|
||||||
*m_textMax,
|
*m_textMax,
|
||||||
|
*m_textLineSize,
|
||||||
|
*m_textPageSize,
|
||||||
*m_textTickFreq,
|
*m_textTickFreq,
|
||||||
*m_textThumbLen;
|
*m_textThumbLen;
|
||||||
|
|
||||||
@@ -176,14 +192,17 @@ BEGIN_EVENT_TABLE(SliderWidgetsPage, WidgetsPage)
|
|||||||
EVT_BUTTON(SliderPage_Reset, SliderWidgetsPage::OnButtonReset)
|
EVT_BUTTON(SliderPage_Reset, SliderWidgetsPage::OnButtonReset)
|
||||||
EVT_BUTTON(SliderPage_SetValue, SliderWidgetsPage::OnButtonSetValue)
|
EVT_BUTTON(SliderPage_SetValue, SliderWidgetsPage::OnButtonSetValue)
|
||||||
EVT_BUTTON(SliderPage_SetMinAndMax, SliderWidgetsPage::OnButtonSetMinAndMax)
|
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_SetTickFreq, SliderWidgetsPage::OnButtonSetTickFreq)
|
||||||
EVT_BUTTON(SliderPage_SetThumbLen, SliderWidgetsPage::OnButtonSetThumbLen)
|
EVT_BUTTON(SliderPage_SetThumbLen, SliderWidgetsPage::OnButtonSetThumbLen)
|
||||||
|
|
||||||
EVT_UPDATE_UI(SliderPage_SetValue, SliderWidgetsPage::OnUpdateUIValueButton)
|
EVT_UPDATE_UI(SliderPage_SetValue, SliderWidgetsPage::OnUpdateUIValueButton)
|
||||||
EVT_UPDATE_UI(SliderPage_SetMinAndMax, SliderWidgetsPage::OnUpdateUIMinMaxButton)
|
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_SetTickFreq, SliderWidgetsPage::OnUpdateUITickFreq)
|
||||||
EVT_UPDATE_UI(SliderPage_SetThumbLen, SliderWidgetsPage::OnUpdateUIThumbLen)
|
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_RadioSides, SliderWidgetsPage::OnUpdateUIRadioSides)
|
||||||
EVT_UPDATE_UI(SliderPage_BothSides, SliderWidgetsPage::OnUpdateUIBothSides)
|
EVT_UPDATE_UI(SliderPage_BothSides, SliderWidgetsPage::OnUpdateUIBothSides)
|
||||||
|
|
||||||
@@ -293,6 +312,20 @@ void SliderWidgetsPage::CreateContent()
|
|||||||
|
|
||||||
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
|
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,
|
sizerRow = CreateSizerWithTextAndButton(SliderPage_SetTickFreq,
|
||||||
_T("Tick &frequency"),
|
_T("Tick &frequency"),
|
||||||
SliderPage_TickFreqText,
|
SliderPage_TickFreqText,
|
||||||
@@ -317,6 +350,9 @@ void SliderWidgetsPage::CreateContent()
|
|||||||
Reset();
|
Reset();
|
||||||
CreateSlider();
|
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
|
// the 3 panes panes compose the window
|
||||||
sizerTop->Add(sizerLeft, 0, wxGROW | (wxALL & ~wxLEFT), 10);
|
sizerTop->Add(sizerLeft, 0, wxGROW | (wxALL & ~wxLEFT), 10);
|
||||||
sizerTop->Add(sizerMiddle, 0, wxGROW | wxALL, 10);
|
sizerTop->Add(sizerMiddle, 0, wxGROW | wxALL, 10);
|
||||||
@@ -434,6 +470,42 @@ void SliderWidgetsPage::CreateSlider()
|
|||||||
m_sizerSlider->Layout();
|
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()
|
void SliderWidgetsPage::DoSetTickFreq()
|
||||||
{
|
{
|
||||||
long freq;
|
long freq;
|
||||||
@@ -471,6 +543,16 @@ void SliderWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event))
|
|||||||
CreateSlider();
|
CreateSlider();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SliderWidgetsPage::OnButtonSetLineSize(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
DoSetLineSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SliderWidgetsPage::OnButtonSetPageSize(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
DoSetPageSize();
|
||||||
|
}
|
||||||
|
|
||||||
void SliderWidgetsPage::OnButtonSetTickFreq(wxCommandEvent& WXUNUSED(event))
|
void SliderWidgetsPage::OnButtonSetTickFreq(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
DoSetTickFreq();
|
DoSetTickFreq();
|
||||||
@@ -525,6 +607,20 @@ void SliderWidgetsPage::OnUpdateUIValueButton(wxUpdateUIEvent& event)
|
|||||||
event.Enable( m_textValue->GetValue().ToLong(&val) && IsValidValue(val) );
|
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)
|
void SliderWidgetsPage::OnUpdateUITickFreq(wxUpdateUIEvent& event)
|
||||||
{
|
{
|
||||||
long freq;
|
long freq;
|
||||||
|
Reference in New Issue
Block a user