From 74d686bc59cd70e7ad89f7845199eb751aa7145d Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Thu, 15 Oct 2015 15:26:50 +0200 Subject: simplify the CellController modify Link<> handling in preparation for some more "make Link<> typed" work Change-Id: Ifdf58cc697c7172102bf9e4cc63f869c522517e6 --- svtools/source/brwbox/ebbcontrols.cxx | 38 ++++++++++++++++++++------------- svtools/source/brwbox/editbrowsebox.cxx | 5 ++--- 2 files changed, 25 insertions(+), 18 deletions(-) (limited to 'svtools') diff --git a/svtools/source/brwbox/ebbcontrols.cxx b/svtools/source/brwbox/ebbcontrols.cxx index 491f02be8f89..d31eb22cdc34 100644 --- a/svtools/source/brwbox/ebbcontrols.cxx +++ b/svtools/source/brwbox/ebbcontrols.cxx @@ -77,6 +77,7 @@ namespace svt ComboBoxCellController::ComboBoxCellController(ComboBoxControl* pWin) :CellController(pWin) { + GetComboBox().SetModifyHdl( LINK(this, ComboBoxCellController, ModifyHdl) ); } @@ -129,9 +130,10 @@ namespace svt GetComboBox().SaveValue(); } - void ComboBoxCellController::SetModifyHdl(const Link<>& rLink) + IMPL_LINK_NOARG(ComboBoxCellController, ModifyHdl) { - GetComboBox().SetModifyHdl(rLink); + callModifyHdl(); + return 0; } //= ListBoxControl @@ -215,14 +217,9 @@ namespace svt } - void ListBoxCellController::SetModifyHdl(const Link<>& rLink) + IMPL_LINK_NOARG_TYPED(ListBoxCellController, ListBoxSelectHdl, ListBox&, void) { - maModifyHdl = rLink; - } - - IMPL_LINK_TYPED(ListBoxCellController, ListBoxSelectHdl, ListBox&, rListBox, void) - { - maModifyHdl.Call(&rListBox); + callModifyHdl(); } @@ -333,6 +330,11 @@ namespace svt //= CheckBoxCellController + CheckBoxCellController::CheckBoxCellController(CheckBoxControl* pWin):CellController(pWin) + { + static_cast(GetWindow()).SetModifyHdl( LINK(this, CheckBoxCellController, ModifyHdl) ); + } + bool CheckBoxCellController::WantMouseEvent() const { return true; @@ -357,9 +359,10 @@ namespace svt } - void CheckBoxCellController::SetModifyHdl(const Link<>& rLink) + IMPL_LINK_NOARG(CheckBoxCellController, ModifyHdl) { - static_cast(GetWindow()).SetModifyHdl(rLink); + callModifyHdl(); + return 0; } @@ -386,6 +389,7 @@ namespace svt ,m_pEditImplementation( new EditImplementation( *_pEdit ) ) ,m_bOwnImplementation( true ) { + m_pEditImplementation->SetModifyHdl( LINK(this, EditCellController, ModifyHdl) ); } @@ -394,6 +398,7 @@ namespace svt ,m_pEditImplementation( _pImplementation ) ,m_bOwnImplementation( false ) { + m_pEditImplementation->SetModifyHdl( LINK(this, EditCellController, ModifyHdl) ); } @@ -446,9 +451,10 @@ namespace svt } - void EditCellController::SetModifyHdl(const Link<>& rLink) + IMPL_LINK_NOARG(EditCellController, ModifyHdl) { - m_pEditImplementation->SetModifyHdl(rLink); + callModifyHdl(); + return 0; } @@ -458,6 +464,7 @@ namespace svt SpinCellController::SpinCellController(SpinField* pWin) :CellController(pWin) { + GetSpinWindow().SetModifyHdl( LINK(this, SpinCellController, ModifyHdl) ); } @@ -503,9 +510,10 @@ namespace svt } - void SpinCellController::SetModifyHdl(const Link<>& rLink) + IMPL_LINK_NOARG(SpinCellController, ModifyHdl) { - GetSpinWindow().SetModifyHdl(rLink); + callModifyHdl(); + return 0; } diff --git a/svtools/source/brwbox/editbrowsebox.cxx b/svtools/source/brwbox/editbrowsebox.cxx index d64b3b850394..b5ad2ce63224 100644 --- a/svtools/source/brwbox/editbrowsebox.cxx +++ b/svtools/source/brwbox/editbrowsebox.cxx @@ -1044,7 +1044,7 @@ namespace svt aController.Clear(); // reset the modify handler - aOldController->SetModifyHdl(Link<>()); + aOldController->SetModifyHdl(Link()); if (bHasFocus) GrabFocus(); // ensure that we have (and keep) the focus @@ -1088,12 +1088,11 @@ namespace svt } - IMPL_LINK_NOARG(EditBrowseBox, ModifyHdl) + IMPL_LINK_NOARG_TYPED(EditBrowseBox, ModifyHdl, LinkParamNone*, void) { if (nCellModifiedEvent) Application::RemoveUserEvent(nCellModifiedEvent); nCellModifiedEvent = Application::PostUserEvent(LINK(this,EditBrowseBox,CellModifiedHdl), NULL, true); - return 0; } -- cgit