[Libreoffice-commits] core.git: 25 commits - basctl/source cui/source dbaccess/source editeng/source extensions/source forms/source formula/source include/editeng include/svx include/vcl sc/source sd/source sfx2/source starmath/source svx/inc svx/source sw/inc sw/source vcl/source writerperfect/inc writerperfect/source xmlsecurity/inc xmlsecurity/source

Noel Grandin noel at peralex.com
Wed Sep 16 23:21:09 PDT 2015


 basctl/source/basicide/baside2.hxx                         |    2 
 basctl/source/basicide/baside2b.cxx                        |    3 
 cui/source/dialogs/SpellDialog.cxx                         |    3 
 cui/source/dialogs/cuigaldlg.cxx                           |    3 
 cui/source/dialogs/insdlg.cxx                              |    3 
 cui/source/dialogs/pastedlg.cxx                            |    5 -
 cui/source/inc/SpellDialog.hxx                             |    2 
 cui/source/inc/border.hxx                                  |    2 
 cui/source/inc/cuigaldlg.hxx                               |    2 
 cui/source/inc/insdlg.hxx                                  |    2 
 cui/source/inc/pastedlg.hxx                                |    2 
 cui/source/options/optjava.cxx                             |    3 
 cui/source/options/optjava.hxx                             |    2 
 cui/source/tabpages/border.cxx                             |    3 
 dbaccess/source/ui/control/ScrollHelper.cxx                |    7 -
 dbaccess/source/ui/control/dbtreelistbox.cxx               |    6 -
 dbaccess/source/ui/dlg/dbwiz.cxx                           |    5 -
 dbaccess/source/ui/dlg/dbwizsetup.cxx                      |   11 +-
 dbaccess/source/ui/dlg/dsselect.cxx                        |    5 -
 dbaccess/source/ui/dlg/dsselect.hxx                        |    2 
 dbaccess/source/ui/dlg/generalpage.cxx                     |   10 +-
 dbaccess/source/ui/dlg/generalpage.hxx                     |   20 ++---
 dbaccess/source/ui/inc/QueryTableView.hxx                  |    5 -
 dbaccess/source/ui/inc/ScrollHelper.hxx                    |    8 +-
 dbaccess/source/ui/inc/WColumnSelect.hxx                   |    2 
 dbaccess/source/ui/inc/dbtreelistbox.hxx                   |    4 -
 dbaccess/source/ui/inc/dbwiz.hxx                           |    2 
 dbaccess/source/ui/inc/dbwizsetup.hxx                      |    8 +-
 dbaccess/source/ui/misc/WColumnSelect.cxx                  |    5 -
 dbaccess/source/ui/querydesign/QueryTableView.cxx          |   12 ---
 editeng/source/editeng/editeng.cxx                         |   34 ++++-----
 editeng/source/editeng/impedit.hxx                         |   38 +++++-----
 editeng/source/editeng/impedit2.cxx                        |   12 +--
 editeng/source/outliner/outleeng.hxx                       |    2 
 editeng/source/outliner/outlin2.cxx                        |    8 +-
 editeng/source/outliner/outliner.cxx                       |   49 ++++---------
 editeng/source/outliner/paralist.cxx                       |    4 -
 editeng/source/outliner/paralist.hxx                       |    4 -
 extensions/source/abpilot/tableselectionpage.cxx           |    4 -
 extensions/source/abpilot/tableselectionpage.hxx           |    2 
 extensions/source/bibliography/datman.cxx                  |    5 -
 extensions/source/dbpilots/commonpagesdbp.cxx              |    5 -
 extensions/source/dbpilots/commonpagesdbp.hxx              |    2 
 extensions/source/dbpilots/gridwizard.cxx                  |    7 -
 extensions/source/dbpilots/gridwizard.hxx                  |    2 
 extensions/source/dbpilots/listcombowizard.cxx             |    8 --
 extensions/source/dbpilots/listcombowizard.hxx             |    4 -
 forms/source/richtext/richtextmodel.cxx                    |    4 -
 forms/source/richtext/richtextmodel.hxx                    |    2 
 formula/source/ui/dlg/funcpage.cxx                         |    3 
 formula/source/ui/dlg/funcpage.hxx                         |    2 
 include/editeng/editeng.hxx                                |   32 ++++----
 include/editeng/outliner.hxx                               |   48 ++++++------
 include/svx/fmshell.hxx                                    |    2 
 include/svx/frmsel.hxx                                     |    4 -
 include/svx/imapdlg.hxx                                    |    2 
 include/svx/tbcontrl.hxx                                   |    5 -
 include/vcl/lstbox.hxx                                     |    6 -
 sc/source/filter/html/htmlpars.cxx                         |   36 ++++-----
 sc/source/filter/inc/htmlpars.hxx                          |    4 -
 sc/source/filter/inc/rtfparse.hxx                          |    2 
 sc/source/filter/rtf/rtfparse.cxx                          |   21 ++---
 sc/source/ui/Accessibility/AccessibleText.cxx              |   42 ++++-------
 sc/source/ui/app/inputhdl.cxx                              |    3 
 sc/source/ui/app/inputwin.cxx                              |   20 ++---
 sc/source/ui/dbgui/pvfundlg.cxx                            |   11 +-
 sc/source/ui/dbgui/scuiimoptdlg.cxx                        |    5 -
 sc/source/ui/formdlg/dwfunctr.cxx                          |   17 +---
 sc/source/ui/inc/AccessibleText.hxx                        |    4 -
 sc/source/ui/inc/dwfunctr.hxx                              |    2 
 sc/source/ui/inc/inputhdl.hxx                              |    2 
 sc/source/ui/inc/inputwin.hxx                              |   10 +-
 sc/source/ui/inc/lbseldlg.hxx                              |    2 
 sc/source/ui/inc/pvfundlg.hxx                              |    8 +-
 sc/source/ui/inc/scuiautofmt.hxx                           |    4 -
 sc/source/ui/inc/scuiimoptdlg.hxx                          |    2 
 sc/source/ui/inc/shtabdlg.hxx                              |    2 
 sc/source/ui/inc/tabvwsh.hxx                               |    2 
 sc/source/ui/miscdlgs/lbseldlg.cxx                         |    3 
 sc/source/ui/miscdlgs/scuiautofmt.cxx                      |    3 
 sc/source/ui/miscdlgs/shtabdlg.cxx                         |    3 
 sc/source/ui/view/tabvwsh4.cxx                             |    3 
 sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx |   19 ++---
 sd/source/ui/animations/CustomAnimationCreateDialog.cxx    |    5 -
 sd/source/ui/annotations/annotationwindow.cxx              |    4 -
 sd/source/ui/dlg/dlgass.cxx                                |   22 +++--
 sd/source/ui/inc/AccessibleOutlineEditSource.hxx           |    2 
 sd/source/ui/inc/FormShellManager.hxx                      |    2 
 sd/source/ui/inc/OutlineView.hxx                           |    5 -
 sd/source/ui/inc/dlgass.hxx                                |    3 
 sd/source/ui/view/FormShellManager.cxx                     |    6 -
 sd/source/ui/view/outlview.cxx                             |    6 -
 sfx2/source/appl/newhelp.cxx                               |   24 +++---
 sfx2/source/appl/newhelp.hxx                               |   15 ++-
 sfx2/source/doc/new.cxx                                    |    6 -
 starmath/source/accessibility.cxx                          |   17 +---
 starmath/source/accessibility.hxx                          |    2 
 svx/inc/svdibrow.hxx                                       |   12 +--
 svx/source/dialog/_contdlg.cxx                             |   24 ++----
 svx/source/dialog/contimp.hxx                              |    6 -
 svx/source/dialog/contwnd.cxx                              |    6 -
 svx/source/dialog/contwnd.hxx                              |   13 +--
 svx/source/dialog/frmsel.cxx                               |    6 -
 svx/source/dialog/imapdlg.cxx                              |    6 -
 svx/source/dialog/imapwnd.cxx                              |    4 -
 svx/source/dialog/imapwnd.hxx                              |    4 -
 svx/source/fmcomp/gridcell.cxx                             |   18 ++--
 svx/source/form/delayedevent.cxx                           |    4 -
 svx/source/form/fmexch.cxx                                 |    6 -
 svx/source/form/fmpgeimp.cxx                               |    2 
 svx/source/form/fmshell.cxx                                |    2 
 svx/source/form/fmshimp.cxx                                |    7 -
 svx/source/form/formcontroller.cxx                         |   15 +--
 svx/source/form/navigatortree.cxx                          |    3 
 svx/source/inc/delayedevent.hxx                            |    6 -
 svx/source/inc/fmexch.hxx                                  |    6 -
 svx/source/inc/fmexpl.hxx                                  |    6 -
 svx/source/inc/fmpgeimp.hxx                                |    6 -
 svx/source/inc/fmshimp.hxx                                 |    5 -
 svx/source/inc/fmtextcontrolshell.hxx                      |    4 -
 svx/source/inc/formcontroller.hxx                          |    8 +-
 svx/source/inc/frmselimpl.hxx                              |    2 
 svx/source/inc/gridcell.hxx                                |   18 ++--
 svx/source/svdraw/svdibrow.cxx                             |   14 +--
 svx/source/svdraw/svdoutlinercache.cxx                     |    4 -
 svx/source/table/tablertfimporter.cxx                      |   23 ++----
 svx/source/tbxctrls/colorwindow.hxx                        |    4 -
 svx/source/tbxctrls/tbcontrl.cxx                           |   23 ++----
 svx/source/unodraw/unoshtxt.cxx                            |   12 +--
 sw/inc/SidebarWin.hxx                                      |    2 
 sw/inc/view.hxx                                            |    2 
 sw/source/ui/chrdlg/swuiccoll.cxx                          |   14 ++-
 sw/source/ui/dbui/dbinsdlg.cxx                             |   10 +-
 sw/source/ui/dochdl/selglos.cxx                            |    3 
 sw/source/ui/fldui/flddb.cxx                               |    2 
 sw/source/ui/fldui/flddinf.cxx                             |    4 -
 sw/source/ui/fldui/flddok.cxx                              |    6 -
 sw/source/ui/fldui/fldfunc.cxx                             |   10 +-
 sw/source/ui/fldui/fldfunc.hxx                             |    2 
 sw/source/ui/fldui/fldpage.cxx                             |   18 ++--
 sw/source/ui/fldui/fldpage.hxx                             |    7 +
 sw/source/ui/fldui/fldref.cxx                              |    6 -
 sw/source/ui/fldui/fldvar.cxx                              |    8 +-
 sw/source/ui/index/cnttab.cxx                              |    3 
 sw/source/ui/misc/outline.cxx                              |    5 -
 sw/source/uibase/docvw/AnnotationWin.cxx                   |    4 -
 sw/source/uibase/docvw/SidebarTxtControlAcc.cxx            |   19 +----
 sw/source/uibase/docvw/SidebarWin.cxx                      |    7 -
 sw/source/uibase/inc/dbinsdlg.hxx                          |    2 
 sw/source/uibase/inc/selglos.hxx                           |    2 
 sw/source/uibase/inc/swuiccoll.hxx                         |    3 
 sw/source/uibase/inc/swuicnttab.hxx                        |    8 +-
 sw/source/uibase/sidebar/ThemePanel.cxx                    |   11 +-
 sw/source/uibase/sidebar/ThemePanel.hxx                    |    3 
 sw/source/uibase/uiview/view.cxx                           |    4 -
 sw/source/uibase/utlui/gloslst.cxx                         |    5 -
 vcl/source/control/lstbox.cxx                              |    2 
 writerperfect/inc/WPFTEncodingDialog.hxx                   |    2 
 writerperfect/source/common/WPFTEncodingDialog.cxx         |    5 -
 xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx    |    2 
 xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx         |   10 +-
 xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx     |    4 -
 xmlsecurity/source/helper/xmlsignaturehelper.cxx           |   22 ++---
 xmlsecurity/source/helper/xmlsignaturehelper2.cxx          |   14 ++-
 xmlsecurity/source/helper/xmlsignaturehelper2.hxx          |   10 +-
 165 files changed, 593 insertions(+), 725 deletions(-)

New commits:
commit cbf3fac0a5a1be34b2e1a58da959debd24ebc017
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Sep 16 17:17:38 2015 +0200

    remove unused Link<> field
    
    Change-Id: Ic829d0e1acf11ce361f6bfe59364661ef9cb4b83

diff --git a/dbaccess/source/ui/inc/QueryTableView.hxx b/dbaccess/source/ui/inc/QueryTableView.hxx
index d4dcde1..a0647da 100644
--- a/dbaccess/source/ui/inc/QueryTableView.hxx
+++ b/dbaccess/source/ui/inc/QueryTableView.hxx
@@ -41,8 +41,6 @@ namespace dbaui
 
     class OQueryTableView : public OJoinTableView
     {
-        Link<>  m_lnkTabWinsChangeHandler;
-
     protected:
         virtual void ConnDoubleClicked(OTableConnection* pConnection) SAL_OVERRIDE;
         virtual void KeyInput(const KeyEvent& rEvt) SAL_OVERRIDE;
@@ -113,9 +111,6 @@ namespace dbaui
         /// announce new Connection and insert it, if not existing yet
         void NotifyTabConnection(const OQueryTableConnection& rNewConn, bool _bCreateUndoAction = true);
 
-        /// @note the Handler receives a pointer to a TabWinsChangeNotification struct
-        Link<> SetTabWinsChangeHandler(const Link<>& lnk) { Link<> lnkRet = m_lnkTabWinsChangeHandler; m_lnkTabWinsChangeHandler = lnk; return lnkRet; }
-
         bool ExistsAVisitedConn(const OQueryTableWindow* pFrom) const;
 
         virtual OTableWindowData* CreateImpl(const OUString& _rComposedName
diff --git a/dbaccess/source/ui/querydesign/QueryTableView.cxx b/dbaccess/source/ui/querydesign/QueryTableView.cxx
index c86c7ce..be8fcba 100644
--- a/dbaccess/source/ui/querydesign/QueryTableView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryTableView.cxx
@@ -574,12 +574,6 @@ void OQueryTableView::AddTabWin(const OUString& _rComposedName, const OUString&
 
     // My parent needs to be informed about the delete
     m_pView->getController().addUndoActionAndInvalidate( pUndoAction );
-
-    if (bSuccess && m_lnkTabWinsChangeHandler.IsSet())
-    {
-        TabWinsChangeNotification aHint(TabWinsChangeNotification::AT_ADDED_WIN, pNewTabWin->GetAliasName());
-        m_lnkTabWinsChangeHandler.Call(&aHint);
-    }
 }
 
 void OQueryTableView::AddConnection(const OJoinExchangeData& jxdSource, const OJoinExchangeData& jxdDest)
@@ -765,12 +759,6 @@ void OQueryTableView::RemoveTabWin(OTableWindow* pTabWin)
         m_pView->getController().addUndoActionAndInvalidate( pUndoAction );
         rUndoMgr.LeaveListAction();
 
-        if (m_lnkTabWinsChangeHandler.IsSet())
-        {
-            TabWinsChangeNotification aHint(TabWinsChangeNotification::AT_REMOVED_WIN, static_cast< OQueryTableWindow*>(pTabWin)->GetAliasName());
-            m_lnkTabWinsChangeHandler.Call(&aHint);
-        }
-
         modified();
         if ( m_pAccessible )
             m_pAccessible->notifyAccessibleEvent(   AccessibleEventId::CHILD,
commit 81105c7a16ff3f9c33ef5a0ba381830bc9c9a31f
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Sep 16 17:01:36 2015 +0200

    convert Link<> to typed
    
    Change-Id: I34e15999ecc73c5a330f637338ca9d8fce31b5d2

diff --git a/dbaccess/source/ui/dlg/dbwizsetup.cxx b/dbaccess/source/ui/dlg/dbwizsetup.cxx
index 7ff846d..cc4efd8 100644
--- a/dbaccess/source/ui/dlg/dbwizsetup.cxx
+++ b/dbaccess/source/ui/dlg/dbwizsetup.cxx
@@ -605,22 +605,20 @@ IMPL_LINK_TYPED(ODbTypeWizDialogSetup, ImplClickHdl, OMySQLIntroPageSetup*, _pMy
     activatePath( static_cast<PathId>(m_pCollection->getIndexOf(sURLPrefix) + 1), true);
 }
 
-IMPL_LINK_NOARG_TYPED(ODbTypeWizDialogSetup, OnChangeCreationMode, OGeneralPageWizard*, void)
+IMPL_LINK_NOARG_TYPED(ODbTypeWizDialogSetup, OnChangeCreationMode, OGeneralPageWizard&, void)
 {
     activateDatabasePath();
 }
 
-IMPL_LINK(ODbTypeWizDialogSetup, OnRecentDocumentSelected, OGeneralPageWizard*, /*_pGeneralPage*/)
+IMPL_LINK_NOARG_TYPED(ODbTypeWizDialogSetup, OnRecentDocumentSelected, OGeneralPageWizard&, void)
 {
     enableButtons( WizardButtonFlags::FINISH, !m_pGeneralPage->GetSelectedDocument().sURL.isEmpty() );
-    return 0L;
 }
 
-IMPL_LINK(ODbTypeWizDialogSetup, OnSingleDocumentChosen, OGeneralPageWizard*, /*_pGeneralPage*/)
+IMPL_LINK_NOARG_TYPED(ODbTypeWizDialogSetup, OnSingleDocumentChosen, OGeneralPageWizard&, void)
 {
     if ( prepareLeaveCurrentState( eFinish ) )
         onFinish();
-    return 0L;
 }
 
 void ODbTypeWizDialogSetup::enterState(WizardState _nState)
diff --git a/dbaccess/source/ui/dlg/generalpage.cxx b/dbaccess/source/ui/dlg/generalpage.cxx
index a9e74de..5af2be9 100644
--- a/dbaccess/source/ui/dlg/generalpage.cxx
+++ b/dbaccess/source/ui/dlg/generalpage.cxx
@@ -702,7 +702,7 @@ namespace dbaui
     IMPL_LINK_NOARG_TYPED( OGeneralPageWizard, OnCreateDatabaseModeSelected, Button*, void )
     {
         if ( m_aCreationModeHandler.IsSet() )
-            m_aCreationModeHandler.Call( this );
+            m_aCreationModeHandler.Call( *this );
 
         OnEmbeddedDBTypeSelected( m_pEmbeddedDBType );
     }
@@ -710,13 +710,13 @@ namespace dbaui
     IMPL_LINK_NOARG_TYPED( OGeneralPageWizard, OnSetupModeSelected, Button*, void )
     {
         if ( m_aCreationModeHandler.IsSet() )
-            m_aCreationModeHandler.Call( this );
+            m_aCreationModeHandler.Call( *this );
         OnDatasourceTypeSelected(m_pDatasourceType);
     }
 
     IMPL_LINK( OGeneralPageWizard, OnDocumentSelected, ListBox*, /*_pBox*/ )
     {
-        m_aDocumentSelectionHandler.Call( this );
+        m_aDocumentSelectionHandler.Call( *this );
         return 0L;
     }
 
@@ -744,7 +744,7 @@ namespace dbaui
             }
             m_aBrowsedDocument.sURL = sPath;
             m_aBrowsedDocument.sFilter.clear();
-            m_aChooseDocumentHandler.Call( this );
+            m_aChooseDocumentHandler.Call( *this );
         }
     }
 
