diff options
Diffstat (limited to 'vcl/source/control')
-rw-r--r-- | vcl/source/control/edit.cxx | 4 | ||||
-rw-r--r-- | vcl/source/control/slider.cxx | 25 |
2 files changed, 13 insertions, 16 deletions
diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx index 8461583c1413..d287058916a4 100644 --- a/vcl/source/control/edit.cxx +++ b/vcl/source/control/edit.cxx @@ -2416,7 +2416,7 @@ void Edit::Modify() if ( mpUpdateDataTimer ) mpUpdateDataTimer->Start(); - if ( ImplCallEventListenersAndHandler( VCLEVENT_EDIT_MODIFY, [this] () { maModifyHdl.Call(this); } ) ) + if ( ImplCallEventListenersAndHandler( VCLEVENT_EDIT_MODIFY, [this] () { maModifyHdl.Call(*this); } ) ) // have been destroyed while calling into the handlers return; @@ -2435,7 +2435,7 @@ void Edit::Modify() void Edit::UpdateData() { - maUpdateDataHdl.Call( this ); + maUpdateDataHdl.Call( *this ); } IMPL_LINK_NOARG_TYPED(Edit, ImplUpdateDataHdl, Timer *, void) diff --git a/vcl/source/control/slider.cxx b/vcl/source/control/slider.cxx index dd95df121deb..ef6bd776f40f 100644 --- a/vcl/source/control/slider.cxx +++ b/vcl/source/control/slider.cxx @@ -828,44 +828,41 @@ void Slider::Resize() void Slider::SetLinkedField(VclPtr<NumericField> pField) { - ImplSetFieldLink(Link<>()); if (mpLinkedField) + { + mpLinkedField->SetModifyHdl(Link<Edit&,void>()); + mpLinkedField->SetUpHdl(Link<SpinField&,void>()); + mpLinkedField->SetDownHdl(Link<SpinField&,void>()); + mpLinkedField->SetFirstHdl(Link<SpinField&,void>()); + mpLinkedField->SetLastHdl(Link<SpinField&,void>()); mpLinkedField->SetLoseFocusHdl(Link<Control&,void>()); + } mpLinkedField = pField; - ImplSetFieldLink(LINK(this, Slider, LinkedFieldModifyHdl)); if (mpLinkedField) - mpLinkedField->SetLoseFocusHdl(LINK(this, Slider, LinkedFieldLoseFocusHdl)); -} - -void Slider::ImplSetFieldLink(const Link<>& rLink) -{ - if (mpLinkedField != nullptr) { - mpLinkedField->SetModifyHdl(rLink); + mpLinkedField->SetModifyHdl(LINK(this, Slider, LinkedFieldModifyHdl)); mpLinkedField->SetUpHdl(LINK(this, Slider, LinkedFieldSpinnerHdl)); mpLinkedField->SetDownHdl(LINK(this, Slider, LinkedFieldSpinnerHdl)); mpLinkedField->SetFirstHdl(LINK(this, Slider, LinkedFieldSpinnerHdl)); mpLinkedField->SetLastHdl(LINK(this, Slider, LinkedFieldSpinnerHdl)); + mpLinkedField->SetLoseFocusHdl(LINK(this, Slider, LinkedFieldLoseFocusHdl)); } } IMPL_LINK_NOARG_TYPED(Slider, LinkedFieldSpinnerHdl, SpinField&, void) { if (mpLinkedField) - mpLinkedField->GetModifyHdl().Call(&mpLinkedField); + SetThumbPos(mpLinkedField->GetValue()); } IMPL_LINK_NOARG_TYPED(Slider, LinkedFieldLoseFocusHdl, Control&, void) { if (mpLinkedField) SetThumbPos(mpLinkedField->GetValue()); } - -IMPL_LINK(Slider, LinkedFieldModifyHdl, NumericField*, /*pField*/) +IMPL_LINK_NOARG_TYPED(Slider, LinkedFieldModifyHdl, Edit&, void) { if (mpLinkedField) SetThumbPos(mpLinkedField->GetValue()); - - return 0; } void Slider::RequestHelp( const HelpEvent& rHEvt ) |