Make wxSlider behaviours in wxUniv same as other ports, and generate proper wxScrollEvent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -213,17 +213,6 @@ bool wxSlider::ChangeValueTo(int value)
|
|||||||
|
|
||||||
Refresh();
|
Refresh();
|
||||||
|
|
||||||
// generate the events: both a specific scroll event and a command event
|
|
||||||
wxScrollEvent eventScroll(wxEVT_SCROLL_CHANGED, GetId());
|
|
||||||
eventScroll.SetPosition(m_value);
|
|
||||||
eventScroll.SetEventObject( this );
|
|
||||||
(void)GetEventHandler()->ProcessEvent(eventScroll);
|
|
||||||
|
|
||||||
wxCommandEvent event(wxEVT_SLIDER, GetId());
|
|
||||||
event.SetInt(m_value);
|
|
||||||
event.SetEventObject(this);
|
|
||||||
(void)GetEventHandler()->ProcessEvent(event);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -782,27 +771,28 @@ bool wxSlider::PerformAction(const wxControlAction& action,
|
|||||||
}
|
}
|
||||||
else if ( action == wxACTION_SLIDER_PAGE_CHANGE )
|
else if ( action == wxACTION_SLIDER_PAGE_CHANGE )
|
||||||
{
|
{
|
||||||
|
scrollEvent = wxEVT_SCROLL_CHANGED;
|
||||||
value = NormalizeValue(m_value + numArg * GetPageSize());
|
value = NormalizeValue(m_value + numArg * GetPageSize());
|
||||||
}
|
}
|
||||||
else if ( action == wxACTION_SLIDER_LINE_UP )
|
else if ( action == wxACTION_SLIDER_LINE_UP )
|
||||||
{
|
{
|
||||||
scrollEvent = wxEVT_SCROLL_LINEUP;
|
scrollEvent = wxEVT_SCROLL_LINEUP;
|
||||||
value = NormalizeValue(m_value + +GetLineSize());
|
value = NormalizeValue(m_value + -GetLineSize());
|
||||||
}
|
}
|
||||||
else if ( action == wxACTION_SLIDER_LINE_DOWN )
|
else if ( action == wxACTION_SLIDER_LINE_DOWN )
|
||||||
{
|
{
|
||||||
scrollEvent = wxEVT_SCROLL_LINEDOWN;
|
scrollEvent = wxEVT_SCROLL_LINEDOWN;
|
||||||
value = NormalizeValue(m_value + -GetLineSize());
|
value = NormalizeValue(m_value + +GetLineSize());
|
||||||
}
|
}
|
||||||
else if ( action == wxACTION_SLIDER_PAGE_UP )
|
else if ( action == wxACTION_SLIDER_PAGE_UP )
|
||||||
{
|
{
|
||||||
scrollEvent = wxEVT_SCROLL_PAGEUP;
|
scrollEvent = wxEVT_SCROLL_PAGEUP;
|
||||||
value = NormalizeValue(m_value + +GetPageSize());
|
value = NormalizeValue(m_value + -GetPageSize());
|
||||||
}
|
}
|
||||||
else if ( action == wxACTION_SLIDER_PAGE_DOWN )
|
else if ( action == wxACTION_SLIDER_PAGE_DOWN )
|
||||||
{
|
{
|
||||||
scrollEvent = wxEVT_SCROLL_PAGEDOWN;
|
scrollEvent = wxEVT_SCROLL_PAGEDOWN;
|
||||||
value = NormalizeValue(m_value + -GetPageSize());
|
value = NormalizeValue(m_value + +GetPageSize());
|
||||||
}
|
}
|
||||||
else if ( action == wxACTION_SLIDER_THUMB_DRAG ||
|
else if ( action == wxACTION_SLIDER_THUMB_DRAG ||
|
||||||
action == wxACTION_SLIDER_THUMB_MOVE )
|
action == wxACTION_SLIDER_THUMB_MOVE )
|
||||||
@@ -826,12 +816,11 @@ bool wxSlider::PerformAction(const wxControlAction& action,
|
|||||||
return wxControl::PerformAction(action, numArg, strArg);
|
return wxControl::PerformAction(action, numArg, strArg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// update wxSlider current value and generate wxCommandEvent, except while
|
// update wxSlider current value
|
||||||
// dragging the thumb
|
|
||||||
if ( valueChanged )
|
if ( valueChanged )
|
||||||
ChangeValueTo(value);
|
ChangeValueTo(value);
|
||||||
|
|
||||||
// also generate more precise wxScrollEvent if applicable
|
// generate wxScrollEvent
|
||||||
if ( scrollEvent != wxEVT_NULL )
|
if ( scrollEvent != wxEVT_NULL )
|
||||||
{
|
{
|
||||||
wxScrollEvent event(scrollEvent, GetId());
|
wxScrollEvent event(scrollEvent, GetId());
|
||||||
|
Reference in New Issue
Block a user