diff --git a/dbaccess/source/ui/dlg/generalpage.hxx b/dbaccess/source/ui/dlg/generalpage.hxx
index 6dd57d6..f7f0572 100644
--- a/dbaccess/source/ui/dlg/generalpage.hxx
+++ b/dbaccess/source/ui/dlg/generalpage.hxx
@@ -148,12 +148,12 @@ namespace dbaui
         VclPtr<OpenDocumentButton>     m_pPB_OpenDatabase;
 
         // state
-        DocumentDescriptor      m_aBrowsedDocument;
-        CreationMode            m_eOriginalCreationMode;
+        DocumentDescriptor             m_aBrowsedDocument;
+        CreationMode                   m_eOriginalCreationMode;
 
-        Link<OGeneralPageWizard *, void> m_aCreationModeHandler; /// to be called if a new type is selected
-        Link<>                  m_aDocumentSelectionHandler;    /// to be called when a document in the RecentDoc list is selected
-        Link<>                  m_aChooseDocumentHandler;       /// to be called when a recent document has been definitely chosen
+        Link<OGeneralPageWizard&,void> m_aCreationModeHandler; /// to be called if a new type is selected
+        Link<OGeneralPageWizard&,void> m_aDocumentSelectionHandler;    /// to be called when a document in the RecentDoc list is selected
+        Link<OGeneralPageWizard&,void> m_aChooseDocumentHandler;       /// to be called when a recent document has been definitely chosen
 
         ::svt::ControlDependencyManager
                                 m_aControlDependencies;
@@ -162,11 +162,11 @@ namespace dbaui
         void                    insertEmbeddedDBTypeEntryData( const OUString& _sType, const OUString& sDisplayName );
 
     public:
-        void                    SetCreationModeHandler( const Link<OGeneralPageWizard *, void>& _rHandler ) { m_aCreationModeHandler = _rHandler; }
+        void                    SetCreationModeHandler( const Link<OGeneralPageWizard&,void>& _rHandler ) { m_aCreationModeHandler = _rHandler; }
         CreationMode            GetDatabaseCreationMode() const;
 
-        void                    SetDocumentSelectionHandler( const Link<>& _rHandler) { m_aDocumentSelectionHandler = _rHandler; }
-        void                    SetChooseDocumentHandler( const Link<>& _rHandler) { m_aChooseDocumentHandler = _rHandler; }
+        void                    SetDocumentSelectionHandler( const Link<OGeneralPageWizard&,void>& _rHandler) { m_aDocumentSelectionHandler = _rHandler; }
+        void                    SetChooseDocumentHandler( const Link<OGeneralPageWizard&,void>& _rHandler) { m_aChooseDocumentHandler = _rHandler; }
         DocumentDescriptor      GetSelectedDocument() const;
 
     protected:
diff --git a/dbaccess/source/ui/inc/dbwizsetup.hxx b/dbaccess/source/ui/inc/dbwizsetup.hxx
index 971aac8..8d48e2d 100644
--- a/dbaccess/source/ui/inc/dbwizsetup.hxx
+++ b/dbaccess/source/ui/inc/dbwizsetup.hxx
@@ -176,9 +176,9 @@ private:
     bool callSaveAsDialog();
     bool IsConnectionUrlRequired();
     DECL_LINK_TYPED(OnTypeSelected, OGeneralPage&, void);
-    DECL_LINK_TYPED(OnChangeCreationMode, OGeneralPageWizard*, void);
-    DECL_LINK(OnRecentDocumentSelected, OGeneralPageWizard*);
-    DECL_LINK(OnSingleDocumentChosen, OGeneralPageWizard*);
+    DECL_LINK_TYPED(OnChangeCreationMode, OGeneralPageWizard&, void);
+    DECL_LINK_TYPED(OnRecentDocumentSelected, OGeneralPageWizard&, void);
+    DECL_LINK_TYPED(OnSingleDocumentChosen, OGeneralPageWizard&, void);
     DECL_LINK_TYPED(ImplClickHdl, OMySQLIntroPageSetup*, void);
     DECL_LINK_TYPED(ImplModifiedHdl, OGenericAdministrationPage const *, void);
 };
commit f5b5777491cd310992611df9533c77d12ab4a7ff
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Sep 16 16:59:34 2015 +0200

    convert Link<> to typed
    
    Change-Id: I6f8ffaf59a1b22b66d3b92246384cd3203808bcf

diff --git a/dbaccess/source/ui/dlg/dbwiz.cxx b/dbaccess/source/ui/dlg/dbwiz.cxx
index 60490c4..2dd1f10 100644
--- a/dbaccess/source/ui/dlg/dbwiz.cxx
+++ b/dbaccess/source/ui/dlg/dbwiz.cxx
@@ -111,13 +111,12 @@ void ODbTypeWizDialog::dispose()
     svt::OWizardMachine::dispose();
 }
 
-IMPL_LINK(ODbTypeWizDialog, OnTypeSelected, OGeneralPage*, _pTabPage)
+IMPL_LINK_TYPED(ODbTypeWizDialog, OnTypeSelected, OGeneralPage&, _rTabPage, void)
 {
-    m_eType = _pTabPage->GetSelectedType();
+    m_eType = _rTabPage.GetSelectedType();
     const bool bURLRequired = m_pCollection->isConnectionUrlRequired(m_eType);
     enableButtons(WizardButtonFlags::NEXT,bURLRequired);
     enableButtons(WizardButtonFlags::FINISH,!bURLRequired);
-    return 1L;
 }
 
 WizardTypes::WizardState ODbTypeWizDialog::determineNextState( WizardState _nCurrentState ) const
diff --git a/dbaccess/source/ui/dlg/dbwizsetup.cxx b/dbaccess/source/ui/dlg/dbwizsetup.cxx
index ea230da..7ff846d 100644
--- a/dbaccess/source/ui/dlg/dbwizsetup.cxx
+++ b/dbaccess/source/ui/dlg/dbwizsetup.cxx
@@ -278,10 +278,9 @@ void ODbTypeWizDialogSetup::dispose()
     svt::RoadmapWizard::dispose();
 }
 
-IMPL_LINK(ODbTypeWizDialogSetup, OnTypeSelected, OGeneralPage*, /*_pTabPage*/)
+IMPL_LINK_NOARG_TYPED(ODbTypeWizDialogSetup, OnTypeSelected, OGeneralPage&, void)
 {
     activateDatabasePath();
-    return 1L;
 }
 
 void lcl_removeUnused(const ::comphelper::NamedValueCollection& _aOld,const ::comphelper::NamedValueCollection& _aNew,::comphelper::NamedValueCollection& _rDSInfo)
diff --git a/dbaccess/source/ui/dlg/generalpage.cxx b/dbaccess/source/ui/dlg/generalpage.cxx
index 3ed48c8..a9e74de 100644
--- a/dbaccess/source/ui/dlg/generalpage.cxx
+++ b/dbaccess/source/ui/dlg/generalpage.cxx
@@ -218,7 +218,7 @@ namespace dbaui
         switchMessage(_sURLPrefix);
 
         if ( m_aTypeSelectHandler.IsSet() )
-            m_aTypeSelectHandler.Call(this);
+            m_aTypeSelectHandler.Call(*this);
     }
 
     void OGeneralPage::implInitControls( const SfxItemSet& _rSet, bool _bSaveValue )
diff --git a/dbaccess/source/ui/dlg/generalpage.hxx b/dbaccess/source/ui/dlg/generalpage.hxx
index 320b619..6dd57d6 100644
--- a/dbaccess/source/ui/dlg/generalpage.hxx
+++ b/dbaccess/source/ui/dlg/generalpage.hxx
@@ -49,7 +49,7 @@ namespace dbaui
         };
         SPECIAL_MESSAGE     m_eLastMessage;
 
-        Link<>              m_aTypeSelectHandler;   /// to be called if a new type is selected
+        Link<OGeneralPage&,void>   m_aTypeSelectHandler;   /// to be called if a new type is selected
         bool                m_bDisplayingInvalid : 1;   /// the currently displayed data source is deleted
         bool                m_bInitTypeList : 1;
         bool                approveDatasourceType( const OUString& _sURLPrefix, OUString& _inout_rDisplayName );
@@ -69,7 +69,7 @@ namespace dbaui
         virtual void dispose() SAL_OVERRIDE;
 
         /// set a handler which gets called every time the user selects a new type
-        void            SetTypeSelectHandler( const Link<>& _rHandler ) { m_aTypeSelectHandler = _rHandler; }
+        void            SetTypeSelectHandler( const Link<OGeneralPage&,void>& _rHandler ) { m_aTypeSelectHandler = _rHandler; }
 
         /// get the currently selected datasource type
         OUString     GetSelectedType() const { return m_eCurrentSelection; }
diff --git a/dbaccess/source/ui/inc/dbwiz.hxx b/dbaccess/source/ui/inc/dbwiz.hxx
index 2bee52c..b9139c9 100644
--- a/dbaccess/source/ui/inc/dbwiz.hxx
+++ b/dbaccess/source/ui/inc/dbwiz.hxx
@@ -119,7 +119,7 @@ protected:
     ApplyResult implApplyChanges();
 
 private:
-    DECL_LINK(OnTypeSelected, OGeneralPage*);
+    DECL_LINK_TYPED(OnTypeSelected, OGeneralPage&, void);
 };
 
 }   // namespace dbaui
diff --git a/dbaccess/source/ui/inc/dbwizsetup.hxx b/dbaccess/source/ui/inc/dbwizsetup.hxx
index 73b3660..971aac8 100644
--- a/dbaccess/source/ui/inc/dbwizsetup.hxx
+++ b/dbaccess/source/ui/inc/dbwizsetup.hxx
@@ -175,7 +175,7 @@ private:
     void updateTypeDependentStates();
     bool callSaveAsDialog();
     bool IsConnectionUrlRequired();
-    DECL_LINK(OnTypeSelected, OGeneralPage*);
+    DECL_LINK_TYPED(OnTypeSelected, OGeneralPage&, void);
     DECL_LINK_TYPED(OnChangeCreationMode, OGeneralPageWizard*, void);
     DECL_LINK(OnRecentDocumentSelected, OGeneralPageWizard*);
     DECL_LINK(OnSingleDocumentChosen, OGeneralPageWizard*);
commit 5a91520269cd7a60ab49823401c369428d2d07c0
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Sep 16 16:56:31 2015 +0200

    convert Link<> to typed
    
    Change-Id: Ibb426c6d0cd81ff866c431be8277849e002df57a

diff --git a/dbaccess/source/ui/control/ScrollHelper.cxx b/dbaccess/source/ui/control/ScrollHelper.cxx
index e463262..e6270ca 100644
--- a/dbaccess/source/ui/control/ScrollHelper.cxx
+++ b/dbaccess/source/ui/control/ScrollHelper.cxx
@@ -37,19 +37,16 @@ namespace dbaui
         Rectangle aScrollArea( Point(0, _rOutputSize.Height() - LISTBOX_SCROLLING_AREA),
                                      Size(_rOutputSize.Width(), LISTBOX_SCROLLING_AREA) );
 
-        Link<> aToCall;
         // if pointer in bottom area begin scroll
         if( aScrollArea.IsInside(_rPoint) )
-            aToCall = m_aUpScroll;
+            m_aUpScroll.Call(NULL);
         else
         {
             aScrollArea.SetPos(Point(0,0));
             // if pointer in top area begin scroll
             if( aScrollArea.IsInside(_rPoint) )
-                aToCall = m_aDownScroll;
+                m_aDownScroll.Call(NULL);
         }
-        if ( aToCall.IsSet() )
-            aToCall.Call( NULL );
     }
 }
 
diff --git a/dbaccess/source/ui/control/dbtreelistbox.cxx b/dbaccess/source/ui/control/dbtreelistbox.cxx
index e395da6..6ce7320 100644
--- a/dbaccess/source/ui/control/dbtreelistbox.cxx
+++ b/dbaccess/source/ui/control/dbtreelistbox.cxx
@@ -413,16 +413,14 @@ void scrollWindow(DBTreeListBox* _pListBox, const Point& _rPos,bool _bUp)
     }
 }
 
-IMPL_LINK( DBTreeListBox, ScrollUpHdl, SvTreeListBox*, /*pBox*/ )
+IMPL_LINK_NOARG_TYPED( DBTreeListBox, ScrollUpHdl, LinkParamNone*, void )
 {
     scrollWindow(this,m_aMousePos,true);
-    return 0;
 }
 
-IMPL_LINK( DBTreeListBox, ScrollDownHdl, SvTreeListBox*, /*pBox*/ )
+IMPL_LINK_NOARG_TYPED( DBTreeListBox, ScrollDownHdl, LinkParamNone*, void )
 {
     scrollWindow(this,m_aMousePos,false);
-    return 0;
 }
 
 namespace
diff --git a/dbaccess/source/ui/inc/ScrollHelper.hxx b/dbaccess/source/ui/inc/ScrollHelper.hxx
index f709bb3..1ded72a 100644
--- a/dbaccess/source/ui/inc/ScrollHelper.hxx
+++ b/dbaccess/source/ui/inc/ScrollHelper.hxx
@@ -27,8 +27,8 @@ namespace dbaui
 {
     class OScrollHelper
     {
-        Link<>  m_aUpScroll;
-        Link<>  m_aDownScroll;
+        Link<LinkParamNone*,void>  m_aUpScroll;
+        Link<LinkParamNone*,void>  m_aDownScroll;
     public:
         /** default constructor
         */
@@ -40,7 +40,7 @@ namespace dbaui
             @param  _rUpScroll
                 the method to set
         */
-        inline void setUpScrollMethod( const Link<>& _rUpScroll )
+        inline void setUpScrollMethod( const Link<LinkParamNone*,void>& _rUpScroll )
         {
             m_aUpScroll = _rUpScroll;
         }
@@ -49,7 +49,7 @@ namespace dbaui
             @param  _rDownScroll
                 the method to set
         */
-        inline void setDownScrollMethod( const Link<>& _rDownScroll )
+        inline void setDownScrollMethod( const Link<LinkParamNone*,void>& _rDownScroll )
         {
             m_aDownScroll = _rDownScroll;
         }
diff --git a/dbaccess/source/ui/inc/dbtreelistbox.hxx b/dbaccess/source/ui/inc/dbtreelistbox.hxx
index 5875f79..9bf8d85 100644
--- a/dbaccess/source/ui/inc/dbtreelistbox.hxx
+++ b/dbaccess/source/ui/inc/dbtreelistbox.hxx
@@ -76,8 +76,8 @@ namespace dbaui
         void init();
         DECL_LINK_TYPED( OnTimeOut, Timer*, void );
         DECL_LINK_TYPED( OnResetEntry, void*, void );
-        DECL_LINK( ScrollUpHdl, SvTreeListBox* );
-        DECL_LINK( ScrollDownHdl, SvTreeListBox* );
+        DECL_LINK_TYPED( ScrollUpHdl, LinkParamNone*, void );
+        DECL_LINK_TYPED( ScrollDownHdl, LinkParamNone*, void );
 
     public:
         DBTreeListBox( vcl::Window* pParent
commit 39da0a99672d9066dbe417288566d43ed71e24dd
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Sep 16 16:24:33 2015 +0200

    convert Link<> to typed
    
    Change-Id: I2a149a0a2a189ca84ce8e71f32d0f3696a0bb50d

diff --git a/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx b/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx
index e70a714..aeb6fdb 100644
--- a/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx
+++ b/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx
@@ -93,7 +93,7 @@ private:
     DECL_LINK_TYPED(RemoveButtonHdl, Button*, void);
     DECL_LINK_TYPED(SignatureHighlightHdl, SvTreeListBox*, void );
     DECL_LINK_TYPED(SignatureSelectHdl, SvTreeListBox*, bool );
-    DECL_LINK(          StartVerifySignatureHdl, void* );
+    DECL_LINK_TYPED(StartVerifySignatureHdl, LinkParamNone*, bool );
     DECL_LINK_TYPED(OKButtonHdl, Button*, void );
 
     void                ImplGetSignatureInformations(bool bUseTempStream);
diff --git a/xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx b/xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx
index 80f2bff..150eaef 100644
--- a/xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx
+++ b/xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx
@@ -105,12 +105,12 @@ private:
     XSecController*             mpXSecController;
     bool                        mbError;
     bool mbODFPre1_2;
-    Link<>                      maStartVerifySignatureHdl;
+    Link<LinkParamNone*,bool>   maStartVerifySignatureHdl;
 
 private:
-    DECL_LINK(  SignatureCreationResultListener, XMLSignatureCreationResult*);
-    DECL_LINK(  SignatureVerifyResultListener, XMLSignatureVerifyResult* );
-    DECL_LINK(  StartVerifySignatureElement, const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >* );
+    DECL_LINK_TYPED( SignatureCreationResultListener, XMLSignatureCreationResult&, void );
+    DECL_LINK_TYPED( SignatureVerifyResultListener, XMLSignatureVerifyResult&, void );
+    DECL_LINK_TYPED( StartVerifySignatureElement, LinkParamNone*, void );
 
     XMLSignatureHelper(const XMLSignatureHelper&) SAL_DELETED_FUNCTION;
 
@@ -130,7 +130,7 @@ public:
                 // Argument for the Link is a uno::Reference< xml::sax::XAttributeList >*
                 // Return 1 to verify, 0 to skip.
                 // Default handler will verify all.
-    void        SetStartVerifySignatureHdl( const Link<>& rLink );
+    void        SetStartVerifySignatureHdl( const Link<LinkParamNone*,bool>& rLink );
 
                 // Get the security environment
     ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment > GetSecurityEnvironment();
diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
index 0c3fb39..31d8cb5 100644
--- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
+++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
@@ -565,9 +565,9 @@ IMPL_LINK_NOARG_TYPED(DigitalSignaturesDialog, RemoveButtonHdl, Button*, void)
     }
 }
 
-IMPL_LINK_NOARG(DigitalSignaturesDialog, StartVerifySignatureHdl)
+IMPL_LINK_NOARG_TYPED(DigitalSignaturesDialog, StartVerifySignatureHdl, LinkParamNone*, bool)
 {
-    return mbVerifySignatures ? 1 : 0;
+    return mbVerifySignatures;
 }
 
 void DigitalSignaturesDialog::ImplFillSignaturesBox()
diff --git a/xmlsecurity/source/helper/xmlsignaturehelper.cxx b/xmlsecurity/source/helper/xmlsignaturehelper.cxx
index 96b1909..7827155 100644
--- a/xmlsecurity/source/helper/xmlsignaturehelper.cxx
+++ b/xmlsecurity/source/helper/xmlsignaturehelper.cxx
@@ -85,7 +85,7 @@ void XMLSignatureHelper::SetStorage(
 }
 
 
-void XMLSignatureHelper::SetStartVerifySignatureHdl( const Link<>& rLink )
+void XMLSignatureHelper::SetStartVerifySignatureHdl( const Link<LinkParamNone*,bool>& rLink )
 {
     maStartVerifySignatureHdl = rLink;
 }
@@ -311,31 +311,27 @@ uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment > XMLSignatu
     return (mxSecurityContext.is()?(mxSecurityContext->getSecurityEnvironment()): uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment >());
 }
 
-IMPL_LINK( XMLSignatureHelper, SignatureCreationResultListener, XMLSignatureCreationResult*, pResult )
+IMPL_LINK_TYPED( XMLSignatureHelper, SignatureCreationResultListener, XMLSignatureCreationResult&, rResult, void )
 {
-    maCreationResults.insert( maCreationResults.begin() + maCreationResults.size(), *pResult );
-    if ( pResult->nSignatureCreationResult != com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED )
+    maCreationResults.insert( maCreationResults.begin() + maCreationResults.size(), rResult );
+    if ( rResult.nSignatureCreationResult != com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED )
         mbError = true;
-    return 0;
 }
 
-IMPL_LINK( XMLSignatureHelper, SignatureVerifyResultListener, XMLSignatureVerifyResult*, pResult )
+IMPL_LINK_TYPED( XMLSignatureHelper, SignatureVerifyResultListener, XMLSignatureVerifyResult&, rResult, void )
 {
-    maVerifyResults.insert( maVerifyResults.begin() + maVerifyResults.size(), *pResult );
-    if ( pResult->nSignatureVerifyResult != com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED )
+    maVerifyResults.insert( maVerifyResults.begin() + maVerifyResults.size(), rResult );
+    if ( rResult.nSignatureVerifyResult != com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED )
         mbError = true;
-    return 0;
 }
 
-IMPL_LINK( XMLSignatureHelper, StartVerifySignatureElement, const uno::Reference< com::sun::star::xml::sax::XAttributeList >*, pAttrs )
+IMPL_LINK_NOARG_TYPED( XMLSignatureHelper, StartVerifySignatureElement, LinkParamNone*, void )
 {
-    if ( !maStartVerifySignatureHdl.IsSet() || maStartVerifySignatureHdl.Call( const_cast<css::uno::Reference<css::xml::sax::XAttributeList> *>(pAttrs) ) )
+    if ( !maStartVerifySignatureHdl.IsSet() || maStartVerifySignatureHdl.Call(nullptr) )
     {
         sal_Int32 nSignatureId = mpXSecController->getNewSecurityId();
         mpXSecController->addSignature( nSignatureId );
     }
-
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/helper/xmlsignaturehelper2.cxx b/xmlsecurity/source/helper/xmlsignaturehelper2.cxx
index 6033fe9..eb0a49a 100644
--- a/xmlsecurity/source/helper/xmlsignaturehelper2.cxx
+++ b/xmlsecurity/source/helper/xmlsignaturehelper2.cxx
@@ -32,13 +32,15 @@
 
 using namespace com::sun::star;
 
-ImplXMLSignatureListener::ImplXMLSignatureListener(const Link<>& rCreationResultListenerListener, const Link<>& rVerifyResultListenerListener, const Link<>& rStartSignatureElement)
+ImplXMLSignatureListener::ImplXMLSignatureListener(const Link<XMLSignatureCreationResult&,void>& rCreationResultListenerListener,
+                                                   const Link<XMLSignatureVerifyResult&,void>& rVerifyResultListenerListener,
+                                                   const Link<LinkParamNone*,void>& rStartSignatureElement)
 {
     maCreationResultListenerListener = rCreationResultListenerListener;
     maVerifyResultListenerListener = rVerifyResultListenerListener;
     maStartVerifySignatureElementListener = rStartSignatureElement;
-
 }
+
 ImplXMLSignatureListener::~ImplXMLSignatureListener()
 {
 }
@@ -53,14 +55,14 @@ void SAL_CALL ImplXMLSignatureListener::signatureCreated( sal_Int32 securityId,
         throw (com::sun::star::uno::RuntimeException, std::exception)
 {
     XMLSignatureCreationResult aResult( securityId, nResult );
-    maCreationResultListenerListener.Call( &aResult );
+    maCreationResultListenerListener.Call( aResult );
 }
 
 void SAL_CALL ImplXMLSignatureListener::signatureVerified( sal_Int32 securityId, com::sun::star::xml::crypto::SecurityOperationStatus nResult )
         throw (com::sun::star::uno::RuntimeException, std::exception)
 {
     XMLSignatureVerifyResult aResult( securityId, nResult );
-    maVerifyResultListenerListener.Call( &aResult );
+    maVerifyResultListenerListener.Call( aResult );
 }
 
 // XDocumentHandler
@@ -82,12 +84,12 @@ void SAL_CALL ImplXMLSignatureListener::endDocument(  )
     }
 }
 
-void SAL_CALL ImplXMLSignatureListener::startElement( const OUString& aName, const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttribs )
+void SAL_CALL ImplXMLSignatureListener::startElement( const OUString& aName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttribs )
         throw (com::sun::star::xml::sax::SAXException, com::sun::star::uno::RuntimeException, std::exception)
 {
     if ( aName == "Signature" )
     {
-            maStartVerifySignatureElementListener.Call( const_cast<css::uno::Reference<css::xml::sax::XAttributeList> *>(&xAttribs) );
+        maStartVerifySignatureElementListener.Call( nullptr );
     }
 
     if (m_xNextHandler.is())
diff --git a/xmlsecurity/source/helper/xmlsignaturehelper2.hxx b/xmlsecurity/source/helper/xmlsignaturehelper2.hxx
index 844f34e..2c98877 100644
--- a/xmlsecurity/source/helper/xmlsignaturehelper2.hxx
+++ b/xmlsecurity/source/helper/xmlsignaturehelper2.hxx
@@ -48,15 +48,17 @@ class ImplXMLSignatureListener : public cppu::WeakImplHelper
 >
 {
 private:
-    Link<>      maCreationResultListenerListener;
-    Link<>      maVerifyResultListenerListener;
-    Link<>      maStartVerifySignatureElementListener;
+    Link<XMLSignatureCreationResult&,void> maCreationResultListenerListener;
+    Link<XMLSignatureVerifyResult&,void>   maVerifyResultListenerListener;
+    Link<LinkParamNone*,void>              maStartVerifySignatureElementListener;
 
     com::sun::star::uno::Reference<
         com::sun::star::xml::sax::XDocumentHandler > m_xNextHandler;
 
 public:
-    ImplXMLSignatureListener(const Link<>& rCreationResultListenerListener, const Link<>& rVerifyResultListenerListener, const Link<>& rStartVerifySignatureElement);
+    ImplXMLSignatureListener(const Link<XMLSignatureCreationResult&,void>& rCreationResultListenerListener,
+                             const Link<XMLSignatureVerifyResult&,void>& rVerifyResultListenerListener,
+                             const Link<LinkParamNone*, void>& rStartVerifySignatureElement);
     virtual ~ImplXMLSignatureListener();
 
     void setNextHandler(com::sun::star::uno::Reference<
commit 1e2119fd0211b671cad7ba7005a99a1da1a0caf5
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Sep 16 16:10:05 2015 +0200

    convert Link<> to typed
    
    Change-Id: I3d35a0bb75b6989dd13371543d1bdf3ef5f47641

diff --git a/basctl/source/basicide/baside2.hxx b/basctl/source/basicide/baside2.hxx
index 7aab761..23a7863 100644
--- a/basctl/source/basicide/baside2.hxx
+++ b/basctl/source/basicide/baside2.hxx
@@ -495,7 +495,7 @@ public:
     virtual void dispose() SAL_OVERRIDE;
     void InsertSelectedEntry(); //insert the selected entry
 
-    DECL_LINK(ImplDoubleClickHdl, void*);
+    DECL_LINK_TYPED(ImplDoubleClickHdl, ListBox&, void);
     DECL_LINK(ImplSelectHdl, void*);
 
 protected:
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx
index f97ffbe..be6a02e 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -2642,10 +2642,9 @@ void CodeCompleteListBox::dispose()
     ListBox::dispose();
 }
 
-IMPL_LINK_NOARG(CodeCompleteListBox, ImplDoubleClickHdl)
+IMPL_LINK_NOARG_TYPED(CodeCompleteListBox, ImplDoubleClickHdl, ListBox&, void)
 {
     InsertSelectedEntry();
-    return 0;
 }
 
 IMPL_LINK_NOARG(CodeCompleteListBox, ImplSelectHdl)
diff --git a/cui/source/dialogs/SpellDialog.cxx b/cui/source/dialogs/SpellDialog.cxx
index 0312c96..2d3df7d 100644
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -569,10 +569,9 @@ OUString SpellDialog::getReplacementString() const
 
 
 
-IMPL_LINK_NOARG(SpellDialog, DoubleClickChangeHdl)
+IMPL_LINK_NOARG_TYPED(SpellDialog, DoubleClickChangeHdl, ListBox&, void)
 {
     ChangeHdl(NULL);
-    return 0;
 }
 
 IMPL_LINK_NOARG_TYPED(SpellDialog, ChangeHdl, Button*, void)
diff --git a/cui/source/dialogs/cuigaldlg.cxx b/cui/source/dialogs/cuigaldlg.cxx
index d89872e..1a5d0fd 100644
--- a/cui/source/dialogs/cuigaldlg.cxx
+++ b/cui/source/dialogs/cuigaldlg.cxx
@@ -1210,7 +1210,7 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, SelectFoundHdl)
 
 
 
-IMPL_LINK_NOARG(TPGalleryThemeProperties, DClickFoundHdl)
+IMPL_LINK_NOARG_TYPED(TPGalleryThemeProperties, DClickFoundHdl, ListBox&, void)
 {
     if( bInputAllowed )
     {
@@ -1219,7 +1219,6 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, DClickFoundHdl)
         if (m_pLbxFound->GetSelectEntryCount() == 1 && bEntriesFound)
             ClickTakeHdl(NULL);
     }
-    return 0;
 }
 
 
diff --git a/cui/source/dialogs/insdlg.cxx b/cui/source/dialogs/insdlg.cxx
index eb59e45..8e5bc95 100644
--- a/cui/source/dialogs/insdlg.cxx
+++ b/cui/source/dialogs/insdlg.cxx
@@ -101,10 +101,9 @@ InsertObjectDialog_Impl::InsertObjectDialog_Impl(vcl::Window * pParent, const OU
 
 
 
-IMPL_LINK_NOARG(SvInsertOleDlg, DoubleClickHdl)
+IMPL_LINK_NOARG_TYPED(SvInsertOleDlg, DoubleClickHdl, ListBox&, void)
 {
     EndDialog( RET_OK );
-    return 0;
 }
 
 IMPL_LINK_NOARG_TYPED(SvInsertOleDlg, BrowseHdl, Button*, void)
diff --git a/cui/source/dialogs/pastedlg.cxx b/cui/source/dialogs/pastedlg.cxx
index 8aac59a7..afec285 100644
--- a/cui/source/dialogs/pastedlg.cxx
+++ b/cui/source/dialogs/pastedlg.cxx
@@ -82,12 +82,9 @@ IMPL_LINK( SvPasteObjectDialog, SelectHdl, ListBox *, pListBox )
     return 0;
 }
 
-IMPL_LINK( SvPasteObjectDialog, DoubleClickHdl, ListBox *, pListBox )
+IMPL_LINK_NOARG_TYPED( SvPasteObjectDialog, DoubleClickHdl, ListBox&, void )
 {
-    (void)pListBox;
-
     EndDialog( RET_OK );
-    return 0;
 }
 
 /*************************************************************************
diff --git a/cui/source/inc/SpellDialog.hxx b/cui/source/inc/SpellDialog.hxx
index c33921c..83495df 100644
--- a/cui/source/inc/SpellDialog.hxx
+++ b/cui/source/inc/SpellDialog.hxx
@@ -172,7 +172,7 @@ private:
         css::linguistic2::XSpellChecker1 >     xSpell;
 
     DECL_LINK_TYPED(ChangeHdl, Button*, void);
-    DECL_LINK(DoubleClickChangeHdl, void*);
+    DECL_LINK_TYPED(DoubleClickChangeHdl, ListBox&, void);
     DECL_LINK_TYPED(ChangeAllHdl, Button*, void);
     DECL_LINK_TYPED( IgnoreAllHdl, Button*, void );
     DECL_LINK_TYPED(IgnoreHdl, Button*, void);
diff --git a/cui/source/inc/cuigaldlg.hxx b/cui/source/inc/cuigaldlg.hxx
index 30036c7..43f0737 100644
--- a/cui/source/inc/cuigaldlg.hxx
+++ b/cui/source/inc/cuigaldlg.hxx
@@ -284,7 +284,7 @@ class TPGalleryThemeProperties : public SfxTabPage
                         DECL_LINK_TYPED( ClickTakeAllHdl, Button*, void );
                         DECL_LINK( SelectFoundHdl, void* );
                         DECL_LINK( SelectFileTypeHdl, void* );
-                        DECL_LINK( DClickFoundHdl, void* );
+                        DECL_LINK_TYPED( DClickFoundHdl, ListBox&, void );
                         DECL_LINK_TYPED( PreviewTimerHdl, Timer*, void );
                         DECL_LINK(EndSearchProgressHdl, void *);
                         DECL_LINK_TYPED( DialogClosedHdl, css::ui::dialogs::DialogClosedEvent*, void );
diff --git a/cui/source/inc/insdlg.hxx b/cui/source/inc/insdlg.hxx
index 29ac113..1283391 100644
--- a/cui/source/inc/insdlg.hxx
+++ b/cui/source/inc/insdlg.hxx
@@ -69,7 +69,7 @@ class SvInsertOleDlg : public InsertObjectDialog_Impl
     css::uno::Sequence< sal_Int8 > m_aIconMetaFile;
     OUString m_aIconMediaType;
 
-    DECL_LINK(DoubleClickHdl, void*);
+    DECL_LINK_TYPED(DoubleClickHdl, ListBox&, void);
     DECL_LINK_TYPED(BrowseHdl, Button*, void);
     DECL_LINK_TYPED(RadioHdl, Button*, void);
     void SelectDefault();
diff --git a/cui/source/inc/pastedlg.hxx b/cui/source/inc/pastedlg.hxx
index c634dc7..26a439f 100644
--- a/cui/source/inc/pastedlg.hxx
+++ b/cui/source/inc/pastedlg.hxx
@@ -51,7 +51,7 @@ class SvPasteObjectDialog : public ModalDialog
 
     void            SelectObject();
     DECL_LINK( SelectHdl, ListBox * );
-    DECL_LINK( DoubleClickHdl, ListBox * );
+    DECL_LINK_TYPED( DoubleClickHdl, ListBox&, void );
 
 public:
                 SvPasteObjectDialog( vcl::Window* pParent );
diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx
index 8c805b8..552bd17 100644
--- a/cui/source/options/optjava.cxx
+++ b/cui/source/options/optjava.cxx
@@ -869,12 +869,11 @@ IMPL_LINK_NOARG(SvxJavaParameterDlg, SelectHdl_Impl)
 
 
 
-IMPL_LINK_NOARG(SvxJavaParameterDlg, DblClickHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxJavaParameterDlg, DblClickHdl_Impl, ListBox&, void)
 {
     sal_Int32 nPos = m_pAssignedList->GetSelectEntryPos();
     if ( nPos != LISTBOX_ENTRY_NOTFOUND )
         m_pParameterEdit->SetText( m_pAssignedList->GetEntry( nPos ) );
-    return 0;
 }
 
 
diff --git a/cui/source/options/optjava.hxx b/cui/source/options/optjava.hxx
index c4f9602..a139fa2 100644
--- a/cui/source/options/optjava.hxx
+++ b/cui/source/options/optjava.hxx
@@ -130,7 +130,7 @@ private:
     DECL_LINK(ModifyHdl_Impl, void *);
     DECL_LINK_TYPED(AssignHdl_Impl, Button*, void);
     DECL_LINK(SelectHdl_Impl, void *);
-    DECL_LINK(DblClickHdl_Impl, void *);
+    DECL_LINK_TYPED(DblClickHdl_Impl, ListBox&, void);
     DECL_LINK_TYPED(RemoveHdl_Impl, Button*, void);
 
     inline void             EnableRemoveButton()
diff --git a/dbaccess/source/ui/dlg/dsselect.cxx b/dbaccess/source/ui/dlg/dsselect.cxx
index ac120a4..2a3089c 100644
--- a/dbaccess/source/ui/dlg/dsselect.cxx
+++ b/dbaccess/source/ui/dlg/dsselect.cxx
@@ -84,11 +84,10 @@ void ODatasourceSelectDialog::dispose()
 }
 
 
-IMPL_LINK( ODatasourceSelectDialog, ListDblClickHdl, ListBox *, pListBox )
+IMPL_LINK_TYPED( ODatasourceSelectDialog, ListDblClickHdl, ListBox&, rListBox, void )
 {
-    if (pListBox->GetSelectEntryCount())
+    if (rListBox.GetSelectEntryCount())
         EndDialog(RET_OK);
-    return 0;
 }
 
 bool ODatasourceSelectDialog::Close()
diff --git a/dbaccess/source/ui/dlg/dsselect.hxx b/dbaccess/source/ui/dlg/dsselect.hxx
index 842047f..8d8c611 100644
--- a/dbaccess/source/ui/dlg/dsselect.hxx
+++ b/dbaccess/source/ui/dlg/dsselect.hxx
@@ -61,7 +61,7 @@ public:
     virtual bool    Close() SAL_OVERRIDE;
 
 protected:
-    DECL_LINK( ListDblClickHdl, ListBox * );
+    DECL_LINK_TYPED( ListDblClickHdl, ListBox&, void );
 #ifdef HAVE_ODBC_ADMINISTRATION
     DECL_LINK_TYPED(ManageClickHdl, Button*, void);
     DECL_LINK_TYPED( ManageProcessFinished, void*, void );
diff --git a/dbaccess/source/ui/inc/WColumnSelect.hxx b/dbaccess/source/ui/inc/WColumnSelect.hxx
index edf527f..b40dbf5 100644
--- a/dbaccess/source/ui/inc/WColumnSelect.hxx
+++ b/dbaccess/source/ui/inc/WColumnSelect.hxx
@@ -43,7 +43,7 @@ namespace dbaui
         VclPtr<ListBox>      m_pNewColumnNames; // right side
 
         DECL_LINK_TYPED( ButtonClickHdl, Button *, void );
-        DECL_LINK( ListDoubleClickHdl, ListBox * );
+        DECL_LINK_TYPED( ListDoubleClickHdl, ListBox&, void );
 
         static void clearListBox(ListBox& _rListBox);
         static void fillColumns( ListBox* pRight,
diff --git a/dbaccess/source/ui/misc/WColumnSelect.cxx b/dbaccess/source/ui/misc/WColumnSelect.cxx
index 7167141..c9212bc 100644
--- a/dbaccess/source/ui/misc/WColumnSelect.cxx
+++ b/dbaccess/source/ui/misc/WColumnSelect.cxx
@@ -246,10 +246,10 @@ IMPL_LINK_TYPED( OWizColumnSelect, ButtonClickHdl, Button *, pButton, void )
         m_pOrgColumnNames->SelectEntryPos(0);
 }
 
-IMPL_LINK( OWizColumnSelect, ListDoubleClickHdl, ListBox *, pListBox )
+IMPL_LINK_TYPED( OWizColumnSelect, ListDoubleClickHdl, ListBox&, rListBox, void )
 {
     ListBox *pLeft,*pRight;
-    if(pListBox == m_pOrgColumnNames)
+    if(&rListBox == m_pOrgColumnNames)
     {
         pLeft  = m_pOrgColumnNames;
         pRight = m_pNewColumnNames;
@@ -275,7 +275,6 @@ IMPL_LINK( OWizColumnSelect, ListDoubleClickHdl, ListBox *, pListBox )
         pLeft->RemoveEntry(pLeft->GetSelectEntry(--j));
 
     enableButtons();
-    return 0;
 }
 
 void OWizColumnSelect::clearListBox(ListBox& _rListBox)
diff --git a/extensions/source/abpilot/tableselectionpage.cxx b/extensions/source/abpilot/tableselectionpage.cxx
index 065f2d1..ed7beec 100644
--- a/extensions/source/abpilot/tableselectionpage.cxx
+++ b/extensions/source/abpilot/tableselectionpage.cxx
@@ -86,12 +86,10 @@ namespace abp
     }
 
 
-    IMPL_LINK( TableSelectionPage, OnTableDoubleClicked, void*, /*NOTINTERESTEDIN*/ )
+    IMPL_LINK_NOARG_TYPED( TableSelectionPage, OnTableDoubleClicked, ListBox&, void )
     {
         if ( 1 == m_pTableList->GetSelectEntryCount() )
             getDialog()->travelNext();
-
-        return 0L;
     }
 
 
diff --git a/extensions/source/abpilot/tableselectionpage.hxx b/extensions/source/abpilot/tableselectionpage.hxx
index de58a65..3b92ba6 100644
--- a/extensions/source/abpilot/tableselectionpage.hxx
+++ b/extensions/source/abpilot/tableselectionpage.hxx
@@ -51,7 +51,7 @@ namespace abp
 
     private:
         DECL_LINK( OnTableSelected, void* );
-        DECL_LINK( OnTableDoubleClicked, void* );
+        DECL_LINK_TYPED( OnTableDoubleClicked, ListBox&, void );
     };
 
 
diff --git a/extensions/source/bibliography/datman.cxx b/extensions/source/bibliography/datman.cxx
index 860ab2d..fcc7598 100644
--- a/extensions/source/bibliography/datman.cxx
+++ b/extensions/source/bibliography/datman.cxx
@@ -474,7 +474,7 @@ class DBChangeDialog_Impl : public ModalDialog
 
     BibDataManager* pDatMan;
 
-    DECL_LINK(DoubleClickHdl, SvTabListBox*);
+    DECL_LINK_TYPED(DoubleClickHdl, ListBox&, void);
 public:
     DBChangeDialog_Impl(vcl::Window* pParent, BibDataManager* pMan );
     virtual ~DBChangeDialog_Impl();
@@ -513,10 +513,9 @@ DBChangeDialog_Impl::DBChangeDialog_Impl(vcl::Window* pParent, BibDataManager* p
     }
 }
 
-IMPL_LINK(DBChangeDialog_Impl, DoubleClickHdl, SvTabListBox*, /*pLB*/)
+IMPL_LINK_NOARG_TYPED(DBChangeDialog_Impl, DoubleClickHdl, ListBox&, void)
 {
     EndDialog(RET_OK);
-    return 0;
 }
 
 DBChangeDialog_Impl::~DBChangeDialog_Impl()
diff --git a/extensions/source/dbpilots/commonpagesdbp.cxx b/extensions/source/dbpilots/commonpagesdbp.cxx
index 23edfb9..13857eb 100644
--- a/extensions/source/dbpilots/commonpagesdbp.cxx
+++ b/extensions/source/dbpilots/commonpagesdbp.cxx
@@ -217,11 +217,10 @@ namespace dbp
         }
     }
 
-    IMPL_LINK( OTableSelectionPage, OnListboxDoubleClicked, ListBox*, _pBox )
+    IMPL_LINK_TYPED( OTableSelectionPage, OnListboxDoubleClicked, ListBox&, _rBox, void )
     {
-        if (_pBox->GetSelectEntryCount())
+        if (_rBox.GetSelectEntryCount())
             getDialog()->travelNext();
-        return 0L;
     }
 
 
diff --git a/extensions/source/dbpilots/commonpagesdbp.hxx b/extensions/source/dbpilots/commonpagesdbp.hxx
index 3600131..b8adf46 100644
--- a/extensions/source/dbpilots/commonpagesdbp.hxx
+++ b/extensions/source/dbpilots/commonpagesdbp.hxx
@@ -55,7 +55,7 @@ namespace dbp
 
     protected:
         DECL_LINK( OnListboxSelection, ListBox* );
-        DECL_LINK( OnListboxDoubleClicked, ListBox* );
+        DECL_LINK_TYPED( OnListboxDoubleClicked, ListBox&, void );
         DECL_LINK_TYPED( OnSearchClicked, Button*, void );
 
         void implCollectDatasource();
diff --git a/extensions/source/dbpilots/gridwizard.cxx b/extensions/source/dbpilots/gridwizard.cxx
index b477bc0..74b96f4 100644
--- a/extensions/source/dbpilots/gridwizard.cxx
+++ b/extensions/source/dbpilots/gridwizard.cxx
@@ -391,16 +391,13 @@ namespace dbp
     }
 
 
-    IMPL_LINK(OGridFieldsSelection, OnEntryDoubleClicked, ListBox*, _pList)
+    IMPL_LINK_TYPED(OGridFieldsSelection, OnEntryDoubleClicked, ListBox&, _rList, void)
     {
-        PushButton* pSimulateButton = m_pExistFields == _pList ? m_pSelectOne : m_pDeselectOne;
+        PushButton* pSimulateButton = m_pExistFields == &_rList ? m_pSelectOne : m_pDeselectOne;
         if (pSimulateButton->IsEnabled())
         {
             OnMoveOneEntry( pSimulateButton );
-            return 0;
         }
-        else
-            return 1L;
     }
 
 
diff --git a/extensions/source/dbpilots/gridwizard.hxx b/extensions/source/dbpilots/gridwizard.hxx
index c93f0ec..ca3a9b4 100644
--- a/extensions/source/dbpilots/gridwizard.hxx
+++ b/extensions/source/dbpilots/gridwizard.hxx
@@ -97,7 +97,7 @@ namespace dbp
         DECL_LINK_TYPED(OnMoveOneEntry, Button*, void);
         DECL_LINK_TYPED(OnMoveAllEntries, Button*, void);
         DECL_LINK(OnEntrySelected, ListBox*);
-        DECL_LINK(OnEntryDoubleClicked, ListBox*);
+        DECL_LINK_TYPED(OnEntryDoubleClicked, ListBox&, void);
 
         void implCheckButtons();
     };
diff --git a/extensions/source/dbpilots/listcombowizard.cxx b/extensions/source/dbpilots/listcombowizard.cxx
index 62c8405..87a605d 100644
--- a/extensions/source/dbpilots/listcombowizard.cxx
+++ b/extensions/source/dbpilots/listcombowizard.cxx
@@ -307,11 +307,10 @@ namespace dbp
     }
 
 
-    IMPL_LINK( OContentTableSelection, OnTableDoubleClicked, ListBox*, _pListBox )
+    IMPL_LINK_TYPED( OContentTableSelection, OnTableDoubleClicked, ListBox&, _rListBox, void )
     {
-        if (_pListBox->GetSelectEntryCount())
+        if (_rListBox.GetSelectEntryCount())
             getDialog()->travelNext();
-        return 0L;
     }
 
 
@@ -403,11 +402,10 @@ namespace dbp
     }
 
 
-    IMPL_LINK( OContentFieldSelection, OnTableDoubleClicked, ListBox*, /*NOTINTERESTEDIN*/ )
+    IMPL_LINK_NOARG_TYPED( OContentFieldSelection, OnTableDoubleClicked, ListBox&, void )
     {
         if (m_pSelectTableField->GetSelectEntryCount())
             getDialog()->travelNext();
-        return 0L;
     }
 
 
diff --git a/extensions/source/dbpilots/listcombowizard.hxx b/extensions/source/dbpilots/listcombowizard.hxx
index d0b7ff3..75a839c 100644
--- a/extensions/source/dbpilots/listcombowizard.hxx
+++ b/extensions/source/dbpilots/listcombowizard.hxx
@@ -115,7 +115,7 @@ namespace dbp
         virtual bool        canAdvance() const SAL_OVERRIDE;
 
     protected:
-        DECL_LINK( OnTableDoubleClicked, ListBox* );
+        DECL_LINK_TYPED( OnTableDoubleClicked, ListBox&, void );
         DECL_LINK( OnTableSelected, ListBox* );
     };
 
@@ -134,7 +134,7 @@ namespace dbp
 
     protected:
         DECL_LINK( OnFieldSelected, ListBox* );
-        DECL_LINK( OnTableDoubleClicked, ListBox* );
+        DECL_LINK_TYPED( OnTableDoubleClicked, ListBox&, void );
 
         // TabPage overridables
         virtual void ActivatePage() SAL_OVERRIDE;
diff --git a/formula/source/ui/dlg/funcpage.cxx b/formula/source/ui/dlg/funcpage.cxx
index dbcf06c..045eef2 100644
--- a/formula/source/ui/dlg/funcpage.cxx
+++ b/formula/source/ui/dlg/funcpage.cxx
@@ -180,10 +180,9 @@ IMPL_LINK( FuncPage, SelHdl, ListBox*, pLb )
     return 0;
 }
 
-IMPL_LINK_NOARG(FuncPage, DblClkHdl)
+IMPL_LINK_NOARG_TYPED(FuncPage, DblClkHdl, ListBox&, void)
 {
     aDoubleClickLink.Call(this);
-    return 0;
 }
 
 void FuncPage::SetCategory(sal_Int32 nCat)
diff --git a/formula/source/ui/dlg/funcpage.hxx b/formula/source/ui/dlg/funcpage.hxx
index 6d76f54..0f85df0 100644
--- a/formula/source/ui/dlg/funcpage.hxx
+++ b/formula/source/ui/dlg/funcpage.hxx
@@ -75,7 +75,7 @@ private:
 
     void impl_addFunctions(const IFunctionCategory* _pCategory);
                     DECL_LINK( SelHdl, ListBox* );
-                    DECL_LINK(DblClkHdl, void *);
+                    DECL_LINK_TYPED(DblClkHdl, ListBox&, void);
 
 protected:
 
diff --git a/include/vcl/lstbox.hxx b/include/vcl/lstbox.hxx
index 1cf863f..1db08a1 100644
--- a/include/vcl/lstbox.hxx
+++ b/include/vcl/lstbox.hxx
@@ -45,7 +45,7 @@ private:
     sal_Int32                   mnSaveValue;
     sal_Int32                   m_nMaxWidthChars;
     Link<>                      maSelectHdl;
-    Link<>                      maDoubleClickHdl;
+    Link<ListBox&,void>         maDoubleClickHdl;
     sal_uInt16                  mnLineCount;
 
     /// bitfield
@@ -193,8 +193,8 @@ public:
 
     void                SetSelectHdl( const Link<>& rLink )     { maSelectHdl = rLink; }
     const Link<>&       GetSelectHdl() const                    { return maSelectHdl; }
-    void                SetDoubleClickHdl( const Link<>& rLink ) { maDoubleClickHdl = rLink; }
-    const Link<>&       GetDoubleClickHdl() const               { return maDoubleClickHdl; }
+    void                SetDoubleClickHdl( const Link<ListBox&,void>& rLink ) { maDoubleClickHdl = rLink; }
+    const Link<ListBox&,void>& GetDoubleClickHdl() const               { return maDoubleClickHdl; }
 
     Size                CalcSubEditSize() const;    //size of area inside lstbox, i.e. no scrollbar/dropdown
     Size                CalcMinimumSize() const;    //size of lstbox area, i.e. including scrollbar/dropdown
diff --git a/sc/source/ui/dbgui/pvfundlg.cxx b/sc/source/ui/dbgui/pvfundlg.cxx
index 3e9c012..1df2704 100644
--- a/sc/source/ui/dbgui/pvfundlg.cxx
+++ b/sc/source/ui/dbgui/pvfundlg.cxx
@@ -420,10 +420,9 @@ IMPL_LINK( ScDPFunctionDlg, SelectHdl, ListBox*, pLBox )
     return 0;
 }
 
-IMPL_LINK_NOARG(ScDPFunctionDlg, DblClickHdl)
+IMPL_LINK_NOARG_TYPED(ScDPFunctionDlg, DblClickHdl, ListBox&, void)
 {
     mpBtnOk->Click();
-    return 0;
 }
 
 ScDPSubtotalDlg::ScDPSubtotalDlg( vcl::Window* pParent, ScDPObject& rDPObj,
@@ -528,10 +527,9 @@ IMPL_LINK_TYPED( ScDPSubtotalDlg, RadioClickHdl, Button*, pBtn, void )
     mpLbFunc->Enable( pBtn == mpRbUser );
 }
 
-IMPL_LINK_NOARG(ScDPSubtotalDlg, DblClickHdl)
+IMPL_LINK_NOARG_TYPED(ScDPSubtotalDlg, DblClickHdl, ListBox&, void)
 {
     mpBtnOk->Click();
-    return 0;
 }
 
 IMPL_LINK_TYPED( ScDPSubtotalDlg, ClickHdl, Button*, pBtn, void )
@@ -892,11 +890,10 @@ OUString ScDPShowDetailDlg::GetDimensionName() const
     return mrDPObj.GetDimName(nDim, bIsDataLayout);
 }
 
-IMPL_LINK( ScDPShowDetailDlg, DblClickHdl, ListBox*, pLBox )
+IMPL_LINK_TYPED( ScDPShowDetailDlg, DblClickHdl, ListBox&, rLBox, void )
 {
-    if( pLBox == mpLbDims )
+    if( &rLBox == mpLbDims )
         mpBtnOk->Click();
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/dbgui/scuiimoptdlg.cxx b/sc/source/ui/dbgui/scuiimoptdlg.cxx
index 06d8fea..98c77da 100644
--- a/sc/source/ui/dbgui/scuiimoptdlg.cxx
+++ b/sc/source/ui/dbgui/scuiimoptdlg.cxx
@@ -316,13 +316,12 @@ IMPL_LINK_TYPED( ScImportOptionsDlg, FixedWidthHdl, Button*, pCheckBox, void )
     }
 }
 
-IMPL_LINK( ScImportOptionsDlg, DoubleClickHdl, ListBox*, pLb )
+IMPL_LINK_TYPED( ScImportOptionsDlg, DoubleClickHdl, ListBox&, rLb, void )
 {
-    if (pLb == m_pLbCharset)
+    if (&rLb == m_pLbCharset)
     {
         m_pBtnOk->Click();
     }
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/formdlg/dwfunctr.cxx b/sc/source/ui/formdlg/dwfunctr.cxx
index d10ae1f..827371a 100644
--- a/sc/source/ui/formdlg/dwfunctr.cxx
+++ b/sc/source/ui/formdlg/dwfunctr.cxx
@@ -129,8 +129,7 @@ ScFunctionDockWin::ScFunctionDockWin( SfxBindings* pBindingsP,
     aFuncList->SetSelectHdl(aLink);
     aDDFuncList->SetSelectHdl(aLink);
 
-    Link<> a2Link=LINK( this, ScFunctionDockWin, SetSelectionHdl);
-    aFuncList->SetDoubleClickHdl(a2Link);
+    aFuncList->SetDoubleClickHdl(LINK( this, ScFunctionDockWin, SetSelectionHdl));
     aDDFuncList->SetSelectHdl(aLink);
     aInsertButton->SetClickHdl(LINK( this, ScFunctionDockWin, SetSelectionClickHdl));
 
@@ -955,19 +954,13 @@ IMPL_LINK( ScFunctionDockWin, SelHdl, ListBox*, pLb )
 #*
 #************************************************************************/
 
-IMPL_LINK_TYPED( ScFunctionDockWin, SetSelectionClickHdl, Button*, pCtrl, void )
+IMPL_LINK_NOARG_TYPED( ScFunctionDockWin, SetSelectionClickHdl, Button*, void )
 {
-    SetSelectionHdl(pCtrl);
+    DoEnter();          // Uebernimmt die Eingabe
 }
-IMPL_LINK( ScFunctionDockWin, SetSelectionHdl, void*, pCtrl )
+IMPL_LINK_NOARG_TYPED( ScFunctionDockWin, SetSelectionHdl, ListBox&, void )
 {
-    if (static_cast<ImageButton *>(pCtrl) == aInsertButton.get() ||
-        static_cast<ListBox *>(pCtrl) == aFuncList.get())
-    {
-        DoEnter();          // Uebernimmt die Eingabe
-    }
-
-    return 0;
+    DoEnter();          // Uebernimmt die Eingabe
 }
 
 /*************************************************************************
diff --git a/sc/source/ui/inc/dwfunctr.hxx b/sc/source/ui/inc/dwfunctr.hxx
index f2ca572..9cad0bd 100644
--- a/sc/source/ui/inc/dwfunctr.hxx
+++ b/sc/source/ui/inc/dwfunctr.hxx
@@ -81,7 +81,7 @@ private:
     void            SetMyHeightToBo(Size &aNewSize);
     void            UseSplitterInitPos();
 
-                    DECL_LINK( SetSelectionHdl, void* );
+                    DECL_LINK_TYPED( SetSelectionHdl, ListBox&, void );
                     DECL_LINK_TYPED( SetSelectionClickHdl, Button*, void );
                     DECL_LINK( SelHdl, ListBox* );
                     DECL_LINK(SetSplitHdl,ScPrivatSplit*);
diff --git a/sc/source/ui/inc/lbseldlg.hxx b/sc/source/ui/inc/lbseldlg.hxx
index ab52b76..a8fce90 100644
--- a/sc/source/ui/inc/lbseldlg.hxx
+++ b/sc/source/ui/inc/lbseldlg.hxx
@@ -32,7 +32,7 @@ class ScSelEntryDlg : public ModalDialog
 private:
     VclPtr<ListBox> m_pLb;
 
-    DECL_LINK( DblClkHdl, void * );
+    DECL_LINK_TYPED( DblClkHdl, ListBox&, void );
 
 public:
     ScSelEntryDlg(vcl::Window* pParent, const std::vector<OUString> &rEntryList);
diff --git a/sc/source/ui/inc/pvfundlg.hxx b/sc/source/ui/inc/pvfundlg.hxx
index 06710d4..83350a8 100644
--- a/sc/source/ui/inc/pvfundlg.hxx
+++ b/sc/source/ui/inc/pvfundlg.hxx
@@ -75,7 +75,7 @@ private:
     sal_Int32 FindBaseItemPos( const OUString& rEntry, sal_Int32 nStartPos ) const;
 
     DECL_LINK( SelectHdl, ListBox* );
-    DECL_LINK( DblClickHdl, void* );
+    DECL_LINK_TYPED( DblClickHdl, ListBox&, void );
 
 private:
     VclPtr<ScDPFunctionListBox> mpLbFunc;
@@ -111,8 +111,8 @@ public:
 private:
     void                Init( const ScDPLabelData& rLabelData, const ScPivotFuncData& rFuncData );
 
-    DECL_LINK(DblClickHdl, void *);
-    DECL_LINK_TYPED( RadioClickHdl, Button* , void);
+    DECL_LINK_TYPED( DblClickHdl, ListBox&, void );
+    DECL_LINK_TYPED( RadioClickHdl, Button*, void );
     DECL_LINK_TYPED( ClickHdl, Button*, void );
 
 private:
@@ -202,7 +202,7 @@ public:
     OUString GetDimensionName() const;
 
 private:
-    DECL_LINK( DblClickHdl, ListBox* );
+    DECL_LINK_TYPED( DblClickHdl, ListBox&, void );
 
 private:
     VclPtr<ListBox>            mpLbDims;
diff --git a/sc/source/ui/inc/scuiautofmt.hxx b/sc/source/ui/inc/scuiautofmt.hxx
index ac0c8ca..8ff70de 100644
--- a/sc/source/ui/inc/scuiautofmt.hxx
+++ b/sc/source/ui/inc/scuiautofmt.hxx
@@ -67,8 +67,8 @@ private:
     DECL_LINK_TYPED( RemoveHdl, Button*, void );
     DECL_LINK( SelFmtHdl, void * );
     DECL_LINK_TYPED( CloseHdl, Button *, void );
-    DECL_LINK( DblClkHdl, void * );
-    DECL_LINK_TYPED( RenameHdl, Button*, void);
+    DECL_LINK_TYPED( DblClkHdl, ListBox&, void );
+    DECL_LINK_TYPED( RenameHdl, Button*, void );
 
 };
 #endif
diff --git a/sc/source/ui/inc/scuiimoptdlg.hxx b/sc/source/ui/inc/scuiimoptdlg.hxx
index 890d84d..ba3afee 100644
--- a/sc/source/ui/inc/scuiimoptdlg.hxx
+++ b/sc/source/ui/inc/scuiimoptdlg.hxx
@@ -62,7 +62,7 @@ private:
     sal_uInt16 GetCodeFromCombo( const ComboBox& rEd ) const;
 
     DECL_LINK_TYPED( FixedWidthHdl, Button*, void );
-    DECL_LINK( DoubleClickHdl, ListBox* );
+    DECL_LINK_TYPED( DoubleClickHdl, ListBox&, void );
 };
 
 #endif
diff --git a/sc/source/ui/inc/shtabdlg.hxx b/sc/source/ui/inc/shtabdlg.hxx
index d0109a2..1522ea4 100644
--- a/sc/source/ui/inc/shtabdlg.hxx
+++ b/sc/source/ui/inc/shtabdlg.hxx
@@ -31,7 +31,7 @@ private:
     VclPtr<VclFrame> m_pFrame;
     VclPtr<ListBox> m_pLb;
 
-    DECL_LINK( DblClkHdl, void * );
+    DECL_LINK_TYPED( DblClkHdl, ListBox&, void );
 
 public:
     ScShowTabDlg( vcl::Window* pParent );
diff --git a/sc/source/ui/miscdlgs/lbseldlg.cxx b/sc/source/ui/miscdlgs/lbseldlg.cxx
index e869d70..4ada1dc 100644
--- a/sc/source/ui/miscdlgs/lbseldlg.cxx
+++ b/sc/source/ui/miscdlgs/lbseldlg.cxx
@@ -58,10 +58,9 @@ OUString ScSelEntryDlg::GetSelectEntry() const
     return m_pLb->GetSelectEntry();
 }
 
-IMPL_LINK_NOARG(ScSelEntryDlg, DblClkHdl)
+IMPL_LINK_NOARG_TYPED(ScSelEntryDlg, DblClkHdl, ListBox&, void)
 {
     EndDialog( RET_OK );
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/miscdlgs/scuiautofmt.cxx b/sc/source/ui/miscdlgs/scuiautofmt.cxx
index f12eab8..13e01ee 100644
--- a/sc/source/ui/miscdlgs/scuiautofmt.cxx
+++ b/sc/source/ui/miscdlgs/scuiautofmt.cxx
@@ -174,13 +174,12 @@ IMPL_LINK_TYPED( ScAutoFormatDlg, CloseHdl, Button *, pBtn, void )
     }
 }
 
-IMPL_LINK_NOARG(ScAutoFormatDlg, DblClkHdl)
+IMPL_LINK_NOARG_TYPED(ScAutoFormatDlg, DblClkHdl, ListBox&, void)
 {
     if ( bCoreDataChanged )
         ScGlobal::GetOrCreateAutoFormat()->Save();
 
     EndDialog( RET_OK );
-    return 0;
 }
 
 IMPL_LINK_TYPED( ScAutoFormatDlg, CheckHdl, Button *, pBtn, void )
diff --git a/sc/source/ui/miscdlgs/shtabdlg.cxx b/sc/source/ui/miscdlgs/shtabdlg.cxx
index d4c7339..f15bf26 100644
--- a/sc/source/ui/miscdlgs/shtabdlg.cxx
+++ b/sc/source/ui/miscdlgs/shtabdlg.cxx
@@ -81,10 +81,9 @@ sal_Int32 ScShowTabDlg::GetSelectEntryPos(sal_Int32 nPos) const
     return m_pLb->GetSelectEntryPos(nPos);
 }
 
-IMPL_LINK_NOARG(ScShowTabDlg, DblClkHdl)
+IMPL_LINK_NOARG_TYPED(ScShowTabDlg, DblClkHdl, ListBox&, void)
 {
     EndDialog( RET_OK );
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/animations/CustomAnimationCreateDialog.cxx b/sd/source/ui/animations/CustomAnimationCreateDialog.cxx
index 169c774..ab3a154 100644
--- a/sd/source/ui/animations/CustomAnimationCreateDialog.cxx
+++ b/sd/source/ui/animations/CustomAnimationCreateDialog.cxx
@@ -75,7 +75,7 @@ public:
 
     void            SetDoubleClickLink( const Link<>& rDoubleClickHdl ) { maDoubleClickHdl = rDoubleClickHdl; }
 
-    DECL_LINK(implDoubleClickHdl, void *);
+    DECL_LINK_TYPED(implDoubleClickHdl, ListBox&, void);
 
 private:
     virtual void    UserDraw( const UserDrawEvent& rUDEvt ) SAL_OVERRIDE;
@@ -137,10 +137,9 @@ void CategoryListBox::UserDraw( const UserDrawEvent& rUDEvt )
     }
 }
 
-IMPL_LINK_NOARG(CategoryListBox, implDoubleClickHdl)
+IMPL_LINK_NOARG_TYPED(CategoryListBox, implDoubleClickHdl, ListBox&, void)
 {
     CaptureMouse();
-    return 0;
 }
 
 void CategoryListBox::MouseButtonUp( const MouseEvent& rMEvt )
diff --git a/sd/source/ui/dlg/dlgass.cxx b/sd/source/ui/dlg/dlgass.cxx
index 014d250..6d53335 100644
--- a/sd/source/ui/dlg/dlgass.cxx
+++ b/sd/source/ui/dlg/dlgass.cxx
@@ -109,7 +109,7 @@ private:
 class AssistentDlgImpl : public SfxListener
 {
 public:
-    AssistentDlgImpl( vcl::Window* pWindow, const Link<>& rFinishLink, bool bAutoPilot  );
+    AssistentDlgImpl( vcl::Window* pWindow, const Link<ListBox&,void>& rFinishLink, bool bAutoPilot  );
     virtual ~AssistentDlgImpl();
 
     /// Local mutex used to serialize concurrent method calls.
@@ -319,7 +319,7 @@ public:
 
 };
 
-AssistentDlgImpl::AssistentDlgImpl( vcl::Window* pWindow, const Link<>& rFinishLink, bool bAutoPilot ) :
+AssistentDlgImpl::AssistentDlgImpl( vcl::Window* pWindow, const Link<ListBox&,void>& rFinishLink, bool bAutoPilot ) :
     mpTemplateRegion(NULL),
     mpLayoutRegion(NULL),
     mbUserDataDirty(false),
@@ -1101,11 +1101,11 @@ IMPL_LINK_NOARG(AssistentDlgImpl, SelectEffectHdl)
     return 0;
 }
 
-IMPL_LINK_TYPED( AssistentDlgImpl, OpenButtonHdl, Button*, pButton, void )
+IMPL_LINK_NOARG_TYPED( AssistentDlgImpl, OpenButtonHdl, Button*, void )
 {
     // Clear the selection and forward the call.
     mpPage1OpenLB->SetNoSelection();
-    mpPage1OpenLB->GetDoubleClickHdl().Call(pButton);
+    mpPage1OpenLB->GetDoubleClickHdl().Call(*mpPage1OpenLB);
 }
 
 IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, EffectPreviewIdleHdl, Idle *, void)
@@ -1723,15 +1723,20 @@ AssistentDlg::AssistentDlg(vcl::Window* pParent, bool bAutoPilot) :
     mpImpl = new AssistentDlgImpl( this, LINK(this,AssistentDlg, FinishHdl2), bAutoPilot );
 
     // button assignment
-    mpImpl->mpFinishButton->SetClickHdl(LINK(this,AssistentDlg,FinishHdl));
+    mpImpl->mpFinishButton->SetClickHdl( LINK(this,AssistentDlg,FinishHdl) );
 }
 
 IMPL_LINK_NOARG_TYPED(AssistentDlg, FinishHdl, Button*, void)
 {
-    FinishHdl2(NULL);
+    FinishHdl();
 }
 
-IMPL_LINK_NOARG(AssistentDlg, FinishHdl2)
+IMPL_LINK_NOARG_TYPED(AssistentDlg, FinishHdl2, ListBox&, void)
+{
+    FinishHdl();
+}
+
+void AssistentDlg::FinishHdl()
 {
     if( GetStartType() == ST_OPEN )
     {
@@ -1746,7 +1751,7 @@ IMPL_LINK_NOARG(AssistentDlg, FinishHdl2)
             if ( aFileDlg.Execute() == ERRCODE_NONE )
                 aFileToOpen = aFileDlg.GetPath();
             if (aFileToOpen.isEmpty())
-                return 1;
+                return;
             else
             {
                 //add the selected file to the recent-file-listbox and select the new entry
@@ -1764,7 +1769,6 @@ IMPL_LINK_NOARG(AssistentDlg, FinishHdl2)
     // end
     mpImpl->EndDialog(RET_OK);
     EndDialog(RET_OK);
-    return 0;
 }
 
 AssistentDlg::~AssistentDlg()
diff --git a/sd/source/ui/inc/dlgass.hxx b/sd/source/ui/inc/dlgass.hxx
index c3685c2..426683d 100644
--- a/sd/source/ui/inc/dlgass.hxx
+++ b/sd/source/ui/inc/dlgass.hxx
@@ -46,7 +46,8 @@ public:
     virtual void dispose() SAL_OVERRIDE;
 
     DECL_LINK_TYPED( FinishHdl, Button*, void );
-    DECL_LINK( FinishHdl2, void* );
+    DECL_LINK_TYPED( FinishHdl2, ListBox&, void );
+    void FinishHdl();
 
     SfxObjectShellLock GetDocument();
     OutputType GetOutputMedium() const;
diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx
index 3a102be..785bb0c 100644
--- a/sfx2/source/appl/newhelp.cxx
+++ b/sfx2/source/appl/newhelp.cxx
@@ -920,7 +920,7 @@ bool SearchResultsBox_Impl::Notify( NotifyEvent& rNEvt )
     if ( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT &&
          KEY_RETURN == rNEvt.GetKeyEvent()->GetKeyCode().GetCode() )
     {
-        GetDoubleClickHdl().Call( NULL );
+        GetDoubleClickHdl().Call( *this );
         bHandled = true;
     }
 
@@ -1085,7 +1085,7 @@ IMPL_LINK_NOARG_TYPED(SearchTabPage_Impl, SearchHdl, LinkParamNone*, void)
 
 IMPL_LINK_NOARG_TYPED(SearchTabPage_Impl, OpenHdl, Button*, void)
 {
-    m_pResultsLB->GetDoubleClickHdl().Call(m_pResultsLB);
+    m_pResultsLB->GetDoubleClickHdl().Call(*m_pResultsLB);
 }
 
 IMPL_LINK_NOARG(SearchTabPage_Impl, ModifyHdl)
@@ -1106,7 +1106,7 @@ Control* SearchTabPage_Impl::GetLastFocusControl()
     return m_pOpenBtn;
 }
 
-void SearchTabPage_Impl::SetDoubleClickHdl( const Link<>& rLink )
+void SearchTabPage_Impl::SetDoubleClickHdl( const Link<ListBox&,void>& rLink )
 {
     m_pResultsLB->SetDoubleClickHdl( rLink );
 }
@@ -1211,7 +1211,7 @@ void BookmarksBox_Impl::DoAction( sal_uInt16 nAction )
     switch ( nAction )
     {
         case MID_OPEN :
-            GetDoubleClickHdl().Call( NULL );
+            GetDoubleClickHdl().Call( *this );
             break;
 
         case MID_RENAME :
@@ -1271,7 +1271,7 @@ bool BookmarksBox_Impl::Notify( NotifyEvent& rNEvt )
         }
         else if ( KEY_RETURN == nCode )
         {
-            GetDoubleClickHdl().Call( NULL );
+            GetDoubleClickHdl().Call( *this );
             nRet = true;
         }
     }
@@ -1335,7 +1335,7 @@ void BookmarksTabPage_Impl::dispose()
 
 IMPL_LINK_NOARG_TYPED(BookmarksTabPage_Impl, OpenHdl, Button*, void)
 {
-    m_pBookmarksBox->GetDoubleClickHdl().Call(m_pBookmarksBox);
+    m_pBookmarksBox->GetDoubleClickHdl().Call(*m_pBookmarksBox);
 }
 
 void BookmarksTabPage_Impl::ActivatePage()
@@ -1349,7 +1349,7 @@ Control* BookmarksTabPage_Impl::GetLastFocusControl()
     return m_pBookmarksPB;
 }
 
-void BookmarksTabPage_Impl::SetDoubleClickHdl( const Link<>& rLink )
+void BookmarksTabPage_Impl::SetDoubleClickHdl( const Link<ListBox&,void>& rLink )
 {
     m_pBookmarksBox->SetDoubleClickHdl(rLink);
 }
@@ -1725,10 +1725,6 @@ void SfxHelpIndexWindow_Impl::SetDoubleClickHdl( const Link<>& rLink )
     aPageDoubleClickLink = rLink;
     if ( pIPage )
         pIPage->SetDoubleClickHdl( aPageDoubleClickLink );
-    if ( pSPage )
-        pSPage->SetDoubleClickHdl( aPageDoubleClickLink );
-    if ( pBPage )
-        pBPage->SetDoubleClickHdl( aPageDoubleClickLink );
 }
 
 IMPL_LINK_TYPED(SfxHelpIndexWindow_Impl, ContentTabPageDoubleClickHdl, SvTreeListBox*, p, bool)
@@ -1736,6 +1732,12 @@ IMPL_LINK_TYPED(SfxHelpIndexWindow_Impl, ContentTabPageDoubleClickHdl, SvTreeLis
     return aPageDoubleClickLink.Call(p);
 }
 
+IMPL_LINK_TYPED(SfxHelpIndexWindow_Impl, TabPageDoubleClickHdl, ListBox&, r, void)
+{
+    aPageDoubleClickLink.Call(&r);
+}
+
+
 void SfxHelpIndexWindow_Impl::SetFactory( const OUString& rFactory, bool bActive )
 {
     if ( !rFactory.isEmpty() )
diff --git a/sfx2/source/appl/newhelp.hxx b/sfx2/source/appl/newhelp.hxx
index 175b6f5f3b..fcbf5ed 100644
--- a/sfx2/source/appl/newhelp.hxx
+++ b/sfx2/source/appl/newhelp.hxx
@@ -227,15 +227,15 @@ public:
     virtual void        ActivatePage() SAL_OVERRIDE;
     virtual Control*    GetLastFocusControl() SAL_OVERRIDE;
 
-    void                SetDoubleClickHdl( const Link<>& rLink );
+    void                SetDoubleClickHdl( const Link<ListBox&,void>& rLink );
     inline void         SetFactory( const OUString& rFactory ) { aFactory = rFactory; }
     OUString            GetSelectEntry() const;
     void                ClearPage();
     inline void         SetFocusOnBox() { m_pResultsLB->GrabFocus(); }
-    inline bool     HasFocusOnEdit() const { return m_pSearchED->HasChildPathFocus(); }
+    inline bool         HasFocusOnEdit() const { return m_pSearchED->HasChildPathFocus(); }
     inline OUString     GetSearchText() const { return m_pSearchED->GetText(); }
-    inline bool     IsFullWordSearch() const { return m_pFullWordsCB->IsChecked(); }
-    bool            OpenKeyword( const OUString& rKeyword );
+    inline bool         IsFullWordSearch() const { return m_pFullWordsCB->IsChecked(); }
+    bool                OpenKeyword( const OUString& rKeyword );
 };
 
 // class BookmarksTabPage_Impl -------------------------------------------
@@ -269,7 +269,7 @@ public:
     virtual void        ActivatePage() SAL_OVERRIDE;
     virtual Control*    GetLastFocusControl() SAL_OVERRIDE;
 
-    void                SetDoubleClickHdl( const Link<>& rLink );
+    void                SetDoubleClickHdl( const Link<ListBox&,void>& rLink );
     OUString            GetSelectEntry() const;
     void                AddBookmarks( const OUString& rTitle, const OUString& rURL );
     void                SetFocusOnBox() { m_pBookmarksBox->GrabFocus(); }
@@ -318,6 +318,7 @@ private:
     DECL_LINK_TYPED(SelectFactoryHdl, Idle *, void);
     DECL_LINK_TYPED(KeywordHdl, IndexTabPage_Impl&, void);
     DECL_LINK_TYPED(ContentTabPageDoubleClickHdl, SvTreeListBox*, bool);
+    DECL_LINK_TYPED(TabPageDoubleClickHdl, ListBox&, void);
 
 public:
     SfxHelpIndexWindow_Impl( SfxHelpWindow_Impl* pParent );
@@ -374,7 +375,7 @@ SearchTabPage_Impl* SfxHelpIndexWindow_Impl::GetSearchPage()
     if ( !pSPage )
     {
         pSPage = VclPtr<SearchTabPage_Impl>::Create( m_pTabCtrl, this );
-        pSPage->SetDoubleClickHdl( aPageDoubleClickLink );
+        pSPage->SetDoubleClickHdl( LINK(this, SfxHelpIndexWindow_Impl, TabPageDoubleClickHdl) );
     }
     return pSPage;
 }
@@ -384,7 +385,7 @@ BookmarksTabPage_Impl* SfxHelpIndexWindow_Impl::GetBookmarksPage()
     if ( !pBPage )
     {
         pBPage = VclPtr<BookmarksTabPage_Impl>::Create( m_pTabCtrl, this );
-        pBPage->SetDoubleClickHdl( aPageDoubleClickLink );
+        pBPage->SetDoubleClickHdl( LINK(this, SfxHelpIndexWindow_Impl, TabPageDoubleClickHdl) );
     }
     return pBPage;
 }
diff --git a/sfx2/source/doc/new.cxx b/sfx2/source/doc/new.cxx
index aa2a062..c89044e 100644
--- a/sfx2/source/doc/new.cxx
+++ b/sfx2/source/doc/new.cxx
@@ -149,7 +149,7 @@ class SfxNewFileDialog_Impl
 
     DECL_LINK(RegionSelect, ListBox*);
     DECL_LINK(TemplateSelect, void*);
-    DECL_LINK(DoubleClick, ListBox*);
+    DECL_LINK_TYPED(DoubleClick, ListBox&, void);
     DECL_LINK(Expand, void*);
     DECL_LINK_TYPED(LoadFile, Button*, void);
     sal_uInt16  GetSelectedTemplatePos() const;
@@ -283,13 +283,11 @@ IMPL_LINK_NOARG(SfxNewFileDialog_Impl, TemplateSelect)
     return 0;
 }
 
-IMPL_LINK( SfxNewFileDialog_Impl, DoubleClick, ListBox *, pListBox )
+IMPL_LINK_NOARG_TYPED( SfxNewFileDialog_Impl, DoubleClick, ListBox&, void )
 {
-    (void)pListBox;
     // Still loadning
     if ( !xDocShell.Is() || !xDocShell->GetProgress() )
         pAntiImpl->EndDialog(RET_OK);
-    return 0;
 }
 
 IMPL_LINK_NOARG_TYPED(SfxNewFileDialog_Impl, LoadFile, Button*, void)
diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
index e798951..934be2e 100644
--- a/svx/source/fmcomp/gridcell.cxx
+++ b/svx/source/fmcomp/gridcell.cxx
@@ -4033,7 +4033,7 @@ void FmXListBoxCell::disposing()
     m_aActionListeners.disposeAndClear(aEvt);
 
     m_pBox->SetSelectHdl( Link<>() );
-    m_pBox->SetDoubleClickHdl( Link<>() );
+    m_pBox->SetDoubleClickHdl( Link<ListBox&,void>() );
     m_pBox = NULL;
 
     FmXTextCell::disposing();
@@ -4305,7 +4305,7 @@ void FmXListBoxCell::onWindowEvent( const sal_uIntPtr _nEventId, const vcl::Wind
         &&  ( _nEventId == VCLEVENT_LISTBOX_SELECT )
         )
     {
-        OnDoubleClick( NULL );
+        OnDoubleClick( *m_pBox );
 
         ::com::sun::star::awt::ItemEvent aEvent;
         aEvent.Source = *this;
@@ -4324,7 +4324,7 @@ void FmXListBoxCell::onWindowEvent( const sal_uIntPtr _nEventId, const vcl::Wind
 
 
 
-IMPL_LINK_NOARG(FmXListBoxCell, OnDoubleClick)
+IMPL_LINK_NOARG_TYPED(FmXListBoxCell, OnDoubleClick, ListBox&, void)
 {
     if (m_pBox)
     {
@@ -4337,7 +4337,6 @@ IMPL_LINK_NOARG(FmXListBoxCell, OnDoubleClick)
         while( aIt.hasMoreElements() )
             static_cast< ::com::sun::star::awt::XActionListener *>(aIt.next())->actionPerformed( aEvent );
     }
-    return 1;
 }
 
 FmXComboBoxCell::FmXComboBoxCell( DbGridColumn* pColumn, DbCellControl& _rControl )
diff --git a/svx/source/inc/gridcell.hxx b/svx/source/inc/gridcell.hxx
index e37db6f..812c5d4 100644
--- a/svx/source/inc/gridcell.hxx
+++ b/svx/source/inc/gridcell.hxx
@@ -1032,7 +1032,7 @@ public:
 protected:
     virtual void onWindowEvent( const sal_uLong _nEventId, const vcl::Window& _rWindow, const void* _pEventData ) SAL_OVERRIDE;
 
-    DECL_LINK( OnDoubleClick, void* );
+    DECL_LINK_TYPED( OnDoubleClick, ListBox&, void );
 };
 
 
diff --git a/sw/source/ui/chrdlg/swuiccoll.cxx b/sw/source/ui/chrdlg/swuiccoll.cxx
index 1d10995..c6296b2 100644
--- a/sw/source/ui/chrdlg/swuiccoll.cxx
+++ b/sw/source/ui/chrdlg/swuiccoll.cxx
@@ -230,13 +230,18 @@ IMPL_LINK_TYPED( SwCondCollPage, OnOffHdl, Button*, pBox, void )
 
 IMPL_LINK_TYPED( SwCondCollPage, AssignRemoveClickHdl, Button*, pBtn, void)
 {
-    AssignRemoveHdl(pBtn);
+    AssignRemove(pBtn);
 }
 IMPL_LINK_TYPED( SwCondCollPage, AssignRemoveTreeListBoxHdl, SvTreeListBox*, pBtn, bool)
 {
-    return AssignRemoveHdl(pBtn) != 0;
+    AssignRemove(pBtn);
+    return false;
 }
-IMPL_LINK( SwCondCollPage, AssignRemoveHdl, void*, pBtn)
+IMPL_LINK_TYPED( SwCondCollPage, AssignRemoveHdl, ListBox&, rBox, void)
+{
+    AssignRemove(&rBox);
+}
+void SwCondCollPage::AssignRemove(void* pBtn)
 {
     SvTreeListEntry* pE = m_pTbLinks->FirstSelected();
     sal_uLong nPos;
@@ -244,7 +249,7 @@ IMPL_LINK( SwCondCollPage, AssignRemoveHdl, void*, pBtn)
         ( nPos = m_pTbLinks->GetModel()->GetAbsPos( pE ) ) )
     {
         OSL_ENSURE( pE, "where's the empty entry from?" );
-        return 0;
+        return;
     }
 
     OUString sSel = m_aStrArr[nPos] + "\t";
@@ -261,7 +266,6 @@ IMPL_LINK( SwCondCollPage, AssignRemoveHdl, void*, pBtn)
     m_pTbLinks->Select(pE);
     m_pTbLinks->MakeVisible(pE);
     m_pTbLinks->SetUpdateMode(true);
-    return 0;
 }
 
 IMPL_LINK_TYPED( SwCondCollPage, SelectTreeListBoxHdl, SvTreeListBox*, pBox, void)
diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx
index 01093af..d84b7d0 100644
--- a/sw/source/ui/dbui/dbinsdlg.cxx
+++ b/sw/source/ui/dbui/dbinsdlg.cxx
@@ -640,20 +640,18 @@ IMPL_LINK_TYPED( SwInsertDBColAutoPilot, TableToFromHdl, Button*, pButton, void
     m_pLbTableCol->SetUpdateMode( true );
 }
 
-IMPL_LINK( SwInsertDBColAutoPilot, DblClickHdl, ListBox*, pBox )
+IMPL_LINK_TYPED( SwInsertDBColAutoPilot, DblClickHdl, ListBox&, rBox, void )
 {
     Button* pButton = 0;
-    if( pBox == m_pLbTextDbColumn )
+    if( &rBox == m_pLbTextDbColumn )
         pButton = m_pIbDbcolToEdit;
-    else if( pBox == m_pLbTableDbColumn && m_pIbDbcolOneTo->IsEnabled() )
+    else if( &rBox == m_pLbTableDbColumn && m_pIbDbcolOneTo->IsEnabled() )
         pButton = m_pIbDbcolOneTo;
-    else if( pBox == m_pLbTableCol && m_pIbDbcolOneFrom->IsEnabled() )
+    else if( &rBox == m_pLbTableCol && m_pIbDbcolOneFrom->IsEnabled() )
         pButton = m_pIbDbcolOneFrom;
 
     if( pButton )
         TableToFromHdl( pButton );
-
-    return 0;
 }
 
 IMPL_LINK_TYPED( SwInsertDBColAutoPilot, TableFormatHdl, Button*, pButton, void )
diff --git a/sw/source/ui/dochdl/selglos.cxx b/sw/source/ui/dochdl/selglos.cxx
index 2cde14c..b016c35 100644
--- a/sw/source/ui/dochdl/selglos.cxx
+++ b/sw/source/ui/dochdl/selglos.cxx
@@ -46,10 +46,9 @@ void SwSelGlossaryDlg::dispose()
     ModalDialog::dispose();
 }
 
-IMPL_LINK(SwSelGlossaryDlg, DoubleClickHdl, ListBox*, /*pBox*/)
+IMPL_LINK_NOARG_TYPED(SwSelGlossaryDlg, DoubleClickHdl, ListBox&, void)
 {
     EndDialog(RET_OK);
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/fldui/flddb.cxx b/sw/source/ui/fldui/flddb.cxx
index 7c23759..8da2809 100644
--- a/sw/source/ui/fldui/flddb.cxx
+++ b/sw/source/ui/fldui/flddb.cxx
@@ -184,7 +184,7 @@ void SwFieldDBPage::Reset(const SfxItemSet*)
 
     m_pTypeLB->SetUpdateMode(true);
     m_pTypeLB->SetSelectHdl(LINK(this, SwFieldDBPage, TypeHdl));
-    m_pTypeLB->SetDoubleClickHdl(LINK(this, SwFieldDBPage, InsertHdl));
+    m_pTypeLB->SetDoubleClickHdl(LINK(this, SwFieldDBPage, ListBoxInsertHdl));
 
     if (IsFieldEdit())
     {
diff --git a/sw/source/ui/fldui/flddinf.cxx b/sw/source/ui/fldui/flddinf.cxx
index 5719d92..a71fcb7 100644
--- a/sw/source/ui/fldui/flddinf.cxx
+++ b/sw/source/ui/fldui/flddinf.cxx
@@ -208,8 +208,8 @@ void SwFieldDokInfPage::Reset(const SfxItemSet* )
     m_pTypeTLB->SetSelectHdl(LINK(this, SwFieldDokInfPage, TypeHdl));
     m_pTypeTLB->SetDoubleClickHdl(LINK(this, SwFieldDokInfPage, TreeListBoxInsertHdl));
     m_pSelectionLB->SetSelectHdl(LINK(this, SwFieldDokInfPage, SubTypeHdl));
-    m_pSelectionLB->SetDoubleClickHdl(LINK(this, SwFieldDokInfPage, InsertHdl));
-    m_pFormatLB->SetDoubleClickHdl(LINK(this, SwFieldDokInfPage, InsertHdl));
+    m_pSelectionLB->SetDoubleClickHdl(LINK(this, SwFieldDokInfPage, ListBoxInsertHdl));
+    m_pFormatLB->SetDoubleClickHdl(LINK(this, SwFieldDokInfPage, ListBoxInsertHdl));
 
     if (IsFieldEdit())
     {
diff --git a/sw/source/ui/fldui/flddok.cxx b/sw/source/ui/fldui/flddok.cxx
index 780b49d..4241522 100644
--- a/sw/source/ui/fldui/flddok.cxx
+++ b/sw/source/ui/fldui/flddok.cxx
@@ -67,8 +67,8 @@ SwFieldDokPage::SwFieldDokPage(vcl::Window* pParent, const SfxItemSet& rCoreSet
     m_pSelectionLB->set_width_request(nWidth);
     m_pFormatLB->set_width_request(nWidth);
 
-    m_pSelectionLB->SetDoubleClickHdl(LINK(this, SwFieldDokPage, InsertHdl));
-    m_pFormatLB->SetDoubleClickHdl(LINK(this, SwFieldDokPage, InsertHdl));
+    m_pSelectionLB->SetDoubleClickHdl(LINK(this, SwFieldDokPage, ListBoxInsertHdl));
+    m_pFormatLB->SetDoubleClickHdl(LINK(this, SwFieldDokPage, ListBoxInsertHdl));
     m_pNumFormatLB->SetDoubleClickHdl(LINK(this, SwFieldDokPage, NumFormatHdl));
 
     m_pLevelED->SetMax(MAXLEVEL);
@@ -170,7 +170,7 @@ void SwFieldDokPage::Reset(const SfxItemSet* )
     RestorePos(m_pTypeLB);
 
     m_pTypeLB->SetUpdateMode(true);
-    m_pTypeLB->SetDoubleClickHdl(LINK(this, SwFieldDokPage, InsertHdl));
+    m_pTypeLB->SetDoubleClickHdl(LINK(this, SwFieldDokPage, ListBoxInsertHdl));
     m_pTypeLB->SetSelectHdl(LINK(this, SwFieldDokPage, TypeHdl));
     m_pFormatLB->SetSelectHdl(LINK(this, SwFieldDokPage, FormatHdl));
 
diff --git a/sw/source/ui/fldui/fldfunc.cxx b/sw/source/ui/fldui/fldfunc.cxx
index f028af3..ad3e4f9 100644
--- a/sw/source/ui/fldui/fldfunc.cxx
+++ b/sw/source/ui/fldui/fldfunc.cxx
@@ -162,11 +162,11 @@ void SwFieldFuncPage::Reset(const SfxItemSet* )
     // select old Pos
     RestorePos(m_pTypeLB);
 
-    m_pTypeLB->SetDoubleClickHdl       (LINK(this, SwFieldFuncPage, InsertHdl));
+    m_pTypeLB->SetDoubleClickHdl       (LINK(this, SwFieldFuncPage, ListBoxInsertHdl));
     m_pTypeLB->SetSelectHdl            (LINK(this, SwFieldFuncPage, TypeHdl));
     m_pSelectionLB->SetSelectHdl       (LINK(this, SwFieldFuncPage, SelectHdl));
     m_pSelectionLB->SetDoubleClickHdl  (LINK(this, SwFieldFuncPage, InsertMacroHdl));
-    m_pFormatLB->SetDoubleClickHdl     (LINK(this, SwFieldFuncPage, InsertHdl));
+    m_pFormatLB->SetDoubleClickHdl     (LINK(this, SwFieldFuncPage, ListBoxInsertHdl));
     m_pMacroBT->SetClickHdl            (LINK(this, SwFieldFuncPage, MacroHdl));
     Link<Button*,void> aListModifyLk( LINK(this, SwFieldFuncPage, ListModifyHdl));
     m_pListAddPB->SetClickHdl(aListModifyLk);
@@ -415,12 +415,10 @@ IMPL_LINK_NOARG(SwFieldFuncPage, SelectHdl)
     return 0;
 }
 
-IMPL_LINK_NOARG(SwFieldFuncPage, InsertMacroHdl)
+IMPL_LINK_NOARG_TYPED(SwFieldFuncPage, InsertMacroHdl, ListBox&, void)
 {
     SelectHdl(NULL);
-    InsertHdl();
-
-    return 0;
+    InsertHdl(nullptr);
 }
 
 IMPL_LINK_TYPED( SwFieldFuncPage, ListModifyHdl, Button*, pControl, void)
diff --git a/sw/source/ui/fldui/fldfunc.hxx b/sw/source/ui/fldui/fldfunc.hxx
index bedaaa5..071ff64 100644
--- a/sw/source/ui/fldui/fldfunc.hxx
+++ b/sw/source/ui/fldui/fldfunc.hxx
@@ -68,7 +68,7 @@ class SwFieldFuncPage : public SwFieldPage
 
     DECL_LINK(TypeHdl, void *);
     DECL_LINK(SelectHdl, void *);
-    DECL_LINK(InsertMacroHdl, void *);
+    DECL_LINK_TYPED(InsertMacroHdl, ListBox&, void);
     DECL_LINK(ModifyHdl, void *);
     DECL_LINK(ListModifyReturnActionHdl, Control *);
     DECL_LINK_TYPED( ListModifyHdl, Button*, void);
diff --git a/sw/source/ui/fldui/fldpage.cxx b/sw/source/ui/fldui/fldpage.cxx
index 6e2e274..a9f672f 100644
--- a/sw/source/ui/fldui/fldpage.cxx
+++ b/sw/source/ui/fldui/fldpage.cxx
@@ -309,10 +309,16 @@ void SwFieldPage::RestorePos(ListBox* pLst1, ListBox* pLst2, ListBox* pLst3)
 // Insert new fields
 IMPL_LINK_TYPED( SwFieldPage, TreeListBoxInsertHdl, SvTreeListBox*, pBtn, bool )
 {
-    return InsertHdl(pBtn);
+    InsertHdl(pBtn);
+    return false;
 }
 
-IMPL_LINK( SwFieldPage, InsertHdl, void *, pBtn )
+IMPL_LINK_TYPED( SwFieldPage, ListBoxInsertHdl, ListBox&, rBox, void )
+{
+    InsertHdl(&rBox);
+}
+
+void SwFieldPage::InsertHdl(void* pBtn)
 {
     SwFieldDlg *pDlg = static_cast<SwFieldDlg*>(GetTabDialog());
     if (pDlg)
@@ -327,8 +333,6 @@ IMPL_LINK( SwFieldPage, InsertHdl, void *, pBtn )
         SwFieldEditDlg *pEditDlg = static_cast<SwFieldEditDlg *>(GetParentDialog());
         pEditDlg->InsertHdl();
     }
-
-    return 0;
 }
 
 // enable/disable "Insert"-Button
@@ -349,11 +353,9 @@ void SwFieldPage::EnableInsert(bool bEnable)
     m_bInsert = bEnable;
 }
 
-IMPL_LINK_NOARG(SwFieldPage, NumFormatHdl)
+IMPL_LINK_NOARG_TYPED(SwFieldPage, NumFormatHdl, ListBox&, void)
 {
-    InsertHdl();
-
-    return 0;
+    InsertHdl(nullptr);
 }
 
 void SwFieldPage::SetWrtShell( SwWrtShell* pShell )
diff --git a/sw/source/ui/fldui/fldpage.hxx b/sw/source/ui/fldui/fldpage.hxx
index 09c7ac7..1cdb472b 100644
--- a/sw/source/ui/fldui/fldpage.hxx
+++ b/sw/source/ui/fldui/fldpage.hxx
@@ -54,9 +54,10 @@ protected:
     SwField*            GetCurField()               { return m_pCurField;}
     SwWrtShell*         GetWrtShell() { return m_pWrtShell;}
 
-    DECL_LINK( InsertHdl, void * = 0);
-    DECL_LINK_TYPED( TreeListBoxInsertHdl, SvTreeListBox*, bool);
-    DECL_LINK(NumFormatHdl, void *);
+    DECL_LINK_TYPED( ListBoxInsertHdl, ListBox&, void );
+    DECL_LINK_TYPED( TreeListBoxInsertHdl, SvTreeListBox*, bool );
+    DECL_LINK_TYPED( NumFormatHdl, ListBox&, void );
+    void                InsertHdl(void *);
 
     void                Init();
     void                SavePos( const ListBox* pLst1,
diff --git a/sw/source/ui/fldui/fldref.cxx b/sw/source/ui/fldui/fldref.cxx
index 4eb1cfd..d32b11a 100644
--- a/sw/source/ui/fldui/fldref.cxx
+++ b/sw/source/ui/fldui/fldref.cxx
@@ -91,11 +91,11 @@ SwFieldRefPage::SwFieldRefPage(vcl::Window* pParent, const SfxItemSet& rCoreSet
 
     m_pNameED->SetModifyHdl(LINK(this, SwFieldRefPage, ModifyHdl));
 
-    m_pTypeLB->SetDoubleClickHdl       (LINK(this, SwFieldRefPage, InsertHdl));
+    m_pTypeLB->SetDoubleClickHdl       (LINK(this, SwFieldRefPage, ListBoxInsertHdl));
     m_pTypeLB->SetSelectHdl            (LINK(this, SwFieldRefPage, TypeHdl));
     m_pSelectionLB->SetSelectHdl       (LINK(this, SwFieldRefPage, SubTypeHdl));
-    m_pSelectionLB->SetDoubleClickHdl  (LINK(this, SwFieldRefPage, InsertHdl));
-    m_pFormatLB->SetDoubleClickHdl     (LINK(this, SwFieldRefPage, InsertHdl));
+    m_pSelectionLB->SetDoubleClickHdl  (LINK(this, SwFieldRefPage, ListBoxInsertHdl));
+    m_pFormatLB->SetDoubleClickHdl     (LINK(this, SwFieldRefPage, ListBoxInsertHdl));
 
     // #i83479#
     m_pSelectionToolTipLB->SetSelectHdl( LINK(this, SwFieldRefPage, SubTypeTreeListBoxHdl) );
diff --git a/sw/source/ui/fldui/fldvar.cxx b/sw/source/ui/fldui/fldvar.cxx
index 2d217f47..e1a0882 100644
--- a/sw/source/ui/fldui/fldvar.cxx
+++ b/sw/source/ui/fldui/fldvar.cxx
@@ -160,12 +160,12 @@ void SwFieldVarPage::Reset(const SfxItemSet* )
     // select old Pos
     RestorePos(m_pTypeLB);
 
-    m_pTypeLB->SetDoubleClickHdl       (LINK(this, SwFieldVarPage, InsertHdl));
+    m_pTypeLB->SetDoubleClickHdl       (LINK(this, SwFieldVarPage, ListBoxInsertHdl));
     m_pTypeLB->SetSelectHdl            (LINK(this, SwFieldVarPage, TypeHdl));
     m_pSelectionLB->SetSelectHdl       (LINK(this, SwFieldVarPage, SubTypeHdl));
-    m_pSelectionLB->SetDoubleClickHdl  (LINK(this, SwFieldVarPage, InsertHdl));
-    m_pFormatLB->SetDoubleClickHdl     (LINK(this, SwFieldVarPage, InsertHdl));
-    m_pNumFormatLB->SetDoubleClickHdl  (LINK(this, SwFieldVarPage, InsertHdl));
+    m_pSelectionLB->SetDoubleClickHdl  (LINK(this, SwFieldVarPage, ListBoxInsertHdl));
+    m_pFormatLB->SetDoubleClickHdl     (LINK(this, SwFieldVarPage, ListBoxInsertHdl));
+    m_pNumFormatLB->SetDoubleClickHdl  (LINK(this, SwFieldVarPage, ListBoxInsertHdl));
     m_pNameED->SetModifyHdl            (LINK(this, SwFieldVarPage, ModifyHdl));
     m_pValueED->SetModifyHdl           (LINK(this, SwFieldVarPage, ModifyHdl));
     m_pNewDelTBX->SetClickHdl          (LINK(this, SwFieldVarPage, TBClickHdl));
diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx
index 9601f18..433cf5c 100644
--- a/sw/source/ui/index/cnttab.cxx
+++ b/sw/source/ui/index/cnttab.cxx
@@ -3792,7 +3792,7 @@ IMPL_LINK_NOARG_TYPED(SwTOXStylesTabPage, StdHdl, Button*, void)
     }
 }
 
-IMPL_LINK_NOARG(SwTOXStylesTabPage, DoubleClickHdl)
+IMPL_LINK_NOARG_TYPED(SwTOXStylesTabPage, DoubleClickHdl, ListBox&, void)
 {
     const OUString aTmpName( m_pParaLayLB->GetSelectEntry() );
     SwWrtShell& rSh = static_cast<SwMultiTOXTabDialog*>(GetTabDialog())->GetWrtShell();
@@ -3800,7 +3800,6 @@ IMPL_LINK_NOARG(SwTOXStylesTabPage, DoubleClickHdl)
     if(m_pParaLayLB->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND &&
        (m_pLevelLB->GetSelectEntryPos() == 0 || SwMultiTOXTabDialog::IsNoNum(rSh, aTmpName)))
         AssignHdl(m_pAssignBT);
-    return 0;
 }
 
 // enable only when selected
diff --git a/sw/source/ui/misc/outline.cxx b/sw/source/ui/misc/outline.cxx
index 3673672..a76528e 100644
--- a/sw/source/ui/misc/outline.cxx
+++ b/sw/source/ui/misc/outline.cxx
@@ -67,7 +67,7 @@ class SwNumNamesDlg : public ModalDialog
 
     DECL_LINK( ModifyHdl, Edit * );
     DECL_LINK( SelectHdl, ListBox * );
-    DECL_LINK(DoubleClickHdl, void *);
+    DECL_LINK_TYPED( DoubleClickHdl, ListBox&, void );
 
 public:
     explicit SwNumNamesDlg(vcl::Window *pParent);
@@ -129,10 +129,9 @@ IMPL_LINK( SwNumNamesDlg, ModifyHdl, Edit *, pBox )
 }
 
 // DoubleClickHdl
-IMPL_LINK_NOARG(SwNumNamesDlg, DoubleClickHdl)
+IMPL_LINK_NOARG_TYPED(SwNumNamesDlg, DoubleClickHdl, ListBox&, void)
 {
     EndDialog(RET_OK);
-    return 0;
 }
 
 SwNumNamesDlg::SwNumNamesDlg(vcl::Window *pParent)
diff --git a/sw/source/uibase/inc/dbinsdlg.hxx b/sw/source/uibase/inc/dbinsdlg.hxx
index 53088de..ef41573 100644
--- a/sw/source/uibase/inc/dbinsdlg.hxx
+++ b/sw/source/uibase/inc/dbinsdlg.hxx
@@ -139,7 +139,7 @@ class SwInsertDBColAutoPilot : public SfxModalDialog, public utl::ConfigItem
     DECL_LINK_TYPED( DBFormatHdl, Button*, void );
     DECL_LINK_TYPED( TableToFromHdl, Button*, void );
     DECL_LINK( SelectHdl, ListBox* );
-    DECL_LINK( DblClickHdl, ListBox* );
+    DECL_LINK_TYPED( DblClickHdl, ListBox&, void );
     DECL_LINK_TYPED( HeaderHdl, Button*, void );
 
     bool SplitTextToColArr( const OUString& rText, _DB_Columns& rColArr, bool bInsField );
diff --git a/sw/source/uibase/inc/selglos.hxx b/sw/source/uibase/inc/selglos.hxx
index e67f378..81914a4 100644
--- a/sw/source/uibase/inc/selglos.hxx
+++ b/sw/source/uibase/inc/selglos.hxx
@@ -31,7 +31,7 @@ class SwSelGlossaryDlg : public ModalDialog
 protected:
     VclPtr<ListBox>  m_pGlosBox;
 
-    DECL_LINK(DoubleClickHdl, ListBox*);
+    DECL_LINK_TYPED(DoubleClickHdl, ListBox&, void);
 public:
     SwSelGlossaryDlg(vcl::Window * pParent, const OUString &rShortName);
     virtual ~SwSelGlossaryDlg();
diff --git a/sw/source/uibase/inc/swuiccoll.hxx b/sw/source/uibase/inc/swuiccoll.hxx
index 4988e11..ef5a227 100644
--- a/sw/source/uibase/inc/swuiccoll.hxx
+++ b/sw/source/uibase/inc/swuiccoll.hxx
@@ -53,11 +53,12 @@ class SwCondCollPage : public SfxTabPage
     virtual sfxpg   DeactivatePage(SfxItemSet *pSet) SAL_OVERRIDE;
 
     DECL_LINK_TYPED( OnOffHdl, Button*, void );
-    DECL_LINK( AssignRemoveHdl, void*);
+    DECL_LINK_TYPED( AssignRemoveHdl, ListBox&, void);
     DECL_LINK_TYPED( AssignRemoveTreeListBoxHdl, SvTreeListBox*, bool);
     DECL_LINK_TYPED( AssignRemoveClickHdl, Button*, void);
     DECL_LINK_TYPED( SelectTreeListBoxHdl, SvTreeListBox*, void );
     DECL_LINK( SelectHdl, void* );
+    void AssignRemove(void*);
 
     using SfxTabPage::ActivatePage;
     using SfxTabPage::DeactivatePage;
diff --git a/sw/source/uibase/inc/swuicnttab.hxx b/sw/source/uibase/inc/swuicnttab.hxx
index aa625e4..f65bc91 100644
--- a/sw/source/uibase/inc/swuicnttab.hxx
+++ b/sw/source/uibase/inc/swuicnttab.hxx
@@ -465,11 +465,11 @@ class SwTOXStylesTabPage : public SfxTabPage
 
     SwForm*         m_pCurrentForm;
 
-    DECL_LINK_TYPED( EditStyleHdl, Button *, void);
-    DECL_LINK_TYPED(StdHdl, Button*, void);
+    DECL_LINK_TYPED( EditStyleHdl, Button *, void );
+    DECL_LINK_TYPED( StdHdl, Button*, void );
     DECL_LINK(EnableSelectHdl, void *);
-    DECL_LINK(DoubleClickHdl, void *);
-    DECL_LINK_TYPED(AssignHdl, Button*, void);
+    DECL_LINK_TYPED( DoubleClickHdl, ListBox&, void );
+    DECL_LINK_TYPED( AssignHdl, Button*, void );
     void Modify();
 
     SwForm&     GetForm()
diff --git a/sw/source/uibase/sidebar/ThemePanel.cxx b/sw/source/uibase/sidebar/ThemePanel.cxx
index c183a14..5653db1 100644
--- a/sw/source/uibase/sidebar/ThemePanel.cxx
+++ b/sw/source/uibase/sidebar/ThemePanel.cxx
@@ -494,13 +494,17 @@ void ThemePanel::dispose()
 
 IMPL_LINK_NOARG_TYPED(ThemePanel, ClickHdl, Button*, void)
 {
-    DoubleClickHdl(NULL);
+    DoubleClickHdl();
 }
 IMPL_LINK_NOARG_TYPED(ThemePanel, DoubleClickValueSetHdl, ValueSet*, void)
 {
-    DoubleClickHdl(NULL);
+    DoubleClickHdl();
 }
-IMPL_LINK_NOARG(ThemePanel, DoubleClickHdl)
+IMPL_LINK_NOARG_TYPED(ThemePanel, DoubleClickHdl, ListBox&, void)
+{
+    DoubleClickHdl();
+}
+void ThemePanel::DoubleClickHdl()
 {
     SwDocShell* pDocSh = static_cast<SwDocShell*>(SfxObjectShell::Current());
     if (pDocSh)
@@ -513,7 +517,6 @@ IMPL_LINK_NOARG(ThemePanel, DoubleClickHdl)
 
         applyTheme(pDocSh->GetStyleSheetPool(), sEntryFonts, sEntryColors, aStyleSet, maColorSets);
     }
-    return 1;
 }
 
 void ThemePanel::NotifyItemUpdate(const sal_uInt16 /*nSId*/,
diff --git a/sw/source/uibase/sidebar/ThemePanel.hxx b/sw/source/uibase/sidebar/ThemePanel.hxx
index 173fb76..a7a09d7 100644
--- a/sw/source/uibase/sidebar/ThemePanel.hxx
+++ b/sw/source/uibase/sidebar/ThemePanel.hxx
@@ -73,8 +73,9 @@ private:
     svx::ColorSets maColorSets;
 
     DECL_LINK_TYPED(ClickHdl, Button*, void);
-    DECL_LINK(DoubleClickHdl, void*);
+    DECL_LINK_TYPED(DoubleClickHdl, ListBox&, void);
     DECL_LINK_TYPED(DoubleClickValueSetHdl, ValueSet*, void);
+    void DoubleClickHdl();
 
 };
 
diff --git a/sw/source/uibase/utlui/gloslst.cxx b/sw/source/uibase/utlui/gloslst.cxx
index f718365..b1fac9b 100644
--- a/sw/source/uibase/utlui/gloslst.cxx
+++ b/sw/source/uibase/utlui/gloslst.cxx
@@ -54,7 +54,7 @@ class SwGlossDecideDlg : public ModalDialog
     VclPtr<OKButton> m_pOk;
     VclPtr<ListBox>  m_pListLB;
 
-    DECL_LINK(DoubleClickHdl, void*);
+    DECL_LINK_TYPED(DoubleClickHdl, ListBox&, void);
     DECL_LINK(SelectHdl, void*);
 
 public:
@@ -88,10 +88,9 @@ void SwGlossDecideDlg::dispose()
     ModalDialog::dispose();
 }
 
-IMPL_LINK_NOARG(SwGlossDecideDlg, DoubleClickHdl)
+IMPL_LINK_NOARG_TYPED(SwGlossDecideDlg, DoubleClickHdl, ListBox&, void)
 {
     EndDialog(RET_OK);
-    return 0;
 }
 
 IMPL_LINK_NOARG(SwGlossDecideDlg, SelectHdl)
diff --git a/vcl/source/control/lstbox.cxx b/vcl/source/control/lstbox.cxx
index c6ab23b..c516198 100644
--- a/vcl/source/control/lstbox.cxx
+++ b/vcl/source/control/lstbox.cxx
@@ -966,7 +966,7 @@ void ListBox::Select()
 
 void ListBox::DoubleClick()
 {
-    ImplCallEventListenersAndHandler( VCLEVENT_LISTBOX_DOUBLECLICK, [this] () { maDoubleClickHdl.Call(this); } );
+    ImplCallEventListenersAndHandler( VCLEVENT_LISTBOX_DOUBLECLICK, [this] () { maDoubleClickHdl.Call(*this); } );
 }
 
 void ListBox::Clear()
diff --git a/writerperfect/inc/WPFTEncodingDialog.hxx b/writerperfect/inc/WPFTEncodingDialog.hxx
index 69f4098..7e435dd 100644
--- a/writerperfect/inc/WPFTEncodingDialog.hxx
+++ b/writerperfect/inc/WPFTEncodingDialog.hxx
@@ -42,7 +42,7 @@ private:
 
     bool m_userHasCancelled;
 private:
-    DECL_LINK(DoubleClickHdl, ListBox *);
+    DECL_LINK_TYPED(DoubleClickHdl, ListBox&, void);
     DECL_LINK_TYPED(CancelHdl, Button*, void);
 
     void dispose() SAL_OVERRIDE;
diff --git a/writerperfect/source/common/WPFTEncodingDialog.cxx b/writerperfect/source/common/WPFTEncodingDialog.cxx
index 4cd5b75..262419b 100644
--- a/writerperfect/source/common/WPFTEncodingDialog.cxx
+++ b/writerperfect/source/common/WPFTEncodingDialog.cxx
@@ -195,13 +195,12 @@ IMPL_LINK_NOARG_TYPED(WPFTEncodingDialog, CancelHdl, Button*, void)
     Close();
 }
 
-IMPL_LINK(WPFTEncodingDialog, DoubleClickHdl, ListBox *, pLb)
+IMPL_LINK_TYPED(WPFTEncodingDialog, DoubleClickHdl, ListBox&, rLb, void)
 {
-    if (pLb == m_pLbCharset)
+    if (&rLb == m_pLbCharset)
     {
         m_pBtnOk->Click();
     }
-    return 0;
 }
 
 void WPFTEncodingDialog::dispose()
commit f4f05ab199101b9f11718ddc82e139815c1fc521
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Sep 16 14:36:38 2015 +0200

    convert Link<> to typed
    
    Change-Id: I72074f247d9435e600a5cf84728753e72a83fe2e

diff --git a/include/svx/tbcontrl.hxx b/include/svx/tbcontrl.hxx
index eb4fe0a..9caf01c 100644
--- a/include/svx/tbcontrl.hxx
+++ b/include/svx/tbcontrl.hxx
@@ -146,6 +146,7 @@ class SvxFontItem;
 class SfxStyleControllerItem_Impl;
 class SfxStyleSheetBasePool;
 class SfxTemplateItem;
+class SvxStyleBox_Impl;
 
 namespace svx
 {
@@ -168,7 +169,7 @@ public:
     virtual void StateChanged(sal_uInt16 nSID, SfxItemState eState,
                               const SfxPoolItem* pState) SAL_OVERRIDE;
 
-    DECL_LINK( VisibilityNotification, void* );
+    DECL_LINK_TYPED( VisibilityNotification, SvxStyleBox_Impl&, void );
 protected:
     // XInitialization
     virtual void SAL_CALL initialize(const css::uno::Sequence<css::uno::Any>& aArguments)
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index eb9a3c8..fda39c5 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -133,7 +133,7 @@ public:
 
     virtual void    UserDraw( const UserDrawEvent& rUDEvt ) SAL_OVERRIDE;
 
-    void            SetVisibilityListener( const Link<>& aVisListener ) { aVisibilityListener = aVisListener; }
+    void            SetVisibilityListener( const Link<SvxStyleBox_Impl&,void>& aVisListener ) { aVisibilityListener = aVisListener; }
 
     void            SetDefaultStyle( const OUString& rDefault ) { sDefaultStyle = rDefault; }
 
@@ -147,7 +147,7 @@ private:
     sal_Int32                       nCurSel;
     bool                            bRelease;
     Size                            aLogicalSize;
-    Link<>                          aVisibilityListener;
+    Link<SvxStyleBox_Impl&,void>    aVisibilityListener;
     bool                            bVisible;
     Reference< XDispatchProvider >  m_xDispatchProvider;
     Reference< XFrame >             m_xFrame;
@@ -557,13 +557,13 @@ void SvxStyleBox_Impl::StateChanged( StateChangedType nStateChange )
     {
         bVisible = IsReallyVisible();
         if ( aVisibilityListener.IsSet() )
-            aVisibilityListener.Call( this );
+            aVisibilityListener.Call( *this );
     }
     else if ( nStateChange == StateChangedType::InitShow )
     {
         bVisible = true;
         if ( aVisibilityListener.IsSet() )
-            aVisibilityListener.Call( this );
+            aVisibilityListener.Call( *this );
     }
 }
 
@@ -2397,7 +2397,7 @@ void SvxStyleToolBoxControl::SetFamilyState( sal_uInt16 nIdx,
     Update();
 }
 
-IMPL_LINK_NOARG(SvxStyleToolBoxControl, VisibilityNotification)
+IMPL_LINK_NOARG_TYPED(SvxStyleToolBoxControl, VisibilityNotification, SvxStyleBox_Impl&, void)
 {
     // Call ReBind() && UnBind() according to visibility
     SvxStyleBox_Impl* pBox = static_cast<SvxStyleBox_Impl*>( GetToolBox().GetItemWindow( GetId() ));
@@ -2415,8 +2415,6 @@ IMPL_LINK_NOARG(SvxStyleToolBoxControl, VisibilityNotification)
             pBoundItems[i]->UnBind();
         unbindListener();
     }
-
-    return 0;
 }
 
 void SvxStyleToolBoxControl::StateChanged(
commit 5bda09efbec674fbda24f3adc75be9f0a45517ff
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Sep 16 14:33:39 2015 +0200

    convert Link<> to typed
    
    Change-Id: I161636252c47af6f6f8458e41bfa0d0be8461ace

diff --git a/include/svx/tbcontrl.hxx b/include/svx/tbcontrl.hxx
index 584b99e..eb4fe0a 100644
--- a/include/svx/tbcontrl.hxx
+++ b/include/svx/tbcontrl.hxx
@@ -235,7 +235,7 @@ class SVX_DLLPUBLIC SvxColorToolBoxControl : public SfxToolBoxControl
     BorderColorStatus maBorderColorStatus;
     bool bSidebarType;
     ColorSelectFunction maColorSelectFunction;
-    DECL_LINK(SelectedHdl, Color*);
+    DECL_LINK_TYPED(SelectedHdl, const Color&, void);
 public:
     SFX_DECL_TOOLBOX_CONTROL();
     SvxColorToolBoxControl(sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rToolBox);
diff --git a/svx/source/tbxctrls/colorwindow.hxx b/svx/source/tbxctrls/colorwindow.hxx
index 096f95a..e68ba9a 100644
--- a/svx/source/tbxctrls/colorwindow.hxx
+++ b/svx/source/tbxctrls/colorwindow.hxx
@@ -47,7 +47,7 @@ private:
     VclPtr<PushButton>  mpButtonPicker;
     VclPtr<FixedLine>   mpAutomaticSeparator;
     OUString            maCommand;
-    Link<>              maSelectedLink;
+    Link<const Color&, void> maSelectedLink;
 
     PaletteManager&     mrPaletteManager;
     BorderColorStatus&  mrBorderColorStatus;
@@ -79,7 +79,7 @@ public:
     virtual void        KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
     virtual void        StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) SAL_OVERRIDE;
 
-    void SetSelectedHdl( const Link<>& rLink ) { maSelectedLink = rLink; }
+    void SetSelectedHdl( const Link<const Color&, void>& rLink ) { maSelectedLink = rLink; }
 };
 
 #endif
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 3b65c48..eb9a3c8 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -1368,7 +1368,7 @@ IMPL_LINK_TYPED(SvxColorWindow_Impl, SelectHdl, ValueSet*, pColorSet, void)
         EndPopupMode();
 
     if ( maSelectedLink.IsSet() )
-        maSelectedLink.Call(&aColor);
+        maSelectedLink.Call(aColor);
 
     maColorSelectFunction(maCommand, aColor);
 }
@@ -1409,7 +1409,7 @@ IMPL_LINK_NOARG_TYPED(SvxColorWindow_Impl, AutoColorClickHdl, Button*, void)
         EndPopupMode();
 
     if ( maSelectedLink.IsSet() )
-        maSelectedLink.Call(&aColor);
+        maSelectedLink.Call(aColor);
 
     maColorSelectFunction(maCommand, aColor);
 }
@@ -2673,11 +2673,10 @@ VclPtr<SfxPopupWindow> SvxColorToolBoxControl::CreatePopupWindow()
     return pColorWin;
 }
 
-IMPL_LINK(SvxColorToolBoxControl, SelectedHdl, Color*, pColor)
+IMPL_LINK_TYPED(SvxColorToolBoxControl, SelectedHdl, const Color&, rColor, void)
 {
-    m_xBtnUpdater->Update( *pColor );
-    mPaletteManager.SetLastColor( *pColor );
-    return 0;
+    m_xBtnUpdater->Update( rColor );
+    mPaletteManager.SetLastColor( rColor );
 }
 
 void SvxColorToolBoxControl::StateChanged(
commit fddd41eb4f87c1a271ed0b40ec1b264148756ff7
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Sep 16 14:30:57 2015 +0200

    convert Link<> to typed
    
    Change-Id: I9705eccf8238cf0dc6c5a429c89a2cd3d8331d08

diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
index 26f8990..e798951 100644
--- a/svx/source/fmcomp/gridcell.cxx
+++ b/svx/source/fmcomp/gridcell.cxx
@@ -2891,7 +2891,7 @@ bool DbFilterField::commitControl()
             if (m_aText != aText)
             {
                 m_aText = aText;
-                m_aCommitLink.Call(this);
+                m_aCommitLink.Call(*this);
             }
             return true;
         default:
@@ -2943,7 +2943,7 @@ bool DbFilterField::commitControl()
             m_aText = aText;
 
         m_pWindow->SetText(m_aText);
-        m_aCommitLink.Call(this);
+        m_aCommitLink.Call(*this);
     }
     return true;
 }
@@ -3134,7 +3134,7 @@ IMPL_LINK_NOARG_TYPED(DbFilterField, OnClick, VclPtr<CheckBox>, void)
     if (m_aText != aText)
     {
         m_aText = aText;
-        m_aCommitLink.Call(this);
+        m_aCommitLink.Call(*this);
     }
 }
 
@@ -4588,7 +4588,7 @@ void FmXFilterCell::disposing()
     ::com::sun::star::lang::EventObject aEvt(*this);
     m_aTextListeners.disposeAndClear(aEvt);
 
-    static_cast<DbFilterField*>(m_pCellControl)->SetCommitHdl(Link<>());
+    static_cast<DbFilterField*>(m_pCellControl)->SetCommitHdl(Link<DbFilterField&,void>());
 
     FmXGridCell::disposing();
 }
@@ -4688,14 +4688,13 @@ void SAL_CALL FmXFilterCell::setMaxTextLen( sal_Int16 /*nLen*/ ) throw( RuntimeE
 }
 
 
-IMPL_LINK_NOARG(FmXFilterCell, OnCommit)
+IMPL_LINK_NOARG_TYPED(FmXFilterCell, OnCommit, DbFilterField&, void)
 {
     ::cppu::OInterfaceIteratorHelper aIt( m_aTextListeners );
     ::com::sun::star::awt::TextEvent aEvt;
     aEvt.Source = *this;
     while( aIt.hasMoreElements() )
         static_cast< ::com::sun::star::awt::XTextListener *>(aIt.next())->textChanged( aEvt );
-    return 1;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/inc/gridcell.hxx b/svx/source/inc/gridcell.hxx
index 1ce7f14..e37db6f 100644
--- a/svx/source/inc/gridcell.hxx
+++ b/svx/source/inc/gridcell.hxx
@@ -677,13 +677,13 @@ class DbFilterField
         :public DbCellControl
         ,public ::svxform::OSQLParserClient
 {
-    ::com::sun::star::uno::Sequence< OUString >  m_aValueList;
-    OUString   m_aText;
-    Link<>  m_aCommitLink;
+    css::uno::Sequence< OUString >  m_aValueList;
+    OUString    m_aText;
+    Link<DbFilterField&,void> m_aCommitLink;
     sal_Int16   m_nControlClass;
-    bool    m_bFilterList : 1;
-    bool    m_bFilterListFilled : 1;
-    bool    m_bBound : 1;
+    bool        m_bFilterList : 1;
+    bool        m_bFilterListFilled : 1;
+    bool        m_bBound : 1;
 
 public:
     TYPEINFO_OVERRIDE();
@@ -700,7 +700,7 @@ public:
     const OUString& GetText() const {return m_aText;}
     void SetText(const OUString& rText);
 
-    void SetCommitHdl( const Link<>& rLink ) { m_aCommitLink = rLink; }
+    void SetCommitHdl( const Link<DbFilterField&,void>& rLink ) { m_aCommitLink = rLink; }
 
 protected:
 
@@ -1126,7 +1126,7 @@ public:
     virtual sal_Int16 SAL_CALL getMaxTextLen() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 protected:
-    DECL_LINK( OnCommit, void* );
+    DECL_LINK_TYPED( OnCommit, DbFilterField&, void );
 };
 
 #endif // INCLUDED_SVX_SOURCE_INC_GRIDCELL_HXX
commit f0c658e49eb907a15c17f2a8ae2f42dd2e550a77
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Sep 16 14:28:00 2015 +0200

    convert Link<> to typed
    
    Change-Id: I8ffca89e5b1b495452efebf8f57d04ada1bfdf1c

diff --git a/cui/source/inc/border.hxx b/cui/source/inc/border.hxx
index f6d8abe..3192d51 100644
--- a/cui/source/inc/border.hxx
+++ b/cui/source/inc/border.hxx
@@ -121,7 +121,7 @@ private:
     DECL_LINK( SelColHdl_Impl, ListBox* );
     DECL_LINK_TYPED( SelPreHdl_Impl, ValueSet*, void );
     DECL_LINK_TYPED( SelSdwHdl_Impl, ValueSet*, void );
-    DECL_LINK( LinesChanged_Impl, void* );
+    DECL_LINK_TYPED( LinesChanged_Impl, LinkParamNone*, void );
     DECL_LINK( ModifyDistanceHdl_Impl, MetricField*);
     DECL_LINK( ModifyWidthHdl_Impl, void*);

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list