[Libreoffice-commits] core.git: 9 commits - basctl/source cui/source dbaccess/source filter/source forms/source fpicker/source include/sfx2 include/svl include/svtools sc/source sfx2/inc sfx2/source svl/source svtools/inc svtools/source svx/source sw/inc sw/source

Noel Grandin noel at peralex.com
Mon Aug 31 01:03:38 PDT 2015


 basctl/source/basicide/baside2.hxx                                    |    2 
 basctl/source/basicide/baside2b.cxx                                   |    5 -
 cui/source/customize/macropg.cxx                                      |    5 -
 cui/source/dialogs/iconcdlg.cxx                                       |    4 
 cui/source/inc/dbregister.hxx                                         |    4 
 cui/source/inc/headertablistbox.hxx                                   |    2 
 cui/source/inc/iconcdlg.hxx                                           |   10 +-
 cui/source/inc/optpath.hxx                                            |    8 -
 cui/source/options/dbregister.cxx                                     |   10 --
 cui/source/options/optpath.cxx                                        |   10 --
 cui/source/options/webconninfo.cxx                                    |    3 
 cui/source/options/webconninfo.hxx                                    |   12 +-
 dbaccess/source/ui/app/AppSwapWindow.cxx                              |    4 
 dbaccess/source/ui/app/AppSwapWindow.hxx                              |    2 
 filter/source/xsltdialog/xmlfiltersettingsdialog.cxx                  |    5 -
 filter/source/xsltdialog/xmlfiltersettingsdialog.hxx                  |    2 
 forms/source/component/clickableimage.cxx                             |    3 
 forms/source/component/clickableimage.hxx                             |    2 
 fpicker/source/office/iodlg.cxx                                       |   43 +++++-----
 fpicker/source/office/iodlg.hxx                                       |   29 ++----
 include/sfx2/docfile.hxx                                              |    4 
 include/svl/svdde.hxx                                                 |    2 
 include/svtools/asynclink.hxx                                         |   18 ++--
 include/svtools/brwbox.hxx                                            |    2 
 include/svtools/fileview.hxx                                          |    4 
 include/svtools/headbar.hxx                                           |   24 ++---
 include/svtools/hyperlabel.hxx                                        |    4 
 include/svtools/inettbc.hxx                                           |    6 -
 include/svtools/ivctrl.hxx                                            |   16 +--
 include/svtools/ruler.hxx                                             |   10 --
 include/svtools/simptabl.hxx                                          |   19 +---
 include/svtools/svtabbx.hxx                                           |    2 
 sc/source/ui/inc/acredlin.hxx                                         |    2 
 sc/source/ui/inc/namemgrtable.hxx                                     |    2 
 sc/source/ui/miscdlgs/acredlin.cxx                                    |    3 
 sc/source/ui/namedlg/namemgrtable.cxx                                 |   10 --
 sfx2/inc/inettbc.hxx                                                  |    2 
 sfx2/source/appl/fileobj.cxx                                          |    8 -
 sfx2/source/appl/fileobj.hxx                                          |    2 
 sfx2/source/control/shell.cxx                                         |   10 --
 sfx2/source/doc/docfile.cxx                                           |    4 
 sfx2/source/inet/inettbc.cxx                                          |    4 
 svl/source/svdde/ddesvr.cxx                                           |    2 
 svtools/inc/roadmap.hxx                                               |    2 
 svtools/source/brwbox/brwbox2.cxx                                     |    3 
 svtools/source/contnr/fileview.cxx                                    |    7 -
 svtools/source/contnr/imivctl1.cxx                                    |    2 
 svtools/source/contnr/ivctrl.cxx                                      |   10 --
 svtools/source/contnr/simptabl.cxx                                    |   27 ------
 svtools/source/contnr/svtabbx.cxx                                     |    3 
 svtools/source/control/inettbc.cxx                                    |    8 -
 svtools/source/control/roadmap.cxx                                    |    8 -
 svtools/source/control/ruler.cxx                                      |    9 --
 svx/source/dialog/svxruler.cxx                                        |    3 
 svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx |    4 
 svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx |    2 
 sw/inc/view.hxx                                                       |    2 
 sw/source/ui/index/cnttab.cxx                                         |    5 -
 sw/source/uibase/inc/redlndlg.hxx                                     |    6 -
 sw/source/uibase/misc/redlndlg.cxx                                    |    4 
 sw/source/uibase/uiview/viewmdi.cxx                                   |    3 
 61 files changed, 166 insertions(+), 267 deletions(-)

New commits:
commit 42ee163bc0a1b1b58a4481f9da7fb294dea9d6df
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Aug 31 08:59:43 2015 +0200

    convert Link<> to typed
    
    Change-Id: I22f995b905e7abf1451a0636083bf19b3f2d9bc4

diff --git a/cui/source/options/webconninfo.cxx b/cui/source/options/webconninfo.cxx
index b58a7cb..1d7301f 100644
--- a/cui/source/options/webconninfo.cxx
+++ b/cui/source/options/webconninfo.cxx
@@ -154,10 +154,9 @@ void WebConnectionInfoDialog::dispose()
     ModalDialog::dispose();
 }
 
-IMPL_LINK( WebConnectionInfoDialog, HeaderBarClickedHdl, SvSimpleTable*, pTable )
+IMPL_LINK_TYPED( WebConnectionInfoDialog, HeaderBarClickedHdl, SvSimpleTable*, pTable, void )
 {
     m_pPasswordsLB->Resort( NULL == pTable );
-    return 0;
 }
 
 
diff --git a/cui/source/options/webconninfo.hxx b/cui/source/options/webconninfo.hxx
index 02bf741..a9b8de1 100644
--- a/cui/source/options/webconninfo.hxx
+++ b/cui/source/options/webconninfo.hxx
@@ -50,13 +50,13 @@ namespace svx
         VclPtr<PushButton>    m_pChangeBtn;
         sal_Int32      m_nPos;
 
-    DECL_LINK( HeaderBarClickedHdl, SvSimpleTable* );
-    DECL_LINK_TYPED(RemovePasswordHdl, Button*, void);
-    DECL_LINK_TYPED(RemoveAllPasswordsHdl, Button*, void);
-    DECL_LINK_TYPED(ChangePasswordHdl, Button*, void);
-    DECL_LINK( EntrySelectedHdl, void* );
+        DECL_LINK_TYPED( HeaderBarClickedHdl, SvSimpleTable*, void );
+        DECL_LINK_TYPED( RemovePasswordHdl, Button*, void );
+        DECL_LINK_TYPED( RemoveAllPasswordsHdl, Button*, void );
+        DECL_LINK_TYPED( ChangePasswordHdl, Button*, void );
+        DECL_LINK( EntrySelectedHdl, void* );
 
-    void FillPasswordList();
+        void FillPasswordList();
 
     public:
         explicit WebConnectionInfoDialog( vcl::Window* pParent );
diff --git a/include/svtools/simptabl.hxx b/include/svtools/simptabl.hxx
index d62ee39..4e1c64a6 100644
--- a/include/svtools/simptabl.hxx
+++ b/include/svtools/simptabl.hxx
@@ -51,9 +51,8 @@ class SVT_DLLPUBLIC SvSimpleTable : public SvHeaderTabListBox
 private:
     SvSimpleTableContainer& m_rParentTableContainer;
 
-    Link<>              aHeaderBarClickLink;
-    Link<>              aHeaderBarDblClickLink;
-    Link<>              aCommandLink;
+    Link<SvSimpleTable*, void> aHeaderBarClickLink;
+    Link<SvSimpleTable*, void> aCommandLink;
     CommandEvent        aCEvt;
     VclPtr<HeaderBar>   aHeaderBar;
     long                nOldPos;
@@ -68,7 +67,6 @@ private:
     DECL_LINK_TYPED( DragHdl, HeaderBar*, void );
     DECL_LINK_TYPED( EndDragHdl, HeaderBar*, void );
     DECL_LINK_TYPED( HeaderBarClick, HeaderBar*, void );
-    DECL_LINK_TYPED( HeaderBarDblClick, HeaderBar*, void );
     DECL_LINK( CompareHdl, SvSortData* );
 
 protected:
@@ -79,7 +77,6 @@ protected:
     virtual void            Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
 
     virtual void            HBarClick();
-    void                    HBarDblClick();
     void                    HBarStartDrag();
     void                    HBarDrag();
     void                    HBarEndDrag();
@@ -119,9 +116,9 @@ public:
 
     CommandEvent    GetCommandEvent()const { return aCEvt;}
     inline bool     IsFocusOnCellEnabled() const { return IsCellFocusEnabled(); }
-    void            SetCommandHdl( const Link<>& rLink ) { aCommandLink = rLink; }
+    void            SetCommandHdl( const Link<SvSimpleTable*,void>& rLink ) { aCommandLink = rLink; }
 
-    void            SetHeaderBarClickHdl( const Link<>& rLink ) { aHeaderBarClickLink = rLink; }
+    void            SetHeaderBarClickHdl( const Link<SvSimpleTable*,void>& rLink ) { aHeaderBarClickLink = rLink; }
     HeaderBar&      GetTheHeaderBar() { return *aHeaderBar.get(); }
 };
 
diff --git a/sc/source/ui/inc/acredlin.hxx b/sc/source/ui/inc/acredlin.hxx
index 860c402..c0ea474 100644
--- a/sc/source/ui/inc/acredlin.hxx
+++ b/sc/source/ui/inc/acredlin.hxx
@@ -109,7 +109,7 @@ private:
 
     DECL_LINK_TYPED( UpdateSelectionHdl, Idle*, void );
     DECL_LINK( ChgTrackModHdl, ScChangeTrack*);
-    DECL_LINK( CommandHdl, void*);
+    DECL_LINK_TYPED( CommandHdl, SvSimpleTable*, void);
     DECL_LINK_TYPED( ReOpenTimerHdl, Idle*, void );
     DECL_LINK( ColCompareHdl, SvSortData*);
 
diff --git a/sc/source/ui/miscdlgs/acredlin.cxx b/sc/source/ui/miscdlgs/acredlin.cxx
index b763e6f..4408871 100644
--- a/sc/source/ui/miscdlgs/acredlin.cxx
+++ b/sc/source/ui/miscdlgs/acredlin.cxx
@@ -1691,7 +1691,7 @@ IMPL_LINK_NOARG_TYPED(ScAcceptChgDlg, UpdateSelectionHdl, Idle *, void)
     pTPView->EnableReject( bRejectFlag && bEnable );
 }
 
-IMPL_LINK_NOARG(ScAcceptChgDlg, CommandHdl)
+IMPL_LINK_NOARG_TYPED(ScAcceptChgDlg, CommandHdl, SvSimpleTable*, void)
 {
 
     const CommandEvent aCEvt(pTheView->GetCommandEvent());
@@ -1775,7 +1775,6 @@ IMPL_LINK_NOARG(ScAcceptChgDlg, CommandHdl)
             }
         }
     }
-    return 0;
 }
 
 void ScAcceptChgDlg::Initialize(SfxChildWinInfo *pInfo)
diff --git a/svtools/source/contnr/simptabl.cxx b/svtools/source/contnr/simptabl.cxx
index b2515d1..16a16bb 100644
--- a/svtools/source/contnr/simptabl.cxx
+++ b/svtools/source/contnr/simptabl.cxx
@@ -104,7 +104,6 @@ SvSimpleTable::SvSimpleTable(SvSimpleTableContainer& rParent, WinBits nBits):
     aHeaderBar->SetDragHdl(LINK( this, SvSimpleTable, DragHdl));
     aHeaderBar->SetEndDragHdl(LINK( this, SvSimpleTable, EndDragHdl));
     aHeaderBar->SetSelectHdl(LINK( this, SvSimpleTable, HeaderBarClick));
-    aHeaderBar->SetDoubleClickHdl(LINK( this, SvSimpleTable, HeaderBarDblClick));
 
 
     EnableCellFocus();
@@ -334,11 +333,6 @@ void SvSimpleTable::HBarClick()
     }
 }
 
-void SvSimpleTable::HBarDblClick()
-{
-    aHeaderBarDblClickLink.Call(this);
-}
-
 void SvSimpleTable::HBarStartDrag()
 {
     if(!aHeaderBar->IsItemMode())
@@ -426,14 +420,6 @@ IMPL_LINK_TYPED( SvSimpleTable, HeaderBarClick, HeaderBar*, pCtr, void)
     }
 }
 
-IMPL_LINK_TYPED( SvSimpleTable, HeaderBarDblClick, HeaderBar*, pCtr, void)
-{
-    if(pCtr==aHeaderBar.get())
-    {
-        HBarDblClick();
-    }
-}
-
 SvLBoxItem* SvSimpleTable::GetEntryAtPos( SvTreeListEntry* pEntry, sal_uInt16 nPos ) const
 {
     DBG_ASSERT(pEntry,"GetEntryText:Invalid Entry");
diff --git a/sw/source/uibase/inc/redlndlg.hxx b/sw/source/uibase/inc/redlndlg.hxx
index 7d41528..e644d92 100644
--- a/sw/source/uibase/inc/redlndlg.hxx
+++ b/sw/source/uibase/inc/redlndlg.hxx
@@ -97,9 +97,9 @@ class SW_DLLPUBLIC SwRedlineAcceptDlg
     DECL_DLLPRIVATE_LINK( SelectHdl,     void* );
     DECL_DLLPRIVATE_LINK_TYPED( SelectTimerHdl, Timer*, void );
     DECL_DLLPRIVATE_LINK_TYPED( GotoHdl, Timer*, void );
-    DECL_DLLPRIVATE_LINK( CommandHdl,        void* );
+    DECL_DLLPRIVATE_LINK_TYPED( CommandHdl, SvSimpleTable*, void );
 
-    SAL_DLLPRIVATE sal_uInt16            CalcDiff(sal_uInt16 nStart, bool bChild);
+    SAL_DLLPRIVATE sal_uInt16    CalcDiff(sal_uInt16 nStart, bool bChild);
     SAL_DLLPRIVATE void          InsertChildren(SwRedlineDataParent *pParent, const SwRangeRedline& rRedln, const sal_uInt16 nAutoFormat);
     SAL_DLLPRIVATE void          InsertParents(sal_uInt16 nStart, sal_uInt16 nEnd = USHRT_MAX);
     SAL_DLLPRIVATE void          RemoveParents(sal_uInt16 nStart, sal_uInt16 nEnd);
@@ -125,7 +125,7 @@ public:
     void            Initialize(const OUString &rExtraData);
     void            FillInfo(OUString &rExtraData) const;
 
-    void    Activate();
+    void            Activate();
 };
 
 class SwModelessRedlineAcceptDlg : public SfxModelessDialog
diff --git a/sw/source/uibase/misc/redlndlg.cxx b/sw/source/uibase/misc/redlndlg.cxx
index 9e97288..ce35919 100644
--- a/sw/source/uibase/misc/redlndlg.cxx
+++ b/sw/source/uibase/misc/redlndlg.cxx
@@ -1020,7 +1020,7 @@ IMPL_LINK_NOARG_TYPED(SwRedlineAcceptDlg, GotoHdl, Timer *, void)
     pTPView->EnableRejectAll( bEnable && !bOnlyFormatedRedlines && !bHasReadonlySel );
 }
 
-IMPL_LINK_NOARG(SwRedlineAcceptDlg, CommandHdl)
+IMPL_LINK_NOARG_TYPED(SwRedlineAcceptDlg, CommandHdl, SvSimpleTable*, void)
 {
     const CommandEvent aCEvt(pTable->GetCommandEvent());
 
@@ -1185,8 +1185,6 @@ IMPL_LINK_NOARG(SwRedlineAcceptDlg, CommandHdl)
         break;
         default: break;
     }
-
-    return 0;
 }
 
 void SwRedlineAcceptDlg::Initialize(const OUString& rExtraData)
commit b6e95a8c9997e03099492079ebc34c4a47b8b502
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Aug 28 16:35:06 2015 +0200

    convert Link<> to typed
    
    and remove some dead code
    
    Change-Id: I6a42dbaea5053b4aa3c47b3f154410b05f32dfe4

diff --git a/include/svtools/ruler.hxx b/include/svtools/ruler.hxx
index 4a3ffd2..116f0c8 100644
--- a/include/svtools/ruler.hxx
+++ b/include/svtools/ruler.hxx
@@ -651,12 +651,7 @@ private:
 
     RulerSelection  maHoverSelection;
 
-    Link<>          maStartDragHdl;
-    Link<>          maDragHdl;
-    Link<>          maEndDragHdl;
-    Link<>          maClickHdl;
-    Link<>          maDoubleClickHdl;
-    Link<>          maExtraDownHdl;
+    Link<Ruler*,void>  maDoubleClickHdl;
 
     std::unique_ptr<RulerSelection> mxCurrentHitTest;
     std::unique_ptr<RulerSelection> mxPreviousHitTest;
@@ -792,8 +787,7 @@ public:
     void            SetStyle( WinBits nStyle );
     WinBits         GetStyle() const { return mnWinStyle; }
 
-    const Link<>&   GetStartDragHdl() const { return maStartDragHdl; }
-    void            SetDoubleClickHdl( const Link<>& rLink ) { maDoubleClickHdl = rLink; }
+    void            SetDoubleClickHdl( const Link<Ruler*,void>& rLink ) { maDoubleClickHdl = rLink; }
 
     void            SetTextRTL(bool bRTL);
     bool            GetTextRTL();
diff --git a/svtools/source/control/ruler.cxx b/svtools/source/control/ruler.cxx
index 4dcc834..de25ff6 100644
--- a/svtools/source/control/ruler.cxx
+++ b/svtools/source/control/ruler.cxx
@@ -2282,25 +2282,19 @@ void Ruler::DataChanged( const DataChangedEvent& rDCEvt )
 
 bool Ruler::StartDrag()
 {
-    if ( maStartDragHdl.IsSet() )
-        return maStartDragHdl.Call( this );
-    else
-        return false;
+    return false;
 }
 
 void Ruler::Drag()
 {
-    maDragHdl.Call( this );
 }
 
 void Ruler::EndDrag()
 {
-    maEndDragHdl.Call( this );
 }
 
 void Ruler::Click()
 {
-    maClickHdl.Call( this );
 }
 
 void Ruler::DoubleClick()
@@ -2310,7 +2304,6 @@ void Ruler::DoubleClick()
 
 void Ruler::ExtraDown()
 {
-    maExtraDownHdl.Call( this );
 }
 
 void Ruler::Activate()
diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx
index 2a2104e..a068ee5 100644
--- a/svx/source/dialog/svxruler.cxx
+++ b/svx/source/dialog/svxruler.cxx
@@ -3181,9 +3181,6 @@ bool SvxRuler::StartDrag()
 
     bool bOk = true;
 
-    if(GetStartDragHdl().IsSet())
-        bOk = Ruler::StartDrag();
-
     if(bOk)
     {
         lInitialDragPos = GetDragPos();
diff --git a/sw/inc/view.hxx b/sw/inc/view.hxx
index 6398b92..62f3748 100644
--- a/sw/inc/view.hxx
+++ b/sw/inc/view.hxx
@@ -502,7 +502,7 @@ public:
     void            ExecDraw(SfxRequest&);
     void            ExecTabWin(SfxRequest&);
     void            ExecuteStatusLine(SfxRequest&);
-    DECL_LINK( ExecRulerClick, Ruler * );
+    DECL_LINK_TYPED( ExecRulerClick, Ruler *, void );
     void            ExecSearch(SfxRequest&, bool bNoMessage = false);
     void            ExecViewOptions(SfxRequest &);
 
diff --git a/sw/source/uibase/uiview/viewmdi.cxx b/sw/source/uibase/uiview/viewmdi.cxx
index 49424a6..3674f78 100644
--- a/sw/source/uibase/uiview/viewmdi.cxx
+++ b/sw/source/uibase/uiview/viewmdi.cxx
@@ -527,7 +527,7 @@ int SwView::KillVRuler()
     return 1;
 }
 
-IMPL_LINK( SwView, ExecRulerClick, Ruler *, pRuler )
+IMPL_LINK_TYPED( SwView, ExecRulerClick, Ruler *, pRuler, void )
 {
     OUString sDefPage;
     switch( pRuler->GetClickType() )
@@ -548,7 +548,6 @@ IMPL_LINK( SwView, ExecRulerClick, Ruler *, pRuler )
     GetViewFrame()->GetDispatcher()->Execute( SID_PARA_DLG,
                                 SfxCallMode::SYNCHRON|SfxCallMode::RECORD,
                                 &aDefPage, 0L );
-    return 0;
 }
 
 sal_uInt16 SwView::GetMoveType()
commit 410c06bec452b09cd15ddfcb82b8b2b0508f3c55
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Aug 28 16:20:25 2015 +0200

    convert Link<> to typed
    
    and remove some dead code
    
    Change-Id: I608ed684fafb33390d869f7ebd4000c53d7fb28d

diff --git a/cui/source/dialogs/iconcdlg.cxx b/cui/source/dialogs/iconcdlg.cxx
index b24807b..e40135c 100644
--- a/cui/source/dialogs/iconcdlg.cxx
+++ b/cui/source/dialogs/iconcdlg.cxx
@@ -356,7 +356,7 @@ void IconChoiceDialog::ShowPage(sal_uInt16 nId)
 | select a page
 |
 \**********************************************************************/
-IMPL_LINK_NOARG(IconChoiceDialog , ChosePageHdl_Impl)
+IMPL_LINK_NOARG_TYPED(IconChoiceDialog , ChosePageHdl_Impl, SvtIconChoiceCtrl*, void)
 {
     SvxIconChoiceCtrlEntry *pEntry = m_pIconCtrl->GetSelectedEntry();
     if ( !pEntry )
@@ -368,8 +368,6 @@ IMPL_LINK_NOARG(IconChoiceDialog , ChosePageHdl_Impl)
     {
         ShowPage(*pId);
     }
-
-    return 0L;
 }
 
 /**********************************************************************
diff --git a/cui/source/inc/iconcdlg.hxx b/cui/source/inc/iconcdlg.hxx
index b34f4e3..d95edc8 100644
--- a/cui/source/inc/iconcdlg.hxx
+++ b/cui/source/inc/iconcdlg.hxx
@@ -141,11 +141,11 @@ private:
     bool                    bInOK;
     bool                    bItemsReset;
 
-    DECL_LINK ( ChosePageHdl_Impl, void * );
-    DECL_LINK_TYPED(OkHdl, Button*, void);
-    DECL_LINK_TYPED(ApplyHdl, Button*, void);
-    DECL_LINK_TYPED(ResetHdl, Button*, void);
-    DECL_LINK_TYPED(CancelHdl, Button*, void);
+    DECL_LINK_TYPED( ChosePageHdl_Impl, SvtIconChoiceCtrl*, void );
+    DECL_LINK_TYPED( OkHdl, Button*, void );
+    DECL_LINK_TYPED( ApplyHdl, Button*, void) ;
+    DECL_LINK_TYPED( ResetHdl, Button*, void) ;
+    DECL_LINK_TYPED( CancelHdl, Button*, void );
 
     IconChoicePageData*     GetPageData ( sal_uInt16 nId );
     void                    Start_Impl();
diff --git a/dbaccess/source/ui/app/AppSwapWindow.cxx b/dbaccess/source/ui/app/AppSwapWindow.cxx
index f8c57ce..6544c40 100644
--- a/dbaccess/source/ui/app/AppSwapWindow.cxx
+++ b/dbaccess/source/ui/app/AppSwapWindow.cxx
@@ -157,7 +157,7 @@ bool OApplicationSwapWindow::onContainerSelected( ElementType _eType )
     return false;
 }
 
-IMPL_LINK(OApplicationSwapWindow, OnContainerSelectHdl, SvtIconChoiceCtrl*, _pControl)
+IMPL_LINK_TYPED(OApplicationSwapWindow, OnContainerSelectHdl, SvtIconChoiceCtrl*, _pControl, void)
 {
     SvxIconChoiceCtrlEntry* pEntry = _pControl->GetSelectedEntry();
     ElementType eType = E_NONE;
@@ -166,8 +166,6 @@ IMPL_LINK(OApplicationSwapWindow, OnContainerSelectHdl, SvtIconChoiceCtrl*, _pCo
         eType = *static_cast<ElementType*>(pEntry->GetUserData());
         onContainerSelected( eType ); // i87582
     }
-
-    return 1L;
 }
 
 IMPL_LINK_NOARG_TYPED(OApplicationSwapWindow, ChangeToLastSelected, void*, void)
diff --git a/dbaccess/source/ui/app/AppSwapWindow.hxx b/dbaccess/source/ui/app/AppSwapWindow.hxx
index dba8d5f..4792712 100644
--- a/dbaccess/source/ui/app/AppSwapWindow.hxx
+++ b/dbaccess/source/ui/app/AppSwapWindow.hxx
@@ -37,7 +37,7 @@ namespace dbaui
 
         void ImplInitSettings( bool bFont, bool bForeground, bool bBackground );
 
-        DECL_LINK( OnContainerSelectHdl,    SvtIconChoiceCtrl* );
+        DECL_LINK_TYPED( OnContainerSelectHdl, SvtIconChoiceCtrl*, void );
         DECL_LINK_TYPED( ChangeToLastSelected, void*, void );
     protected:
         virtual void DataChanged(const DataChangedEvent& rDCEvt) SAL_OVERRIDE;
diff --git a/include/svtools/ivctrl.hxx b/include/svtools/ivctrl.hxx
index 136be94..11f9ac5 100644
--- a/include/svtools/ivctrl.hxx
+++ b/include/svtools/ivctrl.hxx
@@ -206,18 +206,14 @@ class SVT_DLLPUBLIC SvtIconChoiceCtrl : public Control
 {
     friend class SvxIconChoiceCtrl_Impl;
 
-    Link<>                  _aClickIconHdl;
-    Link<>                  _aDocRectChangedHdl;
-    Link<>                  _aVisRectChangedHdl;
-    KeyEvent*               _pCurKeyEvent;
-    SvxIconChoiceCtrl_Impl* _pImp;
-    bool                    _bAutoFontColor;
+    Link<SvtIconChoiceCtrl*,void>  _aClickIconHdl;
+    KeyEvent*                      _pCurKeyEvent;
+    SvxIconChoiceCtrl_Impl*        _pImp;
+    bool                           _bAutoFontColor;
 
 protected:
 
     virtual void        KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
-    void                DocumentRectChanged();
-    void                VisibleRectChanged();
     virtual void        Command( const CommandEvent& rCEvt ) SAL_OVERRIDE;
     virtual void        Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
     virtual void        MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE;
@@ -257,8 +253,8 @@ public:
     void                SetFont( const vcl::Font& rFont );
     void                SetPointFont( const vcl::Font& rFont );
 
-    void                SetClickHdl( const Link<>& rLink ) { _aClickIconHdl = rLink; }
-    const Link<>&       GetClickHdl() const { return _aClickIconHdl; }
+    void                SetClickHdl( const Link<SvtIconChoiceCtrl*,void>& rLink ) { _aClickIconHdl = rLink; }
+    const Link<SvtIconChoiceCtrl*,void>& GetClickHdl() const { return _aClickIconHdl; }
 
     using OutputDevice::SetBackground;
     void                SetBackground( const Wallpaper& rWallpaper );
diff --git a/svtools/source/contnr/imivctl1.cxx b/svtools/source/contnr/imivctl1.cxx
index 0a115d9..dedeaf8 100644
--- a/svtools/source/contnr/imivctl1.cxx
+++ b/svtools/source/contnr/imivctl1.cxx
@@ -2751,13 +2751,11 @@ IMPL_LINK_NOARG_TYPED(SvxIconChoiceCtrl_Impl, AutoArrangeHdl, Idle *, void)
 IMPL_LINK_NOARG_TYPED(SvxIconChoiceCtrl_Impl, VisRectChangedHdl, Idle *, void)
 {
     aVisRectChangedIdle.Stop();
-    pView->VisibleRectChanged();
 }
 
 IMPL_LINK_NOARG_TYPED(SvxIconChoiceCtrl_Impl, DocRectChangedHdl, Idle *, void)
 {
     aDocRectChangedIdle.Stop();
-    pView->DocumentRectChanged();
 }
 
 bool SvxIconChoiceCtrl_Impl::IsTextHit( SvxIconChoiceCtrlEntry* pEntry, const Point& rDocPos )
diff --git a/svtools/source/contnr/ivctrl.cxx b/svtools/source/contnr/ivctrl.cxx
index 01b76a4..de4293c 100644
--- a/svtools/source/contnr/ivctrl.cxx
+++ b/svtools/source/contnr/ivctrl.cxx
@@ -194,16 +194,6 @@ Point SvtIconChoiceCtrl::GetPixelPos( const Point& rPosLogic ) const
     return aPos;
 }
 
-void SvtIconChoiceCtrl::DocumentRectChanged()
-{
-    _aDocRectChangedHdl.Call( this );
-}
-
-void SvtIconChoiceCtrl::VisibleRectChanged()
-{
-    _aVisRectChangedHdl.Call( this );
-}
-
 void SvtIconChoiceCtrl::GetFocus()
 {
     _pImp->GetFocus();
commit 32673845809df70efe2651c3ca82f574245279c2
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Aug 28 16:12:16 2015 +0200

    convert Link<> to typed
    
    Change-Id: I236c1a35534c3b0a8461caffbaf852e9bbbd621d

diff --git a/fpicker/source/office/iodlg.cxx b/fpicker/source/office/iodlg.cxx
index 156d103..bee5c60 100644
--- a/fpicker/source/office/iodlg.cxx
+++ b/fpicker/source/office/iodlg.cxx
@@ -523,7 +523,7 @@ void SvtFileDialog::Init_Impl
 
     // Create control element, the order defines the tab control.
     _pImp->_pEdFileName->SetSelectHdl( LINK( this, SvtFileDialog, EntrySelectHdl_Impl ) );
-    _pImp->_pEdFileName->SetOpenHdl( LINK( this, SvtFileDialog, OpenHdl_Impl ) );
+    _pImp->_pEdFileName->SetOpenHdl( LINK( this, SvtFileDialog, OpenUrlHdl_Impl ) );
 
     // in folder picker mode, only auto-complete directories (no files)
     bool bIsFolderPicker = ( _pImp->_eDlgType == FILEDLG_TYPE_PATHDLG );
@@ -832,13 +832,17 @@ IMPL_LINK_TYPED( SvtFileDialog, OpenClickHdl_Impl, Button*, pVoid, void )
 {
     OpenHdl_Impl(pVoid);
 }
-IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
+IMPL_LINK_TYPED( SvtFileDialog, OpenUrlHdl_Impl, SvtURLBox*, pVoid, void )
+{
+    OpenHdl_Impl(pVoid);
+}
+void SvtFileDialog::OpenHdl_Impl(void* pVoid)
 {
     if ( _pImp->_bMultiSelection && _pFileView->GetSelectionCount() > 1 )
     {
         // special open in case of multiselection
         OpenMultiSelection_Impl();
-        return 0;
+        return;
     }
 
     OUString aFileName;
@@ -860,7 +864,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
     {
         if ( _pImp->_eMode == FILEDLG_MODE_OPEN && _pImp->_pEdFileName->IsTravelSelect() )
             // OpenHdl called from URLBox; travelling through the list of URLs should not cause an opening
-            return 0;                   // MBA->PB: seems to be called never ?!
+            return;                   // MBA->PB: seems to be called never ?!
 
         // get the URL from the edit field ( if not empty )
         if ( !_pImp->_pEdFileName->GetText().isEmpty() )
@@ -873,7 +877,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
                 if ( ( aText.getLength() == 2 && aText == ".." ) ||
                      ( aText.getLength() == 3 && ( aText == "..\\" || aText == "../" ) ) )
                     // don't go higher than the root
-                    return 0;
+                    return;
             }
 
 #if defined( UNX )
@@ -891,7 +895,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
                 aFileName = _pImp->_pEdFileName->GetURL();
             }
         }
-        else if ( pVoid == _pImp->_pBtnFileOpen )
+        else if ( pVoid == _pImp->_pBtnFileOpen.get() )
             // OpenHdl was called for the "Open" Button; if edit field is empty, use selected element in the view
             aFileName = _pFileView->GetCurrentURL();
     }
@@ -900,7 +904,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
     if ( aFileName.isEmpty() && pVoid == _pImp->_pEdFileName && _pImp->_pUserFilter )
     {
         DELETEZ( _pImp->_pUserFilter );
-        return 0;
+        return;
     }
 
     sal_Int32 nLen = aFileName.getLength();
@@ -914,7 +918,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
         }
         else
             // no file selected !
-            return 0;
+            return;
     }
 
     // mark input as selected
@@ -923,7 +927,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
     // if a path with wildcards is given, divide the string into path and wildcards
     OUString aFilter;
     if ( !SvtFileDialog::IsolateFilterFromPath_Impl( aFileName, aFilter ) )
-        return 0;
+        return;
 
     // if a filter was retrieved, there were wildcards !
     sal_uInt16 nNewFilterFlags = adjustFilter( aFilter );
@@ -976,7 +980,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
         OSL_ENSURE( pHandler, "Got no Interaction Handler!!!" );
 
         if ( pHandler->wasAccessDenied() )
-            return 0;
+            return;
 
         if ( m_aContent.isInvalid() &&
              ( _pImp->_eMode == FILEDLG_MODE_OPEN ) )
@@ -984,7 +988,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
             if ( !pHandler->wasUsed() )
                 ErrorHandler::HandleError( ERRCODE_IO_NOTEXISTS );
 
-            return 0;
+            return;
         }
 
         // restore previous Interaction Handler
@@ -1032,7 +1036,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
                     ExecuteFilter();
             }
 
-            return 0;
+            return;
         }
     }
     else if ( !( nNewFilterFlags & FLT_NONEMPTY ) )
@@ -1045,14 +1049,14 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
         // if applicable filter again
         if ( nNewFilterFlags & FLT_CHANGED )
             ExecuteFilter();
-        return 0;
+        return;
     }
 
     INetURLObject aFileObj( aFileName );
     if ( aFileObj.HasError() )
     {
         ErrorHandler::HandleError( ERRCODE_IO_GENERAL );
-        return 0;
+        return;
     }
 
     switch ( _pImp->_eMode )
@@ -1068,7 +1072,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
                 );
                 ScopedVclPtrInstance< MessageDialog > aBox(this, aMsg, VCL_MESSAGE_QUESTION, VCL_BUTTONS_YES_NO);
                 if ( aBox->Execute() != RET_YES )
-                    return 0;
+                    return;
             }
             else
             {
@@ -1082,7 +1086,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
                     if ( !bFolder )
                     {
                         ErrorHandler::HandleError( ERRCODE_IO_NOTEXISTSPATH );
-                        return 0;
+                        return;
                     }
                 }
             }
@@ -1113,7 +1117,7 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
 
                     ScopedVclPtrInstance< MessageDialog > aError(this, sError);
                     aError->Execute();
-                    return 0;
+                    return;
                 }
             }
         }
@@ -1135,8 +1139,6 @@ IMPL_LINK( SvtFileDialog, OpenHdl_Impl, void*, pVoid )
     {
         EndDialog( RET_OK );
     }
-
-    return nRet;
 }
 
 
@@ -1245,11 +1247,10 @@ IMPL_LINK_NOARG( SvtFileDialog, FileNameModifiedHdl_Impl )
 
 
 
-IMPL_LINK_NOARG( SvtFileDialog, URLBoxModifiedHdl_Impl )
+IMPL_LINK_NOARG_TYPED( SvtFileDialog, URLBoxModifiedHdl_Impl, SvtURLBox*, void )
 {
     OUString aPath = _pImp->_pEdCurrentPath->GetURL();
     OpenURL_Impl(aPath);
-    return 0;
 }
 
 
diff --git a/fpicker/source/office/iodlg.hxx b/fpicker/source/office/iodlg.hxx
index f9950a0..41e8b88 100644
--- a/fpicker/source/office/iodlg.hxx
+++ b/fpicker/source/office/iodlg.hxx
@@ -43,17 +43,11 @@
 
 #include <set>
 
-// @@@ using namespace com::sun::star::ucb;
-
-
 
 class SvTabListBox;
 class SvtFileView;
 class SvtFileDialogFilter_Impl;
-
-// SvtFileDialog
-
-
+class SvtURLBox;
 class SvtExpFileDlg_Impl;
 class CustomContainer;
 
@@ -91,21 +85,22 @@ private:
     ::com::sun::star::uno::Reference < com::sun::star::uno::XComponentContext > m_context;
 
     DECL_LINK( FilterSelectHdl_Impl, void* );
-    DECL_LINK_TYPED( FilterSelectTimerHdl_Impl, Timer*, void );
-    DECL_LINK_TYPED( NewFolderHdl_Impl, Button*, void );
-    DECL_LINK( OpenHdl_Impl, void* );
-    DECL_LINK_TYPED( OpenClickHdl_Impl, Button*, void );
-    DECL_LINK_TYPED( CancelHdl_Impl, Button*, void );
+    DECL_LINK_TYPED(            FilterSelectTimerHdl_Impl, Timer*, void );
+    DECL_LINK_TYPED(            NewFolderHdl_Impl, Button*, void );
+    DECL_LINK_TYPED(            OpenUrlHdl_Impl, SvtURLBox*, void );
+    DECL_LINK_TYPED(            OpenClickHdl_Impl, Button*, void );
+    DECL_LINK_TYPED(            CancelHdl_Impl, Button*, void );
     DECL_LINK( FileNameGetFocusHdl_Impl, void* );
     DECL_LINK( FileNameModifiedHdl_Impl, void* );
 
-    DECL_LINK( URLBoxModifiedHdl_Impl, void* );
-    DECL_LINK_TYPED( ConnectToServerPressed_Hdl, Button*, void );
+    DECL_LINK_TYPED(            URLBoxModifiedHdl_Impl, SvtURLBox*, void );
+    DECL_LINK_TYPED(            ConnectToServerPressed_Hdl, Button*, void );
 
-    DECL_LINK_TYPED(                AddPlacePressed_Hdl, Button*, void );
-    DECL_LINK_TYPED(                RemovePlacePressed_Hdl, Button*, void );
-    DECL_LINK      (                Split_Hdl, void* );
+    DECL_LINK_TYPED(            AddPlacePressed_Hdl, Button*, void );
+    DECL_LINK_TYPED(            RemovePlacePressed_Hdl, Button*, void );
+    DECL_LINK      (            Split_Hdl, void* );
 
+    void                        OpenHdl_Impl(void* pVoid);
     void                        Init_Impl( WinBits nBits );
     /** find a filter with the given wildcard
     @param _rFilter
diff --git a/include/svtools/inettbc.hxx b/include/svtools/inettbc.hxx
index 3619ef6..1d91621 100644
--- a/include/svtools/inettbc.hxx
+++ b/include/svtools/inettbc.hxx
@@ -32,7 +32,7 @@ class SVT_DLLPUBLIC SvtURLBox : public ComboBox
 {
 friend class SvtMatchContext_Impl;
 friend class SvtURLBox_Impl;
-    Link<>                          aOpenHdl;
+    Link<SvtURLBox*,void>           aOpenHdl;
     OUString                        aBaseURL;
     OUString                        aPlaceHolder;
     rtl::Reference< SvtMatchContext_Impl > pCtx;
@@ -67,8 +67,8 @@ public:
 
     void                            SetBaseURL( const OUString& rURL );
     const OUString&                 GetBaseURL() const { return aBaseURL; }
-    void                            SetOpenHdl( const Link<>& rLink ) { aOpenHdl = rLink; }
-    const Link<>&                   GetOpenHdl() const { return aOpenHdl; }
+    void                            SetOpenHdl( const Link<SvtURLBox*,void>& rLink ) { aOpenHdl = rLink; }
+    const Link<SvtURLBox*,void>&    GetOpenHdl() const { return aOpenHdl; }
     void                            SetOnlyDirectories( bool bDir = true );
     void                            SetNoURLSelection( bool bSet = true );
     INetProtocol                    GetSmartProtocol() const { return eSmartProtocol; }
diff --git a/sfx2/inc/inettbc.hxx b/sfx2/inc/inettbc.hxx
index 8562b7f..caa197be 100644
--- a/sfx2/inc/inettbc.hxx
+++ b/sfx2/inc/inettbc.hxx
@@ -34,7 +34,7 @@ private:
     SvtURLBox*              GetURLBox() const;
     void                    OpenURL( const OUString& rName, bool bNew ) const;
 
-    DECL_LINK(              OpenHdl, void* );
+    DECL_LINK_TYPED(        OpenHdl, SvtURLBox*, void );
     DECL_LINK(              SelectHdl, void* );
 
     struct ExecuteInfo
diff --git a/sfx2/source/inet/inettbc.cxx b/sfx2/source/inet/inettbc.cxx
index 8ba12b5..47d361e 100644
--- a/sfx2/source/inet/inettbc.cxx
+++ b/sfx2/source/inet/inettbc.cxx
@@ -170,7 +170,7 @@ IMPL_LINK_NOARG(SfxURLToolBoxControl_Impl, SelectHdl)
     return 1L;
 }
 
-IMPL_LINK_NOARG(SfxURLToolBoxControl_Impl, OpenHdl)
+IMPL_LINK_NOARG_TYPED(SfxURLToolBoxControl_Impl, OpenHdl, SvtURLBox*, void)
 {
     SvtURLBox* pURLBox = GetURLBox();
     OpenURL( pURLBox->GetURL(), pURLBox->IsCtrlOpen() );
@@ -186,8 +186,6 @@ IMPL_LINK_NOARG(SfxURLToolBoxControl_Impl, OpenHdl)
             pWin->ToTop( ToTopFlags::RestoreWhenMin );
         }
     }
-
-    return 1L;
 }
 
 
commit 335b14fba374c4a39252958de0e88a93dfc97a00
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Aug 28 15:58:14 2015 +0200

    convert Link<> to typed
    
    Change-Id: I885694b2f7c950a292dd903952c5d298b9d0df9f

diff --git a/include/svtools/hyperlabel.hxx b/include/svtools/hyperlabel.hxx
index ad61c58..81ef7c3 100644
--- a/include/svtools/hyperlabel.hxx
+++ b/include/svtools/hyperlabel.hxx
@@ -38,7 +38,7 @@ namespace svt
     {
     protected:
         HyperLabelImpl*     m_pImpl;
-        Link<>              maClickHdl;
+        Link<HyperLabel*,void>  maClickHdl;
 
         virtual void        MouseMove( const MouseEvent& rMEvt ) SAL_OVERRIDE;
         virtual void        MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE;
@@ -69,7 +69,7 @@ namespace svt
         void                ToggleBackgroundColor( const Color& _rGBColor );
         void                SetInteractive( bool _bInteractive );
 
-        void                SetClickHdl( const Link<>& rLink ) { maClickHdl = rLink; }
+        void                SetClickHdl( const Link<HyperLabel*,void>& rLink ) { maClickHdl = rLink; }
 
         Size                CalcMinimumSize( long nMaxWidth = 0 ) const;
 
diff --git a/svtools/inc/roadmap.hxx b/svtools/inc/roadmap.hxx
index a4e9431..304c8c7 100644
--- a/svtools/inc/roadmap.hxx
+++ b/svtools/inc/roadmap.hxx
@@ -89,7 +89,7 @@ protected:
     void    Select();
 
 private:
-    DECL_LINK(ImplClickHdl, HyperLabel*);
+    DECL_LINK_TYPED(ImplClickHdl, HyperLabel*, void);
 
     RoadmapItem*         GetByIndex( ItemIndex _nItemIndex );
     const RoadmapItem*   GetByIndex( ItemIndex _nItemIndex ) const;
diff --git a/svtools/source/control/roadmap.cxx b/svtools/source/control/roadmap.cxx
index 9a97485..f27ac1a 100644
--- a/svtools/source/control/roadmap.cxx
+++ b/svtools/source/control/roadmap.cxx
@@ -69,7 +69,7 @@ public:
     void                    ToggleBackgroundColor( const Color& _rGBColor );
     void                    SetInteractive( bool _bInteractive );
 
-    void                    SetClickHdl( const Link<>& rLink );
+    void                    SetClickHdl( const Link<HyperLabel*,void>& rLink );
     void                    Enable( bool bEnable = true);
     bool                    IsEnabled() const;
     void                    GrabFocus();
@@ -646,9 +646,9 @@ bool ORoadmap::PreNotify(NotifyEvent& _rNEvt)
     return Window::PreNotify( _rNEvt );
 }
 
-IMPL_LINK(ORoadmap, ImplClickHdl, HyperLabel*, _CurHyperLabel)
+IMPL_LINK_TYPED(ORoadmap, ImplClickHdl, HyperLabel*, _CurHyperLabel, void)
 {
-   return SelectRoadmapItemByID( _CurHyperLabel->GetID() ) ? 1 : 0;
+   SelectRoadmapItemByID( _CurHyperLabel->GetID() );
 }
 
 void ORoadmap::DataChanged(const DataChangedEvent& rDCEvt)
@@ -813,7 +813,7 @@ void RoadmapItem::Update(ItemIndex _RMIndex, const OUString& _rText)
     ImplUpdateIndex( _RMIndex );
 }
 
-void RoadmapItem::SetClickHdl(const Link<>& rLink)
+void RoadmapItem::SetClickHdl(const Link<HyperLabel*,void>& rLink)
 {
     if ( mpDescription )
         mpDescription->SetClickHdl( rLink);
commit 68ddda0f3fff8bc435c2a5fd60d1e7eff5359916
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Aug 28 15:51:24 2015 +0200

    convert Link<> to typed
    
    Change-Id: I53b0a7a9875a3ebcca915c8f2d8c53face6f9509

diff --git a/basctl/source/basicide/baside2.hxx b/basctl/source/basicide/baside2.hxx
index bf2fc8f8..ab0ec27 100644
--- a/basctl/source/basicide/baside2.hxx
+++ b/basctl/source/basicide/baside2.hxx
@@ -235,7 +235,7 @@ protected:
 
     DECL_LINK_TYPED( ButtonHdl, Button *, void );
     DECL_LINK(TreeListHdl, void *);
-    DECL_LINK( implEndDragHdl, HeaderBar * );
+    DECL_LINK_TYPED( implEndDragHdl, HeaderBar *, void );
     DECL_LINK_TYPED( EditAccHdl, Accelerator *, void );
 
 
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx
index 786f6d7..168d441 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -1799,10 +1799,8 @@ IMPL_LINK_NOARG(WatchWindow, TreeListHdl)
     return 0;
 }
 
-IMPL_LINK( WatchWindow, implEndDragHdl, HeaderBar *, pBar )
+IMPL_LINK_NOARG_TYPED( WatchWindow, implEndDragHdl, HeaderBar *, void )
 {
-    (void)pBar;
-
     const sal_Int32 TAB_WIDTH_MIN = 10;
     sal_Int32 nMaxWidth =
         aHeaderBar->GetSizePixel().getWidth() - 2 * TAB_WIDTH_MIN;
@@ -1829,7 +1827,6 @@ IMPL_LINK( WatchWindow, implEndDragHdl, HeaderBar *, pBar )
         nPos += aHeaderBar->GetItemSize( i );
         aTreeListBox->SetTab( i, nPos, MAP_PIXEL );
     }
-    return 0;
 }
 
 IMPL_LINK_TYPED( WatchWindow, EditAccHdl, Accelerator *, pAcc, void )
diff --git a/cui/source/customize/macropg.cxx b/cui/source/customize/macropg.cxx
index 6338147..92008bb 100644
--- a/cui/source/customize/macropg.cxx
+++ b/cui/source/customize/macropg.cxx
@@ -82,13 +82,13 @@ static long nTabs[] =
 #define LB_MACROS_ITEMPOS    2
 
 
-IMPL_LINK( MacroEventListBox, HeaderEndDrag_Impl, HeaderBar*, pBar )
+IMPL_LINK_TYPED( MacroEventListBox, HeaderEndDrag_Impl, HeaderBar*, pBar, void )
 {
     DBG_ASSERT( pBar == maHeaderBar.get(), "*MacroEventListBox::HeaderEndDrag_Impl: something is wrong here..." );
     (void)pBar;
 
     if( !maHeaderBar->GetCurItemId() )
-        return 0;
+        return;
 
     if( !maHeaderBar->IsItemMode() )
     {
@@ -113,7 +113,6 @@ IMPL_LINK( MacroEventListBox, HeaderEndDrag_Impl, HeaderBar*, pBar )
             }
         }
     }
-    return 1;
 }
 
 bool MacroEventListBox::Notify( NotifyEvent& rNEvt )
diff --git a/cui/source/inc/dbregister.hxx b/cui/source/inc/dbregister.hxx
index 2e08393..879b6cd 100644
--- a/cui/source/inc/dbregister.hxx
+++ b/cui/source/inc/dbregister.hxx
@@ -59,8 +59,8 @@ namespace svx
 
         DECL_LINK(PathSelect_Impl, void *);
 
-        DECL_LINK( HeaderSelect_Impl, HeaderBar * );
-        DECL_LINK( HeaderEndDrag_Impl, HeaderBar * );
+        DECL_LINK_TYPED( HeaderSelect_Impl, HeaderBar *, void );
+        DECL_LINK_TYPED( HeaderEndDrag_Impl, HeaderBar *, void );
         DECL_LINK( NameValidator, OUString*);
 
 
diff --git a/cui/source/inc/headertablistbox.hxx b/cui/source/inc/headertablistbox.hxx
index 59037ed..db607ac 100644
--- a/cui/source/inc/headertablistbox.hxx
+++ b/cui/source/inc/headertablistbox.hxx
@@ -30,7 +30,7 @@ private:
     VclPtr<HeaderBar>               maHeaderBar;
     VclPtr<SvHeaderTabListBox>      maListBox;
 protected:
-    DECL_LINK( HeaderEndDrag_Impl, HeaderBar* );
+    DECL_LINK_TYPED( HeaderEndDrag_Impl, HeaderBar*, void );
     virtual bool                Notify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
 public:
     MacroEventListBox( vcl::Window* pParent, WinBits nStyle );
diff --git a/cui/source/inc/optpath.hxx b/cui/source/inc/optpath.hxx
index 5d23015..384a89e 100644
--- a/cui/source/inc/optpath.hxx
+++ b/cui/source/inc/optpath.hxx
@@ -53,13 +53,13 @@ private:
 
     void        ChangeCurrentEntry( const OUString& _rFolder );
 
-    DECL_LINK_TYPED(PathHdl_Impl, Button*, void);
+    DECL_LINK_TYPED( PathHdl_Impl, Button*, void);
     DECL_LINK(DoubleClickPathHdl_Impl, void *);
-    DECL_LINK_TYPED(StandardHdl_Impl, Button*, void);
+    DECL_LINK_TYPED( StandardHdl_Impl, Button*, void);
 
     DECL_LINK(PathSelect_Impl, void *);
-    DECL_LINK(  HeaderSelect_Impl, HeaderBar * );
-    DECL_LINK(  HeaderEndDrag_Impl, HeaderBar * );
+    DECL_LINK_TYPED( HeaderSelect_Impl, HeaderBar *, void );
+    DECL_LINK_TYPED( HeaderEndDrag_Impl, HeaderBar *, void );
 
     DECL_LINK_TYPED( DialogClosedHdl, css::ui::dialogs::DialogClosedEvent*, void );
 
diff --git a/cui/source/options/dbregister.cxx b/cui/source/options/dbregister.cxx
index eedd4f4..c3e7ccd 100644
--- a/cui/source/options/dbregister.cxx
+++ b/cui/source/options/dbregister.cxx
@@ -315,12 +315,12 @@ IMPL_LINK_NOARG_TYPED(DbRegistrationOptionsPage, EditHdl, Button*, void)
 
 
 
-IMPL_LINK( DbRegistrationOptionsPage, HeaderSelect_Impl, HeaderBar*, pBar )
+IMPL_LINK_TYPED( DbRegistrationOptionsPage, HeaderSelect_Impl, HeaderBar*, pBar, void )
 {
     assert(pBar);
 
     if (!pBar || pBar->GetCurItemId() != ITEMID_TYPE)
-        return 0;
+        return;
 
     HeaderBarItemBits nBits = pBar->GetItemBits(ITEMID_TYPE);
     bool bUp = ( ( nBits & HeaderBarItemBits::UPARROW ) == HeaderBarItemBits::UPARROW );
@@ -341,17 +341,16 @@ IMPL_LINK( DbRegistrationOptionsPage, HeaderSelect_Impl, HeaderBar*, pBar )
     SvTreeList* pModel = m_pPathBox->GetModel();
     pModel->SetSortMode( eMode );
     pModel->Resort();
-    return 1;
 }
 
 
 
-IMPL_LINK( DbRegistrationOptionsPage, HeaderEndDrag_Impl, HeaderBar*, pBar )
+IMPL_LINK_TYPED( DbRegistrationOptionsPage, HeaderEndDrag_Impl, HeaderBar*, pBar, void )
 {
     assert(pBar);
 
     if (!pBar || !pBar->GetCurItemId())
-        return 0;
+        return;
 
     if ( !pBar->IsItemMode() )
     {
@@ -374,7 +373,6 @@ IMPL_LINK( DbRegistrationOptionsPage, HeaderEndDrag_Impl, HeaderBar*, pBar )
             m_pPathBox->SetTab( i, PixelToLogic( aSz, MapMode(MAP_APPFONT) ).Width(), MAP_APPFONT );
         }
     }
-    return 1;
 }
 
 
diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx
index 787b956..7bddba3 100644
--- a/cui/source/options/optpath.cxx
+++ b/cui/source/options/optpath.cxx
@@ -634,10 +634,10 @@ IMPL_LINK_NOARG_TYPED(SvxPathTabPage, PathHdl_Impl, Button*, void)
 
 
 
-IMPL_LINK( SvxPathTabPage, HeaderSelect_Impl, HeaderBar*, pBar )
+IMPL_LINK_TYPED( SvxPathTabPage, HeaderSelect_Impl, HeaderBar*, pBar, void )
 {
     if (!pBar || pBar->GetCurItemId() != ITEMID_TYPE)
-        return 0;
+        return;
 
     HeaderBarItemBits nBits = pBar->GetItemBits(ITEMID_TYPE);
     bool bUp = ( ( nBits & HeaderBarItemBits::UPARROW ) == HeaderBarItemBits::UPARROW );
@@ -658,15 +658,14 @@ IMPL_LINK( SvxPathTabPage, HeaderSelect_Impl, HeaderBar*, pBar )
     SvTreeList* pModel = pPathBox->GetModel();
     pModel->SetSortMode( eMode );
     pModel->Resort();
-    return 1;
 }
 
 
 
-IMPL_LINK( SvxPathTabPage, HeaderEndDrag_Impl, HeaderBar*, pBar )
+IMPL_LINK_TYPED( SvxPathTabPage, HeaderEndDrag_Impl, HeaderBar*, pBar, void )
 {
     if (!pBar || !pBar->GetCurItemId())
-        return 0;
+        return;
 
     if ( !pBar->IsItemMode() )
     {
@@ -689,7 +688,6 @@ IMPL_LINK( SvxPathTabPage, HeaderEndDrag_Impl, HeaderBar*, pBar )
             pPathBox->SetTab( i, PixelToLogic( aSz, MapMode(MAP_APPFONT) ).Width(), MAP_APPFONT );
         }
     }
-    return 1;
 }
 
 
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
index 8ab2384..88f148e 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
@@ -1445,10 +1445,10 @@ IMPL_LINK( XMLFilterListBox, TabBoxScrollHdl_Impl, SvTabListBox*, /* pList */ )
     return 0;
 }
 
-IMPL_LINK( XMLFilterListBox, HeaderEndDrag_Impl, HeaderBar*, pBar )
+IMPL_LINK_TYPED( XMLFilterListBox, HeaderEndDrag_Impl, HeaderBar*, pBar, void )
 {
     if ( pBar && !pBar->GetCurItemId() )
-        return 0;
+        return;
 
     if ( !m_pHeaderBar->IsItemMode() )
     {
@@ -1471,7 +1471,6 @@ IMPL_LINK( XMLFilterListBox, HeaderEndDrag_Impl, HeaderBar*, pBar )
             SetTab( i, PixelToLogic( aSz, MapMode(MAP_APPFONT) ).Width(), MAP_APPFONT );
         }
     }
-    return 1;
 }
 
 /** adds a new filter info entry to the ui filter list */
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
index c102cf5..88b2ad2 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
@@ -63,7 +63,7 @@ private:
     VclPtr<HeaderBar>  m_pHeaderBar;
 
     DECL_LINK( TabBoxScrollHdl_Impl, SvTabListBox* );
-    DECL_LINK( HeaderEndDrag_Impl, HeaderBar* );
+    DECL_LINK_TYPED( HeaderEndDrag_Impl, HeaderBar*, void );
 
     static OUString getEntryString( const filter_info_impl* pInfo );
 
diff --git a/include/svtools/brwbox.hxx b/include/svtools/brwbox.hxx
index 997dcb5..bd54832 100644
--- a/include/svtools/brwbox.hxx
+++ b/include/svtools/brwbox.hxx
@@ -317,7 +317,7 @@ private:
 
     DECL_DLLPRIVATE_LINK(       ScrollHdl, ScrollBar * );
     DECL_DLLPRIVATE_LINK(       EndScrollHdl, void * );
-    DECL_DLLPRIVATE_LINK(       StartDragHdl, HeaderBar * );
+    DECL_DLLPRIVATE_LINK_TYPED(    StartDragHdl, HeaderBar *, void );
 
     SVT_DLLPRIVATE long            GetFrozenWidth() const;
 
diff --git a/include/svtools/fileview.hxx b/include/svtools/fileview.hxx
index afc7dab..5c87019 100644
--- a/include/svtools/fileview.hxx
+++ b/include/svtools/fileview.hxx
@@ -68,8 +68,8 @@ private:
 
     ::com::sun::star::uno::Sequence< OUString > mpBlackList;
 
-    DECL_DLLPRIVATE_LINK(               HeaderSelect_Impl, HeaderBar * );
-    DECL_DLLPRIVATE_LINK(               HeaderEndDrag_Impl, HeaderBar * );
+    DECL_DLLPRIVATE_LINK_TYPED( HeaderSelect_Impl, HeaderBar*, void );
+    DECL_DLLPRIVATE_LINK_TYPED( HeaderEndDrag_Impl, HeaderBar*, void );
 
 protected:
     virtual void GetFocus() SAL_OVERRIDE;
diff --git a/include/svtools/headbar.hxx b/include/svtools/headbar.hxx
index b7a7504..c1bb77d 100644
--- a/include/svtools/headbar.hxx
+++ b/include/svtools/headbar.hxx
@@ -249,12 +249,12 @@ private:
     bool                mbOutDrag;
     bool                mbButtonStyle;
     bool                mbItemMode;
-    Link<>              maStartDragHdl;
-    Link<>              maDragHdl;
-    Link<>              maEndDragHdl;
-    Link<>              maSelectHdl;
-    Link<>              maDoubleClickHdl;
-    Link<>              maCreateAccessibleHdl;
+    Link<HeaderBar*,void> maStartDragHdl;
+    Link<HeaderBar*,void> maDragHdl;
+    Link<HeaderBar*,void> maEndDragHdl;
+    Link<HeaderBar*,void> maSelectHdl;
+    Link<HeaderBar*,void> maDoubleClickHdl;
+    Link<HeaderBar*,void> maCreateAccessibleHdl;
 
     VCLXHeaderBar*      m_pVCLXHeaderBar;
 
@@ -340,12 +340,12 @@ public:
     inline void         SetHelpId( const OString& rId )    { Window::SetHelpId( rId ); }
 
 
-    inline void         SetStartDragHdl( const Link<>& rLink )      { maStartDragHdl = rLink; }
-    inline void         SetDragHdl( const Link<>& rLink )           { maDragHdl = rLink; }
-    inline void         SetEndDragHdl( const Link<>& rLink )        { maEndDragHdl = rLink; }
-    inline void         SetSelectHdl( const Link<>& rLink )         { maSelectHdl = rLink; }
-    inline void         SetDoubleClickHdl( const Link<>& rLink )    { maDoubleClickHdl = rLink; }
-    inline void         SetCreateAccessibleHdl( const Link<>& rLink ) { maCreateAccessibleHdl = rLink; }
+    inline void         SetStartDragHdl( const Link<HeaderBar*,void>& rLink )      { maStartDragHdl = rLink; }
+    inline void         SetDragHdl( const Link<HeaderBar*,void>& rLink )           { maDragHdl = rLink; }
+    inline void         SetEndDragHdl( const Link<HeaderBar*,void>& rLink )        { maEndDragHdl = rLink; }
+    inline void         SetSelectHdl( const Link<HeaderBar*,void>& rLink )         { maSelectHdl = rLink; }
+    inline void         SetDoubleClickHdl( const Link<HeaderBar*,void>& rLink )    { maDoubleClickHdl = rLink; }
+    inline void         SetCreateAccessibleHdl( const Link<HeaderBar*,void>& rLink ) { maCreateAccessibleHdl = rLink; }
 
     inline bool         IsDragable() const                          { return mbDragable; }
 
diff --git a/include/svtools/simptabl.hxx b/include/svtools/simptabl.hxx
index 0914396..d62ee39 100644
--- a/include/svtools/simptabl.hxx
+++ b/include/svtools/simptabl.hxx
@@ -64,11 +64,11 @@ private:
 
     const CollatorWrapper aCollator;
 
-    DECL_LINK( StartDragHdl, HeaderBar* );
-    DECL_LINK( DragHdl, HeaderBar* );
-    DECL_LINK( EndDragHdl, HeaderBar* );
-    DECL_LINK( HeaderBarClick, HeaderBar* );
-    DECL_LINK( HeaderBarDblClick, HeaderBar* );
+    DECL_LINK_TYPED( StartDragHdl, HeaderBar*, void );
+    DECL_LINK_TYPED( DragHdl, HeaderBar*, void );
+    DECL_LINK_TYPED( EndDragHdl, HeaderBar*, void );
+    DECL_LINK_TYPED( HeaderBarClick, HeaderBar*, void );
+    DECL_LINK_TYPED( HeaderBarDblClick, HeaderBar*, void );
     DECL_LINK( CompareHdl, SvSortData* );
 
 protected:
diff --git a/include/svtools/svtabbx.hxx b/include/svtools/svtabbx.hxx
index 519196c..d7e987b 100644
--- a/include/svtools/svtabbx.hxx
+++ b/include/svtools/svtabbx.hxx
@@ -133,7 +133,7 @@ private:
     AccessibleChildren              m_aAccessibleChildren;
 
     DECL_DLLPRIVATE_LINK( ScrollHdl_Impl, void* );
-    DECL_DLLPRIVATE_LINK( CreateAccessibleHdl_Impl, void* );
+    DECL_DLLPRIVATE_LINK_TYPED( CreateAccessibleHdl_Impl, HeaderBar*, void );
 
     void            RecalculateAccessibleChildren();
 
diff --git a/sc/source/ui/inc/namemgrtable.hxx b/sc/source/ui/inc/namemgrtable.hxx
index f9827f8..c51d233 100644
--- a/sc/source/ui/inc/namemgrtable.hxx
+++ b/sc/source/ui/inc/namemgrtable.hxx
@@ -82,7 +82,7 @@ public:
     std::vector<ScRangeNameLine> GetSelectedEntries();
 
     DECL_LINK( ScrollHdl, void*);
-    DECL_LINK( HeaderEndDragHdl, void*);
+    DECL_LINK_TYPED( HeaderEndDragHdl, HeaderBar*, void);
 };
 
 #endif
diff --git a/sc/source/ui/namedlg/namemgrtable.cxx b/sc/source/ui/namedlg/namemgrtable.cxx
index 89749c6..2a6f78b 100644
--- a/sc/source/ui/namedlg/namemgrtable.cxx
+++ b/sc/source/ui/namedlg/namemgrtable.cxx
@@ -60,8 +60,7 @@ ScRangeManagerTable::ScRangeManagerTable( SvSimpleTableContainer& rParent, boost
     ShowTable();
     SetSelectionMode(MULTIPLE_SELECTION);
     SetScrolledHdl( LINK( this, ScRangeManagerTable, ScrollHdl ) );
-    void* pNull = NULL;
-    HeaderEndDragHdl(pNull);
+    HeaderEndDragHdl(NULL);
 }
 
 void ScRangeManagerTable::Resize()
@@ -99,8 +98,7 @@ void ScRangeManagerTable::setColWidths()
     rHeaderBar.SetItemSize( ITEMID_SCOPE, nTabSize);
     static long aStaticTabs[] = {3, 0, nTabSize, 2*nTabSize };
     SetTabs( &aStaticTabs[0], MAP_PIXEL );
-    void* pNull = NULL;
-    HeaderEndDragHdl(pNull);
+    HeaderEndDragHdl(NULL);
 }
 
 ScRangeManagerTable::~ScRangeManagerTable()
@@ -278,7 +276,7 @@ void CalculateItemSize(const long& rTableSize, long& rItemNameSize, long& rItemR
 
 }
 
-IMPL_LINK_NOARG(ScRangeManagerTable, HeaderEndDragHdl)
+IMPL_LINK_NOARG_TYPED(ScRangeManagerTable, HeaderEndDragHdl, HeaderBar*, void)
 {
     HeaderBar& rHeaderBar = GetTheHeaderBar();
 
@@ -299,8 +297,6 @@ IMPL_LINK_NOARG(ScRangeManagerTable, HeaderEndDragHdl)
     SetTab(1, PixelToLogic( aSz, MapMode(MAP_APPFONT) ).Width(), MAP_APPFONT );
     aSz.Width() += nItemRangeSize;
     SetTab(2, PixelToLogic( aSz, MapMode(MAP_APPFONT) ).Width(), MAP_APPFONT );
-
-    return 0;
 }
 
 IMPL_LINK_NOARG(ScRangeManagerTable, ScrollHdl)
diff --git a/svtools/source/brwbox/brwbox2.cxx b/svtools/source/brwbox/brwbox2.cxx
index ed237b4..d891e8d 100644
--- a/svtools/source/brwbox/brwbox2.cxx
+++ b/svtools/source/brwbox/brwbox2.cxx
@@ -1367,10 +1367,9 @@ IMPL_LINK_NOARG(BrowseBox, EndScrollHdl)
 
 
 
-IMPL_LINK( BrowseBox, StartDragHdl, HeaderBar*, pBar )
+IMPL_LINK_TYPED( BrowseBox, StartDragHdl, HeaderBar*, pBar, void )
 {
     pBar->SetDragSize( pDataWin->GetOutputSizePixel().Height() );
-    return 0;
 }
 
 
diff --git a/svtools/source/contnr/fileview.cxx b/svtools/source/contnr/fileview.cxx
index 6f7b8c4..874b983 100644
--- a/svtools/source/contnr/fileview.cxx
+++ b/svtools/source/contnr/fileview.cxx
@@ -1301,7 +1301,7 @@ void SvtFileView::EndInplaceEditing( bool _bCancel )
     return mpImp->EndEditing( _bCancel );
 }
 
-IMPL_LINK( SvtFileView, HeaderSelect_Impl, HeaderBar*, pBar )
+IMPL_LINK_TYPED( SvtFileView, HeaderSelect_Impl, HeaderBar*, pBar, void )
 {
     DBG_ASSERT( pBar, "no headerbar" );
     sal_uInt16 nItemID = pBar->GetCurItemId();
@@ -1340,11 +1340,10 @@ IMPL_LINK( SvtFileView, HeaderSelect_Impl, HeaderBar*, pBar )
 
     pBar->SetItemBits( nItemID, nBits );
     mpImp->Resort_Impl( nItemID, !bUp );
-    return 1;
 }
 
 
-IMPL_LINK( SvtFileView, HeaderEndDrag_Impl, HeaderBar*, pBar )
+IMPL_LINK_TYPED( SvtFileView, HeaderEndDrag_Impl, HeaderBar*, pBar, void )
 {
     if ( !pBar->IsItemMode() )
     {
@@ -1360,8 +1359,6 @@ IMPL_LINK( SvtFileView, HeaderEndDrag_Impl, HeaderBar*, pBar )
             mpImp->mpView->SetTab( i, aSize.Width(), MAP_PIXEL );
         }
     }
-
-    return 0;
 }
 
 
diff --git a/svtools/source/contnr/simptabl.cxx b/svtools/source/contnr/simptabl.cxx
index dccfb01..b2515d1 100644
--- a/svtools/source/contnr/simptabl.cxx
+++ b/svtools/source/contnr/simptabl.cxx
@@ -394,49 +394,44 @@ void SvSimpleTable::Command( const CommandEvent& rCEvt )
     SvHeaderTabListBox::Command(rCEvt);
 }
 
-IMPL_LINK( SvSimpleTable, StartDragHdl, HeaderBar*, pCtr)
+IMPL_LINK_TYPED( SvSimpleTable, StartDragHdl, HeaderBar*, pCtr, void)
 {
     if(pCtr==aHeaderBar.get())
     {
         HBarStartDrag();
     }
-    return 0;
 }
 
-IMPL_LINK( SvSimpleTable, DragHdl, HeaderBar*, pCtr)
+IMPL_LINK_TYPED( SvSimpleTable, DragHdl, HeaderBar*, pCtr, void)
 {
     if(pCtr==aHeaderBar.get())
     {
         HBarDrag();
     }
-    return 0;
 }
 
-IMPL_LINK( SvSimpleTable, EndDragHdl, HeaderBar*, pCtr)
+IMPL_LINK_TYPED( SvSimpleTable, EndDragHdl, HeaderBar*, pCtr, void)
 {
     if(pCtr==aHeaderBar.get())
     {
         HBarEndDrag();
     }
-    return 0;
 }
 
-IMPL_LINK( SvSimpleTable, HeaderBarClick, HeaderBar*, pCtr)
+IMPL_LINK_TYPED( SvSimpleTable, HeaderBarClick, HeaderBar*, pCtr, void)
 {
     if(pCtr==aHeaderBar.get())
     {
         HBarClick();
     }
-    return 0;
 }
 
-IMPL_LINK( SvSimpleTable, HeaderBarDblClick, HeaderBar*, pCtr)
+IMPL_LINK_TYPED( SvSimpleTable, HeaderBarDblClick, HeaderBar*, pCtr, void)
 {
     if(pCtr==aHeaderBar.get())
     {
         HBarDblClick();
     }
-    return 0;
 }
 
 SvLBoxItem* SvSimpleTable::GetEntryAtPos( SvTreeListEntry* pEntry, sal_uInt16 nPos ) const
diff --git a/svtools/source/contnr/svtabbx.cxx b/svtools/source/contnr/svtabbx.cxx
index d15253e..08a29dd 100644
--- a/svtools/source/contnr/svtabbx.cxx
+++ b/svtools/source/contnr/svtabbx.cxx
@@ -615,7 +615,7 @@ IMPL_LINK_NOARG(SvHeaderTabListBox, ScrollHdl_Impl)
     return 0;
 }
 
-IMPL_LINK_NOARG(SvHeaderTabListBox, CreateAccessibleHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvHeaderTabListBox, CreateAccessibleHdl_Impl, HeaderBar*, void)
 {
     vcl::Window* pParent = m_pImpl->m_pHeaderBar->GetAccessibleParentWindow();
     DBG_ASSERT( pParent, "SvHeaderTabListBox..CreateAccessibleHdl_Impl - accessible parent not found" );
@@ -629,7 +629,6 @@ IMPL_LINK_NOARG(SvHeaderTabListBox, CreateAccessibleHdl_Impl)
             m_pImpl->m_pHeaderBar->SetAccessible( xAccessible );
         }
     }
-    return 0;
 }
 
 void SvHeaderTabListBox::RecalculateAccessibleChildren()
diff --git a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx
index 887fd20..2bd53c1 100644
--- a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx
+++ b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx
@@ -821,7 +821,7 @@ short ChineseDictionaryDialog::Execute()
     return nRet;
 }
 
-IMPL_LINK(ChineseDictionaryDialog, HeaderBarClick, HeaderBar*, pHeaderBar)
+IMPL_LINK_TYPED(ChineseDictionaryDialog, HeaderBarClick, HeaderBar*, pHeaderBar, void)
 {
     sal_uInt16 nId = pHeaderBar->GetCurItemId();
     HeaderBarItemBits nBits = pHeaderBar->GetItemBits(nId);
@@ -840,8 +840,6 @@ IMPL_LINK(ChineseDictionaryDialog, HeaderBarClick, HeaderBar*, pHeaderBar)
         getActiveDictionary().sortByColumn(nId-1,bSortAtoZ);
         getReverseDictionary().sortByColumn(nId-1,bSortAtoZ);
     }
-
-    return 0;
 }
 
 
diff --git a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx
index 156c6c9..04bdfb7 100644
--- a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx
+++ b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx
@@ -129,7 +129,7 @@ private:
     DECL_LINK_TYPED( AddHdl, Button*, void );
     DECL_LINK_TYPED( ModifyHdl, Button*, void );
     DECL_LINK_TYPED( DeleteHdl, Button*, void );
-    DECL_LINK( HeaderBarClick, HeaderBar* );
+    DECL_LINK_TYPED( HeaderBarClick, HeaderBar*, void );
 
     void initDictionaryControl(DictionaryList *pList,
         const css::uno::Reference< css::linguistic2::XConversionDictionary>& xDictionary);
diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx
index e27d2d9..af3b25e 100644
--- a/sw/source/ui/index/cnttab.cxx
+++ b/sw/source/ui/index/cnttab.cxx
@@ -636,7 +636,7 @@ class SwAddStylesDlg_Impl : public SfxModalDialog
 
     DECL_LINK_TYPED(OkHdl, Button*, void);
     DECL_LINK_TYPED(LeftRightHdl, Button*, void);
-    DECL_LINK(HeaderDragHdl, void *);
+    DECL_LINK_TYPED(HeaderDragHdl, HeaderBar*, void);
 
 public:
     SwAddStylesDlg_Impl(vcl::Window* pParent, SwWrtShell& rWrtSh, OUString rStringArr[]);
@@ -750,10 +750,9 @@ IMPL_LINK_NOARG_TYPED(SwAddStylesDlg_Impl, OkHdl, Button*, void)
     EndDialog(RET_OK);
 }
 
-IMPL_LINK_NOARG(SwAddStylesDlg_Impl, HeaderDragHdl)
+IMPL_LINK_NOARG_TYPED(SwAddStylesDlg_Impl, HeaderDragHdl, HeaderBar*, void)
 {
     m_pHeaderTree->Invalidate();
-    return 0;
 }
 
 IMPL_LINK_TYPED(SwAddStylesDlg_Impl, LeftRightHdl, Button*, pBtn, void)
commit 7b096a6da180bb11ffbff15c9a5358c63596cc34
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Aug 28 13:22:12 2015 +0200

    make Link<> typed
    
    Change-Id: I8949a92792df892b7f360e6b9979c8f61c702ce3

diff --git a/forms/source/component/clickableimage.cxx b/forms/source/component/clickableimage.cxx
index 7490d39..e0f8050 100644
--- a/forms/source/component/clickableimage.cxx
+++ b/forms/source/component/clickableimage.cxx
@@ -827,11 +827,10 @@ namespace frm
     }
 
 
-    IMPL_LINK_NOARG( OClickableImageBaseModel, DownloadDoneLink )
+    IMPL_LINK_NOARG_TYPED( OClickableImageBaseModel, DownloadDoneLink, void*, void )
     {
         ::osl::MutexGuard aGuard( m_aMutex );
         DownloadDone();
-        return 0;
     }
 
 
diff --git a/forms/source/component/clickableimage.hxx b/forms/source/component/clickableimage.hxx
index 7a26a97..30df1ce 100644
--- a/forms/source/component/clickableimage.hxx
+++ b/forms/source/component/clickableimage.hxx
@@ -77,7 +77,7 @@ namespace frm
         ::com::sun::star::uno::Reference< ::com::sun::star::form::submission::XSubmission >
                                                 m_xSubmissionDelegate;
 
-        DECL_LINK( DownloadDoneLink, void* );
+        DECL_LINK_TYPED( DownloadDoneLink, void*, void );
 
         inline ImageProducer* GetImageProducer() { return m_pProducer; }
 
diff --git a/include/sfx2/docfile.hxx b/include/sfx2/docfile.hxx
index d5404e2..c3c9e94 100644
--- a/include/sfx2/docfile.hxx
+++ b/include/sfx2/docfile.hxx
@@ -134,8 +134,8 @@ public:
     const OUString& GetPhysicalName() const;
     SAL_WARN_UNUSED_RESULT bool IsRemote() const;
     SAL_WARN_UNUSED_RESULT bool IsOpen() const; // { return aStorage.Is() || pInStream; }
-    void                Download( const Link<>& aLink = Link<>());
-    void                SetDoneLink( const Link<>& rLink );
+    void                Download( const Link<void*,void>& aLink = Link<void*,void>());
+    void                SetDoneLink( const Link<void*,void>& rLink );
 
     sal_uInt32          GetErrorCode() const;
     sal_uInt32          GetError() const
diff --git a/include/svtools/asynclink.hxx b/include/svtools/asynclink.hxx
index 747b0c3..f0fc74ce 100644
--- a/include/svtools/asynclink.hxx
+++ b/include/svtools/asynclink.hxx
@@ -32,20 +32,20 @@ namespace svtools {
 
 class SVT_DLLPUBLIC AsynchronLink
 {
-    Link<> _aLink;
-    ImplSVEvent * _nEventId;
-    Idle*  _pIdle;
-    bool   _bInCall;
-    bool*  _pDeleted;
-    void*  _pArg;
-    ::osl::Mutex* _pMutex;
+    Link<void*,void> _aLink;
+    ImplSVEvent*     _nEventId;
+    Idle*            _pIdle;
+    bool             _bInCall;
+    bool*            _pDeleted;
+    void*            _pArg;
+    ::osl::Mutex*    _pMutex;
 
     DECL_DLLPRIVATE_LINK_TYPED( HandleCall_Idle, Idle*, void );
     DECL_DLLPRIVATE_LINK_TYPED( HandleCall_PostUserEvent, void*, void );
     SVT_DLLPRIVATE void Call_Impl( void* pArg );
 
 public:
-    AsynchronLink( const Link<>& rLink )
+    AsynchronLink( const Link<void*,void>& rLink )
         : _aLink( rLink )
         , _nEventId( 0 )
         , _pIdle( 0 )
@@ -65,7 +65,7 @@ public:
     ~AsynchronLink();
 
     void CreateMutex();
-    void operator=( const Link<>& rLink ) { _aLink = rLink; }
+    void operator=( const Link<void*,void>& rLink ) { _aLink = rLink; }
     void Call( void* pObj, bool bAllowDoubles = false, bool bUseTimer = false );
     void ClearPendingCall( );
 };
diff --git a/sfx2/source/appl/fileobj.cxx b/sfx2/source/appl/fileobj.cxx
index a700051..b8c28b8 100644
--- a/sfx2/source/appl/fileobj.cxx
+++ b/sfx2/source/appl/fileobj.cxx
@@ -68,7 +68,7 @@ SvFileObject::~SvFileObject()
 {
     if (xMed.Is())
     {
-        xMed->SetDoneLink( Link<>() );
+        xMed->SetDoneLink( Link<void*,void>() );
         xMed.Clear();
     }
     if (nPostUserEventId)
@@ -463,7 +463,7 @@ void SvFileObject::Edit( vcl::Window* pParent, sfx2::SvBaseLink* pLink, const Li
     }
 }
 
-IMPL_LINK_NOARG( SvFileObject, LoadGrfReady_Impl )
+IMPL_LINK_NOARG_TYPED( SvFileObject, LoadGrfReady_Impl, void*, void )
 {
     // When we come form here there it can not be an error no more.
     bLoadError = false;
@@ -485,7 +485,7 @@ IMPL_LINK_NOARG( SvFileObject, LoadGrfReady_Impl )
         bLoadAgain = true;
         if( xMed.Is() )
         {
-            xMed->SetDoneLink( Link<>() );
+            xMed->SetDoneLink( Link<void*,void>() );
             pDelMed = new SfxMediumRef(xMed);
             nPostUserEventId = Application::PostUserEvent(
                         LINK( this, SvFileObject, DelMedium_Impl ),
@@ -493,8 +493,6 @@ IMPL_LINK_NOARG( SvFileObject, LoadGrfReady_Impl )
             xMed.Clear();
         }
     }
-
-    return 0;
 }
 
 IMPL_LINK_TYPED( SvFileObject, DelMedium_Impl, void*, p, void )
diff --git a/sfx2/source/appl/fileobj.hxx b/sfx2/source/appl/fileobj.hxx
index 6bdc7a1..c90da04 100644
--- a/sfx2/source/appl/fileobj.hxx
+++ b/sfx2/source/appl/fileobj.hxx
@@ -55,7 +55,7 @@ class SvFileObject : public sfx2::SvLinkSource
     void SendStateChg_Impl( sfx2::LinkManager::LinkState nState );
 
     DECL_LINK_TYPED( DelMedium_Impl, void*, void );
-    DECL_LINK( LoadGrfReady_Impl, void* );
+    DECL_LINK_TYPED( LoadGrfReady_Impl, void*, void );
     DECL_LINK_TYPED( DialogClosedHdl, sfx2::FileDialogHelper*, void );
 
 protected:
diff --git a/sfx2/source/control/shell.cxx b/sfx2/source/control/shell.cxx
index 5bfac57..434bf24 100644
--- a/sfx2/source/control/shell.cxx
+++ b/sfx2/source/control/shell.cxx
@@ -406,10 +406,9 @@ bool SfxShell::CanExecuteSlot_Impl( const SfxSlot &rSlot )
     return aSet.GetItemState(nId) != SfxItemState::DISABLED;
 }
 
-sal_IntPtr ShellCall_Impl( void* pObj, void* pArg )
+void ShellCall_Impl( void* pObj, void* pArg )
 {
     static_cast<SfxShell*>(pObj)->ExecuteSlot( *static_cast<SfxRequest*>(pArg), nullptr );
-    return 0;
 }
 
 const SfxPoolItem* SfxShell::ExecuteSlot( SfxRequest& rReq, bool bAsync )
@@ -420,7 +419,7 @@ const SfxPoolItem* SfxShell::ExecuteSlot( SfxRequest& rReq, bool bAsync )
     {
         if( !pImp->pExecuter )
             pImp->pExecuter = new svtools::AsynchronLink(
-                Link<>( this, ShellCall_Impl ) );
+                Link<void*,void>( this, ShellCall_Impl ) );
         pImp->pExecuter->Call( new SfxRequest( rReq ) );
         return 0;
     }
@@ -670,11 +669,10 @@ bool SfxShell::HasUIFeature( sal_uInt32 )
     return false;
 }
 
-sal_IntPtr DispatcherUpdate_Impl( void*, void* pArg )
+void DispatcherUpdate_Impl( void*, void* pArg )
 {
     static_cast<SfxDispatcher*>(pArg)->Update_Impl( true );
     static_cast<SfxDispatcher*>(pArg)->GetBindings()->InvalidateAll(false);
-    return 0;
 }
 
 void SfxShell::UIFeatureChanged()
@@ -686,7 +684,7 @@ void SfxShell::UIFeatureChanged()
         // something my get stuck in the bunkered tools. Asynchronous call to
         // prevent recursion.
         if ( !pImp->pUpdater )
-            pImp->pUpdater = new svtools::AsynchronLink( Link<>( this, DispatcherUpdate_Impl ) );
+            pImp->pUpdater = new svtools::AsynchronLink( Link<void*,void>( this, DispatcherUpdate_Impl ) );
 
         // Multiple views allowed
         pImp->pUpdater->Call( pFrame->GetDispatcher(), true );
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index c19f7d2..88a24ee 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -2378,12 +2378,12 @@ const OUString& SfxMedium::GetLongName() const
     return pImp->m_aLongName;
 }
 
-void SfxMedium::SetDoneLink( const Link<>& rLink )
+void SfxMedium::SetDoneLink( const Link<void*,void>& rLink )
 {
     pImp->aDoneLink = rLink;
 }
 
-void SfxMedium::Download( const Link<>& aLink )
+void SfxMedium::Download( const Link<void*,void>& aLink )
 {
     SetDoneLink( aLink );
     GetInStream();
diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx
index cd04a85..e953c27 100644
--- a/svtools/source/control/inettbc.cxx
+++ b/svtools/source/control/inettbc.cxx
@@ -106,7 +106,7 @@ class SvtMatchContext_Impl: public salhelper::Thread
     css::uno::Reference< css::ucb::XCommandProcessor > processor_;
     sal_Int32 commandId_;
 
-    DECL_LINK(                      Select_Impl, void* );
+    DECL_LINK_TYPED(                Select_Impl, void*, void );
 
     virtual                         ~SvtMatchContext_Impl();
     virtual void                    execute() SAL_OVERRIDE;
@@ -207,14 +207,14 @@ void SvtMatchContext_Impl::execute( )
 // Cancellable does not discard the information gained so far, it
 // inserts all collected completions into the listbox.
 
-IMPL_LINK_NOARG( SvtMatchContext_Impl, Select_Impl )
+IMPL_LINK_NOARG_TYPED( SvtMatchContext_Impl, Select_Impl, void*, void )
 {
     // avoid recursion through cancel button
     {
         osl::MutexGuard g(mutex_);
         if (stopped_) {
             // Completion was stopped, no display:
-            return 0;
+            return;
         }
     }
 
@@ -273,8 +273,6 @@ IMPL_LINK_NOARG( SvtMatchContext_Impl, Select_Impl )
     // the box has this control as a member so we have to set that member
     // to zero before deleting ourself.
     pBox->pCtx.clear();
-
-    return 0;
 }
 
 
commit f144e591f5786f1cac177e4e6eb13795eeda2657
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Aug 28 10:16:50 2015 +0200

    aDisconnectLink is never called, so remove it
    
    Change-Id: I9eba6d3f5335060f697ad53e7e2360ef2142609f

diff --git a/include/svl/svdde.hxx b/include/svl/svdde.hxx
index d2dc0e2..f946da2 100644
--- a/include/svl/svdde.hxx
+++ b/include/svl/svdde.hxx
@@ -309,7 +309,6 @@ private:
     DdeString*            pName;
     OUString              aItem;
     std::vector<DdeItem*> aItems;
-    Link<>                aDisconnectLink;
 
 public:
                     DdeTopic( SAL_UNUSED_PARAMETER const OUString& );
diff --git a/svl/source/svdde/ddesvr.cxx b/svl/source/svdde/ddesvr.cxx
index 3264546..e41b1cf 100644
--- a/svl/source/svdde/ddesvr.cxx
+++ b/svl/source/svdde/ddesvr.cxx
@@ -684,7 +684,6 @@ void DdeTopic::Connect( sal_IntPtr nId )
 
 void DdeTopic::Disconnect( sal_IntPtr nId )
 {
-    aDisconnectLink.Call( (void*)nId );
 }
 
 void DdeTopic::_Disconnect( sal_IntPtr nId )
commit 74bf52f22434543aee5f7f112790625a5f5dbc14
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Aug 28 10:16:21 2015 +0200

    aConnectLink is never set, so remove it
    
    Change-Id: Idd4ecc2f9f566b2d1fa0127dae12fefe1e4479e8

diff --git a/include/svl/svdde.hxx b/include/svl/svdde.hxx
index 43f4618..d2dc0e2 100644
--- a/include/svl/svdde.hxx
+++ b/include/svl/svdde.hxx
@@ -309,7 +309,6 @@ private:
     DdeString*            pName;
     OUString              aItem;
     std::vector<DdeItem*> aItems;
-    Link<>                aConnectLink;
     Link<>                aDisconnectLink;
 
 public:
diff --git a/svl/source/svdde/ddesvr.cxx b/svl/source/svdde/ddesvr.cxx
index 11ea616..3264546 100644
--- a/svl/source/svdde/ddesvr.cxx
+++ b/svl/source/svdde/ddesvr.cxx
@@ -680,7 +680,6 @@ void DdeTopic::NotifyClient( const OUString& rItem )
 
 void DdeTopic::Connect( sal_IntPtr nId )
 {
-    aConnectLink.Call( (void*)nId );
 }
 
 void DdeTopic::Disconnect( sal_IntPtr nId )


More information about the Libreoffice-commits mailing list