[Libreoffice-commits] core.git: 16 commits - basctl/source chart2/source cui/source dbaccess/source desktop/source extensions/source filter/source formula/source fpicker/source include/svtools include/svx reportdesign/source sc/source sd/source sfx2/source starmath/inc starmath/source svtools/source svx/inc svx/source sw/source xmlsecurity/inc xmlsecurity/source

Noel Grandin noel at peralex.com
Mon Sep 7 23:17:32 PDT 2015


 basctl/source/basicide/baside2.hxx                                    |    2 
 basctl/source/basicide/baside2b.cxx                                   |    4 
 basctl/source/basicide/macrodlg.cxx                                   |    8 -
 basctl/source/basicide/macrodlg.hxx                                   |    4 
 basctl/source/basicide/moduldl2.cxx                                   |   12 -
 basctl/source/basicide/moduldlg.cxx                                   |    5 
 basctl/source/basicide/moduldlg.hxx                                   |    6 
 chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx          |    7 
 chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx          |    4 
 chart2/source/controller/dialogs/tp_ChartType.cxx                     |    3 
 chart2/source/controller/dialogs/tp_ChartType.hxx                     |    2 
 chart2/source/controller/dialogs/tp_DataSource.cxx                    |    8 -
 chart2/source/controller/dialogs/tp_DataSource.hxx                    |    4 
 cui/source/customize/acccfg.cxx                                       |   10 -
 cui/source/customize/cfg.cxx                                          |   14 -
 cui/source/customize/macropg.cxx                                      |    9 -
 cui/source/customize/selector.cxx                                     |    3 
 cui/source/dialogs/cuicharmap.cxx                                     |   13 -
 cui/source/dialogs/cuifmsearch.cxx                                    |    4 
 cui/source/dialogs/hangulhanjadlg.cxx                                 |   10 -
 cui/source/dialogs/linkdlg.cxx                                        |    5 
 cui/source/dialogs/multipat.cxx                                       |   10 -
 cui/source/dialogs/scriptdlg.cxx                                      |   10 -
 cui/source/dialogs/thesdlg.cxx                                        |    3 
 cui/source/inc/acccfg.hxx                                             |    2 
 cui/source/inc/autocdlg.hxx                                           |    6 
 cui/source/inc/backgrnd.hxx                                           |    2 
 cui/source/inc/border.hxx                                             |    4 
 cui/source/inc/cfg.hxx                                                |    6 
 cui/source/inc/cuicharmap.hxx                                         |    8 -
 cui/source/inc/cuifmsearch.hxx                                        |    2 
 cui/source/inc/cuitabarea.hxx                                         |    2 
 cui/source/inc/dbregister.hxx                                         |    2 
 cui/source/inc/hangulhanjadlg.hxx                                     |    3 
 cui/source/inc/labdlg.hxx                                             |    2 
 cui/source/inc/linkdlg.hxx                                            |    2 
 cui/source/inc/macroass.hxx                                           |    8 -
 cui/source/inc/macropg.hxx                                            |    4 
 cui/source/inc/multipat.hxx                                           |    4 
 cui/source/inc/numfmt.hxx                                             |    1 
 cui/source/inc/numpages.hxx                                           |   21 +-
 cui/source/inc/optdict.hxx                                            |    2 
 cui/source/inc/optlingu.hxx                                           |   12 -
 cui/source/inc/optpath.hxx                                            |    2 
 cui/source/inc/scriptdlg.hxx                                          |    2 
 cui/source/inc/selector.hxx                                           |    2 
 cui/source/inc/thesdlg.hxx                                            |    2 
 cui/source/inc/treeopt.hxx                                            |    4 
 cui/source/options/certpath.cxx                                       |    3 
 cui/source/options/certpath.hxx                                       |    2 
 cui/source/options/dbregister.cxx                                     |    3 
 cui/source/options/fontsubs.cxx                                       |    7 
 cui/source/options/fontsubs.hxx                                       |    1 
 cui/source/options/optaboutconfig.cxx                                 |    4 
 cui/source/options/optaboutconfig.hxx                                 |    2 
 cui/source/options/optchart.cxx                                       |    4 
 cui/source/options/optchart.hxx                                       |    2 
 cui/source/options/optdict.cxx                                        |    3 
 cui/source/options/optjava.cxx                                        |    6 
 cui/source/options/optjava.hxx                                        |    4 
 cui/source/options/optlingu.cxx                                       |   16 --
 cui/source/options/optpath.cxx                                        |    3 
 cui/source/options/treeopt.cxx                                        |    8 -
 cui/source/options/webconninfo.cxx                                    |    4 
 cui/source/options/webconninfo.hxx                                    |    2 
 cui/source/tabpages/autocdlg.cxx                                      |   12 -
 cui/source/tabpages/backgrnd.cxx                                      |    3 
 cui/source/tabpages/border.cxx                                        |    6 
 cui/source/tabpages/labdlg.cxx                                        |    3 
 cui/source/tabpages/macroass.cxx                                      |   11 -
 cui/source/tabpages/numfmt.cxx                                        |    6 
 cui/source/tabpages/numpages.cxx                                      |   32 +---
 cui/source/tabpages/tpcolor.cxx                                       |    3 
 dbaccess/source/ui/app/AppDetailView.cxx                              |    3 
 dbaccess/source/ui/app/AppDetailView.hxx                              |    2 
 dbaccess/source/ui/dlg/adtabdlg.cxx                                   |    3 
 dbaccess/source/ui/dlg/sqlmessage.cxx                                 |    6 
 dbaccess/source/ui/dlg/tablespage.cxx                                 |    6 
 dbaccess/source/ui/dlg/tablespage.hxx                                 |    1 
 dbaccess/source/ui/inc/WCopyTable.hxx                                 |    2 
 dbaccess/source/ui/inc/WNameMatch.hxx                                 |    4 
 dbaccess/source/ui/inc/adtabdlg.hxx                                   |    2 
 dbaccess/source/ui/misc/WCopyTable.cxx                                |    3 
 dbaccess/source/ui/misc/WNameMatch.cxx                                |    8 -
 desktop/source/deployment/gui/dp_gui_updatedialog.cxx                 |    3 
 desktop/source/deployment/gui/dp_gui_updatedialog.hxx                 |    2 
 extensions/source/propctrlr/selectlabeldialog.cxx                     |    8 -
 extensions/source/propctrlr/selectlabeldialog.hxx                     |    2 
 extensions/source/scanner/sanedlg.cxx                                 |    3 
 extensions/source/scanner/sanedlg.hxx                                 |    2 
 filter/source/xsltdialog/xmlfiltersettingsdialog.cxx                  |    6 
 filter/source/xsltdialog/xmlfiltersettingsdialog.hxx                  |    4 
 formula/source/ui/dlg/structpg.cxx                                    |    3 
 formula/source/ui/dlg/structpg.hxx                                    |    2 
 fpicker/source/office/PlacesListBox.cxx                               |    3 
 fpicker/source/office/PlacesListBox.hxx                               |    2 
 fpicker/source/office/RemoteFilesDialog.cxx                           |    6 
 fpicker/source/office/RemoteFilesDialog.hxx                           |    2 
 include/svtools/svtabbx.hxx                                           |    2 
 include/svtools/toolbarmenu.hxx                                       |    2 
 include/svtools/treelistbox.hxx                                       |   76 +++++-----
 include/svtools/valueset.hxx                                          |   12 -
 include/svtools/wizdlg.hxx                                            |   19 +-
 include/svx/charmap.hxx                                               |   18 +-
 include/svx/colrctrl.hxx                                              |    2 
 include/svx/ctredlin.hxx                                              |   39 ++---
 include/svx/dialcontrol.hxx                                           |    6 
 include/svx/dlgctl3d.hxx                                              |   20 +-
 include/svx/float3d.hxx                                               |    2 
 include/svx/fmgridif.hxx                                              |    4 
 include/svx/fmsrcimp.hxx                                              |   20 +-
 include/svx/fontworkgallery.hxx                                       |    2 
 include/svx/galctrl.hxx                                               |    4 
 include/svx/graphctl.hxx                                              |   13 -
 include/svx/gridctrl.hxx                                              |   10 -
 include/svx/imapdlg.hxx                                               |    9 -
 include/svx/linectrl.hxx                                              |    2 
 include/svx/passwd.hxx                                                |   18 +-
 include/svx/rubydialog.hxx                                            |   12 -
 include/svx/sdrundomanager.hxx                                        |    4 
 include/svx/svdedxv.hxx                                               |    2 
 reportdesign/source/ui/dlg/AddField.cxx                               |    4 
 reportdesign/source/ui/dlg/Condition.cxx                              |    7 
 reportdesign/source/ui/dlg/Navigator.cxx                              |    6 
 reportdesign/source/ui/inc/AddField.hxx                               |    2 
 sc/source/ui/cctrl/checklistmenu.cxx                                  |    5 
 sc/source/ui/dbgui/dpgroupdlg.cxx                                     |    3 
 sc/source/ui/dbgui/tpsubt.cxx                                         |   11 -
 sc/source/ui/dialogs/searchresults.cxx                                |   10 -
 sc/source/ui/inc/acredlin.hxx                                         |   18 +-
 sc/source/ui/inc/checklistmenu.hxx                                    |    2 
 sc/source/ui/inc/conflictsdlg.hxx                                     |    4 
 sc/source/ui/inc/dpgroupdlg.hxx                                       |    2 
 sc/source/ui/inc/highred.hxx                                          |    6 
 sc/source/ui/inc/namedlg.hxx                                          |    2 
 sc/source/ui/inc/namemgrtable.hxx                                     |    2 
 sc/source/ui/inc/searchresults.hxx                                    |    3 
 sc/source/ui/inc/solveroptions.hxx                                    |    2 
 sc/source/ui/inc/tabbgcolordlg.hxx                                    |    2 
 sc/source/ui/inc/tpsubt.hxx                                           |   33 ++--
 sc/source/ui/inc/xmlsourcedlg.hxx                                     |    2 
 sc/source/ui/miscdlgs/acredlin.cxx                                    |   30 +--
 sc/source/ui/miscdlgs/conflictsdlg.cxx                                |   12 -
 sc/source/ui/miscdlgs/highred.cxx                                     |    3 
 sc/source/ui/miscdlgs/solveroptions.cxx                               |    4 
 sc/source/ui/miscdlgs/tabbgcolordlg.cxx                               |    7 
 sc/source/ui/namedlg/namedlg.cxx                                      |    3 
 sc/source/ui/namedlg/namemgrtable.cxx                                 |    3 
 sc/source/ui/optdlg/calcoptionsdlg.cxx                                |    3 
 sc/source/ui/optdlg/calcoptionsdlg.hxx                                |    2 
 sc/source/ui/sidebar/CellLineStyleControl.cxx                         |    4 
 sc/source/ui/sidebar/CellLineStyleControl.hxx                         |    2 
 sc/source/ui/xmlsource/xmlsourcedlg.cxx                               |    6 
 sd/source/filter/html/pubdlg.cxx                                      |    3 
 sd/source/ui/controller/slidelayoutcontroller.cxx                     |    9 -
 sd/source/ui/dlg/custsdlg.cxx                                         |    6 
 sd/source/ui/dlg/dlgass.cxx                                           |    6 
 sd/source/ui/dlg/dlgassim.cxx                                         |    6 
 sd/source/ui/dlg/dlgassim.hxx                                         |    2 
 sd/source/ui/dlg/inspagob.cxx                                         |    4 
 sd/source/ui/dlg/sdpreslt.cxx                                         |    3 
 sd/source/ui/dlg/tpaction.cxx                                         |    3 
 sd/source/ui/inc/custsdlg.hxx                                         |    1 
 sd/source/ui/inc/inspagob.hxx                                         |    2 
 sd/source/ui/inc/pubdlg.hxx                                           |    2 
 sd/source/ui/inc/sdpreslt.hxx                                         |    2 
 sd/source/ui/inc/tpaction.hxx                                         |    2 
 sd/source/ui/sidebar/LayoutMenu.cxx                                   |    5 
 sd/source/ui/sidebar/LayoutMenu.hxx                                   |    2 
 sd/source/ui/sidebar/MasterPagesSelector.cxx                          |    4 
 sd/source/ui/sidebar/MasterPagesSelector.hxx                          |    2 
 sd/source/ui/table/TableDesignPane.cxx                                |    3 
 sd/source/ui/table/TableDesignPane.hxx                                |    2 
 sfx2/source/dialog/templdlg.cxx                                       |    4 
 sfx2/source/dialog/versdlg.cxx                                        |    4 
 sfx2/source/inc/templdgi.hxx                                          |    2 
 sfx2/source/inc/versdlg.hxx                                           |    2 
 starmath/inc/dialog.hxx                                               |    2 
 starmath/source/dialog.cxx                                            |    4 
 svtools/source/contnr/fileview.cxx                                    |    9 -
 svtools/source/contnr/svtabbx.cxx                                     |    3 
 svtools/source/control/toolbarmenu.cxx                                |    4 
 svtools/source/control/valueset.cxx                                   |    2 
 svtools/source/dialogs/wizdlg.cxx                                     |    5 
 svtools/source/uno/treecontrolpeer.cxx                                |   18 +-
 svx/inc/galbrws2.hxx                                                  |    3 
 svx/source/dialog/_contdlg.cxx                                        |   14 -
 svx/source/dialog/contimp.hxx                                         |   10 -
 svx/source/dialog/ctredlin.cxx                                        |   23 ---
 svx/source/dialog/dialcontrol.cxx                                     |    2 
 svx/source/dialog/dlgctl3d.cxx                                        |    8 -
 svx/source/dialog/graphctl.cxx                                        |    2 
 svx/source/dialog/imapdlg.cxx                                         |   14 -
 svx/source/dialog/rubydialog.cxx                                      |   27 +--
 svx/source/engine3d/float3d.cxx                                       |    7 
 svx/source/fmcomp/fmgridif.cxx                                        |   13 -
 svx/source/fmcomp/gridctrl.cxx                                        |   24 +--
 svx/source/form/datanavi.cxx                                          |    7 
 svx/source/form/fmsrcimp.cxx                                          |   21 +-
 svx/source/form/navigatortree.cxx                                     |    6 
 svx/source/gallery2/galbrws2.cxx                                      |   23 +--
 svx/source/inc/datanavi.hxx                                           |    8 -
 svx/source/inc/fmexpl.hxx                                             |    2 
 svx/source/sidebar/line/LineWidthControl.cxx                          |    9 -
 svx/source/sidebar/line/LineWidthControl.hxx                          |    2 
 svx/source/sidebar/possize/PosSizePropertyPanel.cxx                   |    4 
 svx/source/sidebar/possize/PosSizePropertyPanel.hxx                   |    6 
 svx/source/sidebar/text/TextCharacterSpacingControl.cxx               |    9 -
 svx/source/sidebar/text/TextCharacterSpacingControl.hxx               |    2 
 svx/source/sidebar/text/TextUnderlineControl.cxx                      |    6 
 svx/source/sidebar/text/TextUnderlineControl.hxx                      |    2 
 svx/source/svdraw/sdrundomanager.cxx                                  |    2 
 svx/source/svdraw/svdedxv.cxx                                         |    5 
 svx/source/tbxctrls/bulletsnumbering.cxx                              |   10 -
 svx/source/tbxctrls/colorwindow.hxx                                   |    2 
 svx/source/tbxctrls/colrctrl.cxx                                      |    4 
 svx/source/tbxctrls/extrusioncontrols.cxx                             |   12 +
 svx/source/tbxctrls/extrusioncontrols.hxx                             |    2 
 svx/source/tbxctrls/fontworkgallery.cxx                               |    3 
 svx/source/tbxctrls/linectrl.cxx                                      |    4 
 svx/source/tbxctrls/tbcontrl.cxx                                      |   14 -
 svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx |    3 
 svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx |    2 
 sw/source/ui/chrdlg/swuiccoll.cxx                                     |   10 -
 sw/source/ui/config/optload.cxx                                       |    8 -
 sw/source/ui/dbui/addresslistdialog.cxx                               |    3 
 sw/source/ui/dbui/addresslistdialog.hxx                               |    2 
 sw/source/ui/dbui/mmaddressblockpage.cxx                              |    3 
 sw/source/ui/dbui/mmaddressblockpage.hxx                              |    2 
 sw/source/ui/dialog/uiregionsw.cxx                                    |    8 -
 sw/source/ui/envelp/label1.cxx                                        |    2 
 sw/source/ui/envelp/labelexp.cxx                                      |    4 
 sw/source/ui/envelp/swuilabimp.hxx                                    |    1 
 sw/source/ui/fldui/changedb.cxx                                       |    7 
 sw/source/ui/fldui/flddb.cxx                                          |    3 
 sw/source/ui/fldui/flddb.hxx                                          |    2 
 sw/source/ui/fldui/flddinf.cxx                                        |    6 
 sw/source/ui/fldui/flddinf.hxx                                        |    2 
 sw/source/ui/fldui/fldref.cxx                                         |   10 -
 sw/source/ui/fldui/fldref.hxx                                         |    1 
 sw/source/ui/frmdlg/column.cxx                                        |    3 
 sw/source/ui/index/cnttab.cxx                                         |    9 -
 sw/source/ui/misc/glosbib.cxx                                         |    3 
 sw/source/ui/misc/glossary.cxx                                        |    5 
 sw/source/ui/misc/swmodalredlineacceptdlg.cxx                         |    2 
 sw/source/uibase/inc/changedb.hxx                                     |    2 
 sw/source/uibase/inc/column.hxx                                       |    2 
 sw/source/uibase/inc/glosbib.hxx                                      |    2 
 sw/source/uibase/inc/glossary.hxx                                     |    2 
 sw/source/uibase/inc/optload.hxx                                      |    4 
 sw/source/uibase/inc/redlndlg.hxx                                     |   20 +-
 sw/source/uibase/inc/regionsw.hxx                                     |    4 
 sw/source/uibase/inc/swuiccoll.hxx                                    |    3 
 sw/source/uibase/inc/swuicnttab.hxx                                   |    2 
 sw/source/uibase/misc/redlndlg.cxx                                    |   27 +--
 sw/source/uibase/sidebar/PageColumnControl.cxx                        |    3 
 sw/source/uibase/sidebar/PageColumnControl.hxx                        |    3 
 sw/source/uibase/sidebar/PageMarginControl.cxx                        |    4 
 sw/source/uibase/sidebar/PageMarginControl.hxx                        |    3 
 sw/source/uibase/sidebar/PageOrientationControl.cxx                   |    6 
 sw/source/uibase/sidebar/PageOrientationControl.hxx                   |    4 
 sw/source/uibase/sidebar/PageSizeControl.cxx                          |    3 
 sw/source/uibase/sidebar/PageSizeControl.hxx                          |    3 
 sw/source/uibase/sidebar/StylePresetsPanel.cxx                        |    4 
 sw/source/uibase/sidebar/StylePresetsPanel.hxx                        |    2 
 sw/source/uibase/sidebar/ThemePanel.cxx                               |    7 
 sw/source/uibase/sidebar/ThemePanel.hxx                               |    1 
 xmlsecurity/inc/xmlsecurity/certificatechooser.hxx                    |   13 -
 xmlsecurity/inc/xmlsecurity/certificateviewer.hxx                     |    6 
 xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx               |    4 
 xmlsecurity/inc/xmlsecurity/macrosecurity.hxx                         |    2 
 xmlsecurity/source/dialogs/certificatechooser.cxx                     |    3 
 xmlsecurity/source/dialogs/certificateviewer.cxx                      |    7 
 xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx                |    4 
 xmlsecurity/source/dialogs/macrosecurity.cxx                          |    3 
 275 files changed, 748 insertions(+), 952 deletions(-)

New commits:
commit 0c714e260ef7153229bca8794a01c8fffd7c7361
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Sep 8 08:16:06 2015 +0200

    convert Link<> to typed
    
    Change-Id: I2977a0fcd18bd719b30cb4100501058884069572

diff --git a/include/svx/sdrundomanager.hxx b/include/svx/sdrundomanager.hxx
index 96dc794..f93ba2f 100644
--- a/include/svx/sdrundomanager.hxx
+++ b/include/svx/sdrundomanager.hxx
@@ -30,7 +30,7 @@ private:
     using EditUndoManager::Undo;
     using EditUndoManager::Redo;
 
-    Link<>          maEndTextEditHdl;
+    Link<SdrUndoManager*,void>  maEndTextEditHdl;
     SfxUndoAction*  mpLastUndoActionBeforeTextEdit;
     bool            mbEndTextEditTriggeredFromUndo;
 
@@ -53,7 +53,7 @@ public:
     // activate (start text edit) and empty link to reset (end text edit). On
     // reset all text edit actions will be removed from this undo manager to
     // restore the state before activation
-    void SetEndTextEditHdl(const Link<>& rLink);
+    void SetEndTextEditHdl(const Link<SdrUndoManager*,void>& rLink);
 
     // check from outside if we are inside a callback for ending text edit. This
     // is needed to detect inside end text edit if it is a regular one or triggered
diff --git a/include/svx/svdedxv.hxx b/include/svx/svdedxv.hxx
index 2aa9f89..a6ef4ed 100644
--- a/include/svx/svdedxv.hxx
+++ b/include/svx/svdedxv.hxx
@@ -119,7 +119,7 @@ protected:
     DECL_LINK_TYPED(ImpOutlinerCalcFieldValueHdl,EditFieldInfo*,void);
 
     // link for EndTextEditHdl
-    DECL_LINK(EndTextEditHdl, SdrUndoManager*);
+    DECL_LINK_TYPED(EndTextEditHdl, SdrUndoManager*, void);
 
     void ImpMacroUp(const Point& rUpPos);
     void ImpMacroDown(const Point& rDownPos);
diff --git a/svx/source/svdraw/sdrundomanager.cxx b/svx/source/svdraw/sdrundomanager.cxx
index 1487ddb..1a4541d 100644
--- a/svx/source/svdraw/sdrundomanager.cxx
+++ b/svx/source/svdraw/sdrundomanager.cxx
@@ -100,7 +100,7 @@ void SdrUndoManager::Clear()
     }
 }
 
-void SdrUndoManager::SetEndTextEditHdl(const Link<>& rLink)
+void SdrUndoManager::SetEndTextEditHdl(const Link<SdrUndoManager*,void>& rLink)
 {
     maEndTextEditHdl = rLink;
 
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index f38d33f..43dee90 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -523,10 +523,9 @@ IMPL_LINK_TYPED(SdrObjEditView,ImpOutlinerCalcFieldValueHdl,EditFieldInfo*,pFI,v
     }
 }
 
-IMPL_LINK(SdrObjEditView, EndTextEditHdl, SdrUndoManager*, /*pUndoManager*/)
+IMPL_LINK_NOARG_TYPED(SdrObjEditView, EndTextEditHdl, SdrUndoManager*, void)
 {
     SdrEndTextEdit();
-    return 0;
 }
 
 SdrUndoManager* SdrObjEditView::getSdrUndoManagerForEnhancedTextEdit() const
@@ -863,7 +862,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
 
                 // reset the callback link and let the undo manager cleanup all text edit
                 // undo actions to get the stack back to the form before the text edit
-                pSdrUndoManager->SetEndTextEditHdl(Link<>());
+                pSdrUndoManager->SetEndTextEditHdl(Link<SdrUndoManager*,void>());
             }
             else
             {
commit 8275e66fc1b872ff01131dfc54123fe1dd13b3e8
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 16:13:54 2015 +0200

    convert Link<> to typed
    
    Change-Id: I2bcfd0f99e5caa12dda0a647daaffb7c8aa95d6a

diff --git a/include/svx/rubydialog.hxx b/include/svx/rubydialog.hxx
index b7108e2..c47932b 100644
--- a/include/svx/rubydialog.hxx
+++ b/include/svx/rubydialog.hxx
@@ -69,8 +69,8 @@ class SVX_DLLPUBLIC SvxRubyChildWindow : public SfxChildWindow
 class SvxRubyData_Impl;
 class RubyEdit  : public Edit
 {
-    Link<>  aScrollHdl;
-    Link<>  aJumpHdl;
+    Link<sal_Int32,bool>  aScrollHdl;
+    Link<sal_Int32,void>  aJumpHdl;
     virtual void        GetFocus() SAL_OVERRIDE;
     virtual bool        PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
 public:
@@ -82,8 +82,8 @@ public:
         : Edit(pParent, WB_BORDER)
     {
     }
-    void    SetScrollHdl(Link<>& rLink) {aScrollHdl = rLink;}
-    void    SetJumpHdl(Link<>& rLink) {aJumpHdl = rLink;}
+    void    SetScrollHdl(Link<sal_Int32,bool>& rLink) {aScrollHdl = rLink;}
+    void    SetJumpHdl(Link<sal_Int32,void>& rLink) {aJumpHdl = rLink;}
 };
 
 
@@ -136,8 +136,8 @@ class SvxRubyDialog : public SfxModelessDialog
     DECL_LINK(AdjustHdl_Impl, ListBox*);
     DECL_LINK(CharStyleHdl_Impl, void *);
     DECL_LINK(EditModifyHdl_Impl, Edit*);
-    DECL_LINK(EditScrollHdl_Impl, sal_Int32*);
-    DECL_LINK(EditJumpHdl_Impl, sal_Int32*);
+    DECL_LINK_TYPED(EditScrollHdl_Impl, sal_Int32, bool);
+    DECL_LINK_TYPED(EditJumpHdl_Impl, sal_Int32, void);
 
     void                SetRubyText(sal_Int32 nPos, Edit& rLeft, Edit& rRight);
     void                GetRubyText();
diff --git a/svx/source/dialog/rubydialog.cxx b/svx/source/dialog/rubydialog.cxx
index f640161..12c00a4 100644
--- a/svx/source/dialog/rubydialog.cxx
+++ b/svx/source/dialog/rubydialog.cxx
@@ -249,8 +249,8 @@ SvxRubyDialog::SvxRubyDialog(SfxBindings* pBind, SfxChildWindow* pCW, vcl::Windo
     m_pScrollSB->SetEndScrollHdl(aScrLk);
 
     Link<> aEditLk(LINK(this, SvxRubyDialog, EditModifyHdl_Impl));
-    Link<> aScrollLk(LINK(this, SvxRubyDialog, EditScrollHdl_Impl));
-    Link<> aJumpLk(LINK(this, SvxRubyDialog, EditJumpHdl_Impl));
+    Link<sal_Int32,bool> aScrollLk(LINK(this, SvxRubyDialog, EditScrollHdl_Impl));
+    Link<sal_Int32,void> aJumpLk(LINK(this, SvxRubyDialog, EditJumpHdl_Impl));
     for (sal_uInt16 i = 0; i < 8; i++)
     {
         aEditArr[i]->SetModifyHdl(aEditLk);
@@ -686,19 +686,19 @@ IMPL_LINK(SvxRubyDialog, EditModifyHdl_Impl, Edit*, pEdit)
     return 0;
 }
 
-IMPL_LINK(SvxRubyDialog, EditScrollHdl_Impl, sal_Int32*, pParam)
+IMPL_LINK_TYPED(SvxRubyDialog, EditScrollHdl_Impl, sal_Int32, nParam, bool)
 {
-    long nRet = 0;
+    bool nRet = false;
     if (m_pScrollSB->IsEnabled())
     {
         //scroll forward
-        if (*pParam > 0 && (aEditArr[7]->HasFocus() || aEditArr[6]->HasFocus() ))
+        if (nParam > 0 && (aEditArr[7]->HasFocus() || aEditArr[6]->HasFocus() ))
         {
             if (m_pScrollSB->GetRangeMax() > m_pScrollSB->GetThumbPos())
             {
                 m_pScrollSB->SetThumbPos(m_pScrollSB->GetThumbPos() + 1);
                 aEditArr[6]->GrabFocus();
-                nRet = 1;
+                nRet = true;
             }
         }
         //scroll backward
@@ -706,7 +706,7 @@ IMPL_LINK(SvxRubyDialog, EditScrollHdl_Impl, sal_Int32*, pParam)
         {
             m_pScrollSB->SetThumbPos(m_pScrollSB->GetThumbPos() - 1);
             aEditArr[1]->GrabFocus();
-            nRet = 1;
+            nRet = true;
         }
         if (nRet)
             ScrollHdl_Impl(m_pScrollSB);
@@ -714,7 +714,7 @@ IMPL_LINK(SvxRubyDialog, EditScrollHdl_Impl, sal_Int32*, pParam)
     return nRet;
 }
 
-IMPL_LINK(SvxRubyDialog, EditJumpHdl_Impl, sal_Int32*, pParam)
+IMPL_LINK_TYPED(SvxRubyDialog, EditJumpHdl_Impl, sal_Int32, nParam, void)
 {
     sal_uInt16 nIndex = USHRT_MAX;
     for (sal_uInt16 i = 0; i < 8; i++)
@@ -724,22 +724,21 @@ IMPL_LINK(SvxRubyDialog, EditJumpHdl_Impl, sal_Int32*, pParam)
     }
     if (nIndex < 8)
     {
-        if (*pParam > 0)
+        if (nParam > 0)
         {
             if (nIndex < 6)
                 aEditArr[nIndex + 2]->GrabFocus();
-            else if( EditScrollHdl_Impl(pParam))
+            else if( EditScrollHdl_Impl(nParam))
                 aEditArr[nIndex]->GrabFocus();
         }
         else
         {
             if (nIndex > 1)
                 aEditArr[nIndex - 2]->GrabFocus();
-            else if( EditScrollHdl_Impl(pParam))
+            else if( EditScrollHdl_Impl(nParam))
                 aEditArr[nIndex]->GrabFocus();
         }
     }
-    return 0;
 };
 
 void SvxRubyDialog::AssertOneEntry()
@@ -943,13 +942,13 @@ bool RubyEdit::PreNotify(NotifyEvent& rNEvt)
         if (nCode == KEY_TAB && (!nMod || KEY_SHIFT == nMod))
         {
             sal_Int32 nParam = KEY_SHIFT == nMod ? -1 : 1;
-            if(aScrollHdl.IsSet() && aScrollHdl.Call(&nParam))
+            if(aScrollHdl.IsSet() && aScrollHdl.Call(nParam))
                 nHandled = true;
         }
         else if (KEY_UP == nCode || KEY_DOWN == nCode)
         {
             sal_Int32 nParam = KEY_UP == nCode ? -1 : 1;
-            aJumpHdl.Call(&nParam);
+            aJumpHdl.Call(nParam);
         }
     }
     if (!nHandled)
commit 2b30479d56f8084efd7032dc2475fda496cf2903
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 16:06:52 2015 +0200

    convert Link<> to typed
    
    Change-Id: I4cbb32b6801386f0bef61f9f5c7cde7306c8b9f2

diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx
index bc0d1ff..d9ca3cb 100644
--- a/basctl/source/basicide/moduldl2.cxx
+++ b/basctl/source/basicide/moduldl2.cxx
@@ -706,9 +706,9 @@ IMPL_LINK_TYPED( LibPage, ButtonHdl, Button *, pButton, void )
     CheckButtons();
 }
 
-IMPL_LINK( LibPage, CheckPasswordHdl, SvxPasswordDialog *, pDlg )
+IMPL_LINK_TYPED( LibPage, CheckPasswordHdl, SvxPasswordDialog *, pDlg, bool )
 {
-    long nRet = 0;
+    bool nRet = false;
 
     SvTreeListEntry* pCurEntry = m_pLibBox->GetCurEntry();
     OUString aLibName( SvTabListBox::GetEntryText( pCurEntry, 0 ) );
@@ -721,7 +721,7 @@ IMPL_LINK( LibPage, CheckPasswordHdl, SvxPasswordDialog *, pDlg )
             OUString aOldPassword( pDlg->GetOldPassword() );
             OUString aNewPassword( pDlg->GetNewPassword() );
             xPasswd->changeLibraryPassword( aLibName, aOldPassword, aNewPassword );
-            nRet = 1;
+            nRet = true;
         }
         catch (...)
         {
diff --git a/basctl/source/basicide/moduldlg.hxx b/basctl/source/basicide/moduldlg.hxx
index 1c56dce..d7e1651 100644
--- a/basctl/source/basicide/moduldlg.hxx
+++ b/basctl/source/basicide/moduldlg.hxx
@@ -232,7 +232,7 @@ protected:
     DECL_LINK_TYPED( TreeListHighlightHdl, SvTreeListBox *, void );
     DECL_LINK( BasicSelectHdl, ListBox * );
     DECL_LINK_TYPED( ButtonHdl, Button *, void );
-    DECL_LINK( CheckPasswordHdl, SvxPasswordDialog * );
+    DECL_LINK_TYPED( CheckPasswordHdl, SvxPasswordDialog *, bool );
     void                CheckButtons();
     void                DeleteCurrent();
     void                NewLib();
diff --git a/include/svx/passwd.hxx b/include/svx/passwd.hxx
index 469f0db..e4b1295 100644
--- a/include/svx/passwd.hxx
+++ b/include/svx/passwd.hxx
@@ -35,17 +35,17 @@ class SVX_DLLPUBLIC SvxPasswordDialog : public SfxModalDialog
 private:
     VclPtr<FixedText> m_pOldFL;
     VclPtr<FixedText> m_pOldPasswdFT;
-    VclPtr<Edit> m_pOldPasswdED;
-    VclPtr<Edit> m_pNewPasswdED;
-    VclPtr<Edit> m_pRepeatPasswdED;
-    VclPtr<OKButton> m_pOKBtn;
+    VclPtr<Edit>      m_pOldPasswdED;
+    VclPtr<Edit>      m_pNewPasswdED;
+    VclPtr<Edit>      m_pRepeatPasswdED;
+    VclPtr<OKButton>  m_pOKBtn;
 
-    OUString        aOldPasswdErrStr;
-    OUString        aRepeatPasswdErrStr;
+    OUString          aOldPasswdErrStr;
+    OUString          aRepeatPasswdErrStr;
 
-    Link<>          aCheckPasswordHdl;
+    Link<SvxPasswordDialog*,bool> aCheckPasswordHdl;
 
-    bool            bEmpty;
+    bool              bEmpty;
 
     DECL_LINK_TYPED(ButtonHdl, Button*, void);
     DECL_LINK(EditModifyHdl, void *);
@@ -58,7 +58,7 @@ public:
     OUString        GetOldPassword() const { return m_pOldPasswdED->GetText(); }
     OUString        GetNewPassword() const { return m_pNewPasswdED->GetText(); }
 
-    void            SetCheckPasswordHdl( const Link<>& rLink ) { aCheckPasswordHdl = rLink; }
+    void            SetCheckPasswordHdl( const Link<SvxPasswordDialog*,bool>& rLink ) { aCheckPasswordHdl = rLink; }
 };
 
 
commit 8a910d48c3a2b29894878bc725a24cc34d21f975
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 16:03:38 2015 +0200

    convert Link<> to typed
    
    Change-Id: I90bc5b2859bde8a43be906afec4154fe43b47a86

diff --git a/include/svx/fmgridif.hxx b/include/svx/fmgridif.hxx
index 330a26b..46e85d9 100644
--- a/include/svx/fmgridif.hxx
+++ b/include/svx/fmgridif.hxx
@@ -520,8 +520,8 @@ protected:
     void selectionChanged();
     void columnChanged();
 
-    DECL_LINK(OnQueryGridSlotState, void*);
-    DECL_LINK(OnExecuteGridSlot, void*);
+    DECL_LINK_TYPED(OnQueryGridSlotState, sal_uInt16, int);
+    DECL_LINK_TYPED(OnExecuteGridSlot, sal_uInt16, bool);
 };
 
 
diff --git a/include/svx/gridctrl.hxx b/include/svx/gridctrl.hxx
index e3962aa..ac37ca8 100644
--- a/include/svx/gridctrl.hxx
+++ b/include/svx/gridctrl.hxx
@@ -219,9 +219,9 @@ public:
     };
 
 private:
-    vcl::Font      m_aDefaultFont;
-    Link<>          m_aMasterStateProvider;
-    Link<>          m_aMasterSlotExecutor;
+    vcl::Font              m_aDefaultFont;
+    Link<sal_uInt16,int>   m_aMasterStateProvider;
+    Link<sal_uInt16,bool>   m_aMasterSlotExecutor;
 
     ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >    m_xFormatter;
     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >    m_xContext;
@@ -476,13 +476,13 @@ public:
 
     const DbGridRowRef& GetCurrentRow() const {return m_xCurrentRow;}
 
-    void SetStateProvider(const Link<>& rProvider) { m_aMasterStateProvider = rProvider; }
+    void SetStateProvider(const Link<sal_uInt16,int>& rProvider) { m_aMasterStateProvider = rProvider; }
         // if this link is set the given provider will be asked for the state of my items.
         // the return values are interpreted as follows :
         // <0 -> not specified (use default mechanism to determine the state)
         // ==0 -> the item is disabled
         // >0 -> the item is enabled
-    void SetSlotExecutor(const Link<>& rExecutor) { m_aMasterSlotExecutor = rExecutor; }
+    void SetSlotExecutor(const Link<sal_uInt16,bool>& rExecutor) { m_aMasterSlotExecutor = rExecutor; }
         // analogous : if this link is set, all nav-bar slots will be routed through it when executed
         // if the handler returns nonzero, no further handling of the slot occurs
 
diff --git a/svx/source/fmcomp/fmgridif.cxx b/svx/source/fmcomp/fmgridif.cxx
index e966cec..af49b63 100644
--- a/svx/source/fmcomp/fmgridif.cxx
+++ b/svx/source/fmcomp/fmgridif.cxx
@@ -2800,13 +2800,11 @@ void FmXGridPeer::DisConnectFromDispatcher()
 }
 
 
-IMPL_LINK(FmXGridPeer, OnQueryGridSlotState, void*, pSlot)
+IMPL_LINK_TYPED(FmXGridPeer, OnQueryGridSlotState, sal_uInt16, nSlot, int)
 {
     if (!m_pStateCache)
         return -1;  // unspecified
 
-    sal_uInt16 nSlot = (sal_uInt16)reinterpret_cast<sal_uIntPtr>(pSlot);
-
     // search the given slot with our supported sequence
     Sequence<sal_uInt16>& aSupported = getSupportedGridSlots();
     const sal_uInt16* pSlots = aSupported.getConstArray();
@@ -2825,10 +2823,10 @@ IMPL_LINK(FmXGridPeer, OnQueryGridSlotState, void*, pSlot)
 }
 
 
-IMPL_LINK(FmXGridPeer, OnExecuteGridSlot, void*, pSlot)
+IMPL_LINK_TYPED(FmXGridPeer, OnExecuteGridSlot, sal_uInt16, nSlot, bool)
 {
     if (!m_pDispatchers)
-        return 0;   // not handled
+        return false;   // not handled
 
     Sequence< ::com::sun::star::util::URL>& aUrls = getSupportedURLs();
     const ::com::sun::star::util::URL* pUrls = aUrls.getConstArray();
@@ -2838,7 +2836,6 @@ IMPL_LINK(FmXGridPeer, OnExecuteGridSlot, void*, pSlot)
 
     DBG_ASSERT(aSlots.getLength() == aUrls.getLength(), "FmXGridPeer::OnExecuteGridSlot : inconstent data returned by getSupportedURLs/getSupportedGridSlots !");
 
-    sal_uInt16 nSlot = (sal_uInt16)reinterpret_cast<sal_uIntPtr>(pSlot);
     for (sal_Int32 i=0; i<aSlots.getLength(); ++i, ++pUrls, ++pSlots)
     {
         if (*pSlots == nSlot)
@@ -2849,12 +2846,12 @@ IMPL_LINK(FmXGridPeer, OnExecuteGridSlot, void*, pSlot)
                 if ( pUrls->Complete == FMURL_RECORD_UNDO || commit() )
                     m_pDispatchers[i]->dispatch(*pUrls, Sequence< PropertyValue>());
 
-                return 1;   // handled
+                return true;   // handled
             }
         }
     }
 
-    return 0;   // not handled
+    return false;   // not handled
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx
index c00f259..9900c42 100644
--- a/svx/source/fmcomp/gridctrl.cxx
+++ b/svx/source/fmcomp/gridctrl.cxx
@@ -507,17 +507,17 @@ IMPL_LINK_TYPED(DbGridControl::NavigationBar, OnClick, Button *, pButton, void )
 
     if (pParent->m_aMasterSlotExecutor.IsSet())
     {
-        long lResult = 0;
+        bool lResult = false;
         if (pButton == m_aFirstBtn.get())
-            lResult = pParent->m_aMasterSlotExecutor.Call(reinterpret_cast<void*>(RECORD_FIRST));
+            lResult = pParent->m_aMasterSlotExecutor.Call(RECORD_FIRST);
         else if( pButton == m_aPrevBtn.get() )
-            lResult = pParent->m_aMasterSlotExecutor.Call(reinterpret_cast<void*>(RECORD_PREV));
+            lResult = pParent->m_aMasterSlotExecutor.Call(RECORD_PREV);
         else if( pButton == m_aNextBtn.get() )
-            lResult = pParent->m_aMasterSlotExecutor.Call(reinterpret_cast<void*>(RECORD_NEXT));
+            lResult = pParent->m_aMasterSlotExecutor.Call(RECORD_NEXT);
         else if( pButton == m_aLastBtn.get() )
-            lResult = pParent->m_aMasterSlotExecutor.Call(reinterpret_cast<void*>(RECORD_LAST));
+            lResult = pParent->m_aMasterSlotExecutor.Call(RECORD_LAST);
         else if( pButton == m_aNewBtn.get() )
-            lResult = pParent->m_aMasterSlotExecutor.Call(reinterpret_cast<void*>(RECORD_NEW));
+            lResult = pParent->m_aMasterSlotExecutor.Call(RECORD_NEW);
 
         if (lResult)
             // the link already handled it
@@ -578,7 +578,7 @@ bool DbGridControl::NavigationBar::GetState(sal_uInt16 nWhich) const
         // check if we have a master state provider
         if (pParent->m_aMasterStateProvider.IsSet())
         {
-            long nState = pParent->m_aMasterStateProvider.Call(reinterpret_cast< void* >( nWhich ) );
+            long nState = pParent->m_aMasterStateProvider.Call( nWhich );
             if (nState>=0)
                 return (nState>0);
         }
@@ -2665,9 +2665,9 @@ void DbGridControl::PreExecuteRowContextMenu(sal_uInt16 /*nRow*/, PopupMenu& rMe
 
     // the undo is more difficult
     bool bCanUndo = IsModified();
-    long nState = -1;
+    int nState = -1;
     if (m_aMasterStateProvider.IsSet())
-        nState = m_aMasterStateProvider.Call(reinterpret_cast<void*>(SID_FM_RECORD_UNDO));
+        nState = m_aMasterStateProvider.Call(SID_FM_RECORD_UNDO);
     bCanUndo &= ( 0 != nState );
 
     rMenu.EnableItem(SID_FM_RECORD_UNDO, bCanUndo);
@@ -2972,13 +2972,13 @@ void DbGridControl::Undo()
     if (!IsFilterMode() && IsValid(m_xCurrentRow) && IsModified())
     {
         // check if we have somebody doin' the UNDO for us
-        long nState = -1;
+        int nState = -1;
         if (m_aMasterStateProvider.IsSet())
-            nState = m_aMasterStateProvider.Call(reinterpret_cast<void*>(SID_FM_RECORD_UNDO));
+            nState = m_aMasterStateProvider.Call(SID_FM_RECORD_UNDO);
         if (nState>0)
         {   // yes, we have, and the slot is enabled
             DBG_ASSERT(m_aMasterSlotExecutor.IsSet(), "DbGridControl::Undo : a state, but no execute link ?");
-            long lResult = m_aMasterSlotExecutor.Call(reinterpret_cast<void*>(SID_FM_RECORD_UNDO));
+            bool lResult = m_aMasterSlotExecutor.Call(SID_FM_RECORD_UNDO);
             if (lResult)
                 // handled
                 return;
commit af9200e33351fa942432b8bf303de48c7387ae04
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 15:48:08 2015 +0200

    convert Link<> to typed
    
    Change-Id: I0406faf872833dbe315a89c5b2b3c28f1c9f87a4

diff --git a/include/svx/graphctl.hxx b/include/svx/graphctl.hxx
index a5dc16d..42f60db 100644
--- a/include/svx/graphctl.hxx
+++ b/include/svx/graphctl.hxx
@@ -39,10 +39,9 @@ class SVX_DLLPUBLIC GraphCtrl : public Control
 
     Graphic             aGraphic;
     Idle                aUpdateIdle;
-    Link<>              aMousePosLink;
-    Link<>              aGraphSizeLink;
-    Link<>              aMarkObjLink;
-    Link<>              aUpdateLink;
+    Link<GraphCtrl*,void>  aMousePosLink;
+    Link<GraphCtrl*,void>  aGraphSizeLink;
+    Link<GraphCtrl*,void>  aUpdateLink;
     MapMode             aMap100;
     Size                aGraphSize;
     Point               aMousePos;
@@ -104,11 +103,11 @@ public:
     SdrObject*          GetSelectedSdrObject() const;
     bool                IsChanged() const { return bSdrMode && pModel->IsChanged(); }
 
-    void                SetMousePosLink( const Link<>& rLink ) { aMousePosLink = rLink; }
+    void                SetMousePosLink( const Link<GraphCtrl*,void>& rLink ) { aMousePosLink = rLink; }
 
-    void                SetGraphSizeLink( const Link<>& rLink ) { aGraphSizeLink = rLink; }
+    void                SetGraphSizeLink( const Link<GraphCtrl*,void>& rLink ) { aGraphSizeLink = rLink; }
 
-    void                SetUpdateLink( const Link<>& rLink ) { aUpdateLink = rLink; }
+    void                SetUpdateLink( const Link<GraphCtrl*,void>& rLink ) { aUpdateLink = rLink; }
 
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible() SAL_OVERRIDE;
 };
diff --git a/include/svx/imapdlg.hxx b/include/svx/imapdlg.hxx
index 238b857..3c0b013 100644
--- a/include/svx/imapdlg.hxx
+++ b/include/svx/imapdlg.hxx
@@ -76,6 +76,7 @@ public:
 
 class IMapOwnData;
 class IMapWindow;
+class GraphCtrl;
 
 class SVX_DLLPUBLIC SvxIMapDlg : public SfxModelessDialog // SfxFloatingWindow
 {
@@ -119,12 +120,12 @@ class SVX_DLLPUBLIC SvxIMapDlg : public SfxModelessDialog // SfxFloatingWindow
 
     DECL_LINK_TYPED( TbxClickHdl, ToolBox*, void );
     DECL_LINK( InfoHdl, IMapWindow* );
-    DECL_LINK( MousePosHdl, IMapWindow* );
-    DECL_LINK( GraphSizeHdl, IMapWindow* );
+    DECL_LINK_TYPED( MousePosHdl, GraphCtrl*, void );
+    DECL_LINK_TYPED( GraphSizeHdl, GraphCtrl*, void );
     DECL_LINK( URLModifyHdl, void* );
     DECL_LINK( URLLoseFocusHdl, void* );
-    DECL_LINK_TYPED(UpdateHdl, Idle *, void);
-    DECL_LINK( StateHdl, IMapWindow* );
+    DECL_LINK_TYPED( UpdateHdl, Idle *, void );
+    DECL_LINK_TYPED( StateHdl, GraphCtrl*, void );
     DECL_LINK( MiscHdl, void* );
 
     void                DoOpen();
diff --git a/svx/source/dialog/_contdlg.cxx b/svx/source/dialog/_contdlg.cxx
index 4078e6e..6e02396 100644
--- a/svx/source/dialog/_contdlg.cxx
+++ b/svx/source/dialog/_contdlg.cxx
@@ -297,7 +297,7 @@ SvxSuperContourDlg::~SvxSuperContourDlg()
 
 void SvxSuperContourDlg::dispose()
 {
-    m_pContourWnd->SetUpdateLink( Link<>() );
+    m_pContourWnd->SetUpdateLink( Link<GraphCtrl*,void>() );
 
     SvtMiscOptions aMiscOptions;
     aMiscOptions.RemoveListenerLink( LINK(this, SvxSuperContourDlg, MiscHdl) );
@@ -535,7 +535,7 @@ IMPL_LINK_TYPED( SvxSuperContourDlg, Tbx1ClickHdl, ToolBox*, pTbx, void )
     }
 }
 
-IMPL_LINK( SvxSuperContourDlg, MousePosHdl, ContourWindow*, pWnd )
+IMPL_LINK_TYPED( SvxSuperContourDlg, MousePosHdl, GraphCtrl*, pWnd, void )
 {
     OUString aStr;
     const FieldUnit eFieldUnit = GetBindings().GetDispatcher()->GetModule()->GetFieldUnit();
@@ -548,11 +548,9 @@ IMPL_LINK( SvxSuperContourDlg, MousePosHdl, ContourWindow*, pWnd )
     aStr += GetUnitString( rMousePos.Y(), eFieldUnit, cSep );
 
     m_pStbStatus->SetItemText( 2, aStr );
-
-    return 0L;
 }
 
-IMPL_LINK( SvxSuperContourDlg, GraphSizeHdl, ContourWindow*, pWnd )
+IMPL_LINK_TYPED( SvxSuperContourDlg, GraphSizeHdl, GraphCtrl*, pWnd, void )
 {
     OUString aStr;
     const FieldUnit eFieldUnit = GetBindings().GetDispatcher()->GetModule()->GetFieldUnit();
@@ -565,8 +563,6 @@ IMPL_LINK( SvxSuperContourDlg, GraphSizeHdl, ContourWindow*, pWnd )
     aStr += GetUnitString( rSize.Height(), eFieldUnit, cSep );
 
     m_pStbStatus->SetItemText( 3, aStr );
-
-    return 0L;
 }
 
 IMPL_LINK_NOARG_TYPED(SvxSuperContourDlg, UpdateHdl, Idle *, void)
@@ -606,7 +602,7 @@ IMPL_LINK_NOARG_TYPED(SvxSuperContourDlg, CreateHdl, Idle *, void)
     LeaveWait();
 }
 
-IMPL_LINK( SvxSuperContourDlg, StateHdl, ContourWindow*, pWnd )
+IMPL_LINK_TYPED( SvxSuperContourDlg, StateHdl, GraphCtrl*, pWnd, void )
 {
     const SdrObject*    pObj = pWnd->GetSelectedSdrObject();
     const SdrView*      pView = pWnd->GetSdrView();
@@ -659,8 +655,6 @@ IMPL_LINK( SvxSuperContourDlg, StateHdl, ContourWindow*, pWnd )
         m_pTbx1->CheckItem(mnPolyInsertId, false);
         pWnd->SetPolyEditMode( 0 );
     }
-
-    return 0L;
 }
 
 IMPL_LINK( SvxSuperContourDlg, PipetteHdl, ContourWindow*, pWnd )
diff --git a/svx/source/dialog/contimp.hxx b/svx/source/dialog/contimp.hxx
index c80fc34..5f72e27 100644
--- a/svx/source/dialog/contimp.hxx
+++ b/svx/source/dialog/contimp.hxx
@@ -84,11 +84,11 @@ class SvxSuperContourDlg : public SvxContourDlg
     virtual bool        Close() SAL_OVERRIDE;
 
                         DECL_LINK_TYPED( Tbx1ClickHdl, ToolBox*, void );
-                        DECL_LINK( MousePosHdl, ContourWindow* );
-                        DECL_LINK( GraphSizeHdl, ContourWindow* );
-                        DECL_LINK_TYPED(UpdateHdl, Idle *, void);
-                        DECL_LINK_TYPED(CreateHdl, Idle *, void);
-                        DECL_LINK( StateHdl, ContourWindow* );
+                        DECL_LINK_TYPED( MousePosHdl, GraphCtrl*, void );
+                        DECL_LINK_TYPED( GraphSizeHdl, GraphCtrl*, void );
+                        DECL_LINK_TYPED( UpdateHdl, Idle *, void );
+                        DECL_LINK_TYPED( CreateHdl, Idle *, void );
+                        DECL_LINK_TYPED( StateHdl, GraphCtrl*, void );
                         DECL_LINK( PipetteHdl, ContourWindow* );
                         DECL_LINK( PipetteClickHdl, ContourWindow* );
                         DECL_LINK( WorkplaceClickHdl, ContourWindow* );
diff --git a/svx/source/dialog/graphctl.cxx b/svx/source/dialog/graphctl.cxx
index 81a1096..5b5d360 100644
--- a/svx/source/dialog/graphctl.cxx
+++ b/svx/source/dialog/graphctl.cxx
@@ -291,8 +291,6 @@ void GraphCtrl::SdrObjCreated( const SdrObject& )
 
 void GraphCtrl::MarkListHasChanged()
 {
-    if ( aMarkObjLink.IsSet() )
-        aMarkObjLink.Call( this );
 }
 
 void GraphCtrl::KeyInput( const KeyEvent& rKEvt )
diff --git a/svx/source/dialog/imapdlg.cxx b/svx/source/dialog/imapdlg.cxx
index 618acfd..0a75e7b 100644
--- a/svx/source/dialog/imapdlg.cxx
+++ b/svx/source/dialog/imapdlg.cxx
@@ -218,7 +218,7 @@ SvxIMapDlg::~SvxIMapDlg()
 
 void SvxIMapDlg::dispose()
 {
-    pIMapWnd->SetUpdateLink( Link<>() );
+    pIMapWnd->SetUpdateLink( Link<GraphCtrl*,void>() );
 
     // Delete URL-List
     pIMapWnd.disposeAndClear();
@@ -658,7 +658,7 @@ IMPL_LINK( SvxIMapDlg, InfoHdl, IMapWindow*, pWnd )
     return 0;
 }
 
-IMPL_LINK( SvxIMapDlg, MousePosHdl, IMapWindow*, pWnd )
+IMPL_LINK_TYPED( SvxIMapDlg, MousePosHdl, GraphCtrl*, pWnd, void )
 {
     const FieldUnit eFieldUnit = GetBindings().GetDispatcher()->GetModule()->GetFieldUnit();
     const Point& rMousePos = pWnd->GetMousePos();
@@ -669,11 +669,9 @@ IMPL_LINK( SvxIMapDlg, MousePosHdl, IMapWindow*, pWnd )
                     " / " + GetUnitString( rMousePos.Y(), eFieldUnit, cSep );
 
     m_pStbStatus->SetItemText( 2, aStr );
-
-    return 0L;
 }
 
-IMPL_LINK( SvxIMapDlg, GraphSizeHdl, IMapWindow*, pWnd )
+IMPL_LINK_TYPED( SvxIMapDlg, GraphSizeHdl, GraphCtrl*, pWnd, void )
 {
     const FieldUnit eFieldUnit = GetBindings().GetDispatcher()->GetModule()->GetFieldUnit();
     const Size& rSize = pWnd->GetGraphicSize();
@@ -684,8 +682,6 @@ IMPL_LINK( SvxIMapDlg, GraphSizeHdl, IMapWindow*, pWnd )
                     " x " + GetUnitString( rSize.Height(), eFieldUnit, cSep );
 
     m_pStbStatus->SetItemText( 3, aStr );
-
-    return 0L;
 }
 
 IMPL_LINK_NOARG(SvxIMapDlg, URLModifyHdl)
@@ -758,7 +754,7 @@ IMPL_LINK_NOARG_TYPED(SvxIMapDlg, UpdateHdl, Idle *, void)
     GetBindings().Invalidate( SID_IMAP_EXEC );
 }
 
-IMPL_LINK( SvxIMapDlg, StateHdl, IMapWindow*, pWnd )
+IMPL_LINK_TYPED( SvxIMapDlg, StateHdl, GraphCtrl*, pWnd, void )
 {
     const SdrObject*    pObj = pWnd->GetSelectedSdrObject();
     const SdrModel*     pModel = pWnd->GetSdrModel();
@@ -806,8 +802,6 @@ IMPL_LINK( SvxIMapDlg, StateHdl, IMapWindow*, pWnd )
         m_pTbxIMapDlg1->CheckItem( mnPolyInsertId, false );
         pWnd->SetPolyEditMode( 0 );
     }
-
-    return 0L;
 }
 
 IMPL_LINK_NOARG(SvxIMapDlg, MiscHdl)
commit 7c581916251acdcd6d41c490d9bae9eec7eef590
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 15:36:04 2015 +0200

    convert Link<> to typed
    
    Change-Id: Ibadfd1d3e954be456c7b35957bd12c1d9ecd8932

diff --git a/include/svx/galctrl.hxx b/include/svx/galctrl.hxx
index 466cfa5..156ea0d 100644
--- a/include/svx/galctrl.hxx
+++ b/include/svx/galctrl.hxx
@@ -116,7 +116,7 @@ class GalleryListView : public BrowseBox
 
 private:
 
-    Link<>              maSelectHdl;
+    Link<GalleryListView*,void>  maSelectHdl;
     GalleryTheme*       mpTheme;
     long                mnCurRow;
 
@@ -142,7 +142,7 @@ public:
 
                         GalleryListView( GalleryBrowser2* pParent, GalleryTheme* pTheme );
 
-    void                SetSelectHdl( const Link<>& rSelectHdl ) { maSelectHdl = rSelectHdl; }
+    void                SetSelectHdl( const Link<GalleryListView*,void>& rSelectHdl ) { maSelectHdl = rSelectHdl; }
 
     /** GetCellText returns the text at the given position
         @param  _nRow
diff --git a/svx/inc/galbrws2.hxx b/svx/inc/galbrws2.hxx
index 58f6021..09223c0 100644
--- a/svx/inc/galbrws2.hxx
+++ b/svx/inc/galbrws2.hxx
@@ -137,7 +137,7 @@ private:
     // SfxListener
     virtual void        Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
 
-                        DECL_LINK( SelectObjectHdl, void* );
+                        DECL_LINK_TYPED( SelectObjectHdl, GalleryListView*, void );
                         DECL_LINK_TYPED( SelectObjectValueSetHdl, ValueSet*, void );
                         DECL_LINK_TYPED( SelectTbxHdl, ToolBox*, void );
                         DECL_LINK( MiscHdl, void* );
diff --git a/svx/source/gallery2/galbrws2.cxx b/svx/source/gallery2/galbrws2.cxx
index afc98d0..ce1e832 100644
--- a/svx/source/gallery2/galbrws2.cxx
+++ b/svx/source/gallery2/galbrws2.cxx
@@ -1318,10 +1318,9 @@ IMPL_LINK_NOARG_TYPED(GalleryBrowser2, SelectObjectValueSetHdl, ValueSet*, void)
     ImplUpdateInfoBar();
 }
 
-IMPL_LINK_NOARG(GalleryBrowser2, SelectObjectHdl)
+IMPL_LINK_NOARG_TYPED(GalleryBrowser2, SelectObjectHdl, GalleryListView*, void)
 {
     ImplUpdateInfoBar();
-    return 0L;
 }
 
 IMPL_LINK_TYPED( GalleryBrowser2, SelectTbxHdl, ToolBox*, pBox, void )
commit 9004eeae2fc7be5868b9f5738ff335db262b40d9
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 15:28:56 2015 +0200

    convert Link<> to typed
    
    Change-Id: I206430e6cb32235b0ac47781fe586c3e374bfc17

diff --git a/cui/source/dialogs/cuifmsearch.cxx b/cui/source/dialogs/cuifmsearch.cxx
index 7cc2288..8120707 100644
--- a/cui/source/dialogs/cuifmsearch.cxx
+++ b/cui/source/dialogs/cuifmsearch.cxx
@@ -705,7 +705,7 @@ void FmSearchDialog::OnFound(const css::uno::Any& aCursorPos, sal_Int16 nFieldPo
     m_pcmbSearchText->GrabFocus();
 }
 
-IMPL_LINK(FmSearchDialog, OnSearchProgress, FmSearchProgress*, pProgress)
+IMPL_LINK_TYPED(FmSearchDialog, OnSearchProgress, const FmSearchProgress*, pProgress, void)
 {
     SolarMutexGuard aGuard;
         // make this single method thread-safe (it's an overkill to block the whole application for this,
@@ -761,8 +761,6 @@ IMPL_LINK(FmSearchDialog, OnSearchProgress, FmSearchProgress*, pProgress)
     }
 
     m_pftRecord->SetText(OUString::number(1 + pProgress->nCurrentRecord));
-
-    return 0L;
 }
 
 void FmSearchDialog::LoadParams()
diff --git a/cui/source/inc/cuifmsearch.hxx b/cui/source/inc/cuifmsearch.hxx
index f4d00a7..7cca082 100644
--- a/cui/source/inc/cuifmsearch.hxx
+++ b/cui/source/inc/cuifmsearch.hxx
@@ -171,7 +171,7 @@ private:
 
     DECL_LINK( OnContextSelection, ListBox* );
 
-    DECL_LINK( OnSearchProgress, FmSearchProgress* );
+    DECL_LINK_TYPED( OnSearchProgress, const FmSearchProgress*, void );
 
     DECL_LINK_TYPED( OnDelayedPaint, Timer*, void ); ///< see EnableSearchUI
 
diff --git a/include/svx/fmsrcimp.hxx b/include/svx/fmsrcimp.hxx
index 5bb785c..1a28fb7c 100644
--- a/include/svx/fmsrcimp.hxx
+++ b/include/svx/fmsrcimp.hxx
@@ -44,15 +44,15 @@
 class FmSearchEngine;
 class SAL_WARN_UNUSED FmSearchThread : public ::osl::Thread
 {
-    FmSearchEngine*     m_pEngine;
-    Link<>              m_aTerminationHdl;
+    FmSearchEngine*            m_pEngine;
+    Link<FmSearchThread*,void> m_aTerminationHdl;
 
     virtual void SAL_CALL run() SAL_OVERRIDE;
     virtual void SAL_CALL onTerminated() SAL_OVERRIDE;
 
 public:
     FmSearchThread(FmSearchEngine* pEngine) : m_pEngine(pEngine) { }
-    void setTerminationHandler(Link<> aHdl) { m_aTerminationHdl = aHdl; }
+    void setTerminationHandler(Link<FmSearchThread*,void> aHdl) { m_aTerminationHdl = aHdl; }
 };
 
 /**
@@ -84,12 +84,12 @@ struct FmSearchProgress
 class SAL_WARN_UNUSED FmRecordCountListener : public ::cppu::WeakImplHelper1< ::com::sun::star::beans::XPropertyChangeListener>
 {
 // attribute
-    Link<>          m_lnkWhoWantsToKnow;
+    Link<sal_Int32,void>     m_lnkWhoWantsToKnow;
     ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >   m_xListening;
 
 // attribute access
 public:
-    Link<> SetPropChangeHandler(const Link<>& lnk);
+    Link<sal_Int32,void> SetPropChangeHandler(const Link<sal_Int32,void>& lnk);
 
 // methods
 public:
@@ -203,7 +203,7 @@ class SVX_DLLPUBLIC SAL_WARN_UNUSED FmSearchEngine
 
     // Data for the decision in which field a "Found" is accepted
     ::com::sun::star::uno::Any  m_aPreviousLocBookmark;     // position of the last finding
-    FieldCollection::iterator     m_iterPreviousLocField;     // field of the last finding
+    FieldCollection::iterator   m_iterPreviousLocField;     // field of the last finding
 
     // Communication with the thread that does the actual searching
     OUString            m_strSearchExpression;              // forward direction
@@ -211,7 +211,7 @@ class SVX_DLLPUBLIC SAL_WARN_UNUSED FmSearchEngine
     SEARCH_RESULT       m_srResult;                         // backward direction
 
     // The link we broadcast the progress and the result to
-    Link<>              m_aProgressHandler;
+    Link<const FmSearchProgress*,void>  m_aProgressHandler;
     bool                m_bSearchingCurrently : 1;      // is an (asynchronous) search running?
     bool                m_bCancelAsynchRequest : 1;     // should be cancelled?
     ::osl::Mutex        m_aCancelAsynchAccess;          // access to_bCancelAsynchRequest (technically only
@@ -312,7 +312,7 @@ public:
         a FmSearchProgress structure
         the handler should be in any case thread-safe
     */
-    void SetProgressHandler(Link<> aHdl) { m_aProgressHandler = aHdl; }
+    void SetProgressHandler(Link<const FmSearchProgress*,void> aHdl) { m_aProgressHandler = aHdl; }
 
     /// search for the next appearance (for nDirection values check DIRECTION_*-defines)
     void SearchNext(const OUString& strExpression);
@@ -380,9 +380,9 @@ private:
 
     SVX_DLLPRIVATE bool HasPreviousLoc() { return m_aPreviousLocBookmark.hasValue(); }
 
-    DECL_LINK(OnSearchTerminated, FmSearchThread*);
+    DECL_LINK_TYPED(OnSearchTerminated, FmSearchThread*, void);
     // is used by SearchThread, after the return from this handler the thread removes itself
-    DECL_LINK(OnNewRecordCount, void*);
+    DECL_LINK_TYPED(OnNewRecordCount, sal_Int32, void);
 };
 
 #endif // INCLUDED_SVX_FMSRCIMP_HXX
diff --git a/svx/source/form/fmsrcimp.cxx b/svx/source/form/fmsrcimp.cxx
index 52680c1..571334e 100644
--- a/svx/source/form/fmsrcimp.cxx
+++ b/svx/source/form/fmsrcimp.cxx
@@ -107,9 +107,9 @@ FmRecordCountListener::FmRecordCountListener(const Reference< ::com::sun::star::
 }
 
 
-Link<> FmRecordCountListener::SetPropChangeHandler(const Link<>& lnk)
+Link<sal_Int32,void> FmRecordCountListener::SetPropChangeHandler(const Link<sal_Int32,void>& lnk)
 {
-    Link<> lnkReturn = m_lnkWhoWantsToKnow;
+    Link<sal_Int32,void> lnkReturn = m_lnkWhoWantsToKnow;
     m_lnkWhoWantsToKnow = lnk;
 
     if (m_xListening.is())
@@ -145,8 +145,8 @@ void FmRecordCountListener::NotifyCurrentCount()
     if (m_lnkWhoWantsToKnow.IsSet())
     {
         DBG_ASSERT(m_xListening.is(), "FmRecordCountListener::NotifyCurrentCount : I have no propset ... !?");
-        void* pTheCount = reinterpret_cast<void*>(::comphelper::getINT32(m_xListening->getPropertyValue(FM_PROP_ROWCOUNT)));
-        m_lnkWhoWantsToKnow.Call(pTheCount);
+        sal_Int32 theCount = ::comphelper::getINT32(m_xListening->getPropertyValue(FM_PROP_ROWCOUNT));
+        m_lnkWhoWantsToKnow.Call(theCount);
     }
 }
 
@@ -1063,10 +1063,10 @@ void FmSearchEngine::SearchNextImpl()
 }
 
 
-IMPL_LINK(FmSearchEngine, OnSearchTerminated, FmSearchThread*, /*pThread*/)
+IMPL_LINK_NOARG_TYPED(FmSearchEngine, OnSearchTerminated, FmSearchThread*, void)
 {
     if (!m_aProgressHandler.IsSet())
-        return 0L;
+        return;
 
     FmSearchProgress aProgress;
     try
@@ -1101,21 +1101,18 @@ IMPL_LINK(FmSearchEngine, OnSearchTerminated, FmSearchThread*, /*pThread*/)
     m_aProgressHandler.Call(&aProgress);
 
     m_bSearchingCurrently = false;
-    return 0L;
 }
 
 
-IMPL_LINK(FmSearchEngine, OnNewRecordCount, void*, pCounterAsVoid)
+IMPL_LINK_TYPED(FmSearchEngine, OnNewRecordCount, sal_Int32, theCounter, void)
 {
     if (!m_aProgressHandler.IsSet())
-        return 0L;
+        return;
 
     FmSearchProgress aProgress;
-    aProgress.nCurrentRecord = reinterpret_cast<sal_uIntPtr>(pCounterAsVoid);
+    aProgress.nCurrentRecord = theCounter;
     aProgress.aSearchState = FmSearchProgress::STATE_PROGRESS_COUNTING;
     m_aProgressHandler.Call(&aProgress);
-
-    return 0L;
 }
 
 
commit a7fde38aaeca29339c9371272ae34ee0b8ca31d2
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 15:18:12 2015 +0200

    convert Link<> to typed
    
    Change-Id: I46e3f994d134f519258046f56263b4a42c1d97c2

diff --git a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
index 44f7aca..5dec3ea 100644
--- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
+++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
@@ -349,7 +349,7 @@ void ThreeD_SceneIllumination_TabPage::applyLightSourcesToModel()
     m_aTimerTriggeredControllerLock.startTimer();
 }
 
-IMPL_LINK_NOARG(ThreeD_SceneIllumination_TabPage, PreviewChangeHdl)
+IMPL_LINK_NOARG_TYPED(ThreeD_SceneIllumination_TabPage, PreviewChangeHdl, SvxLightCtl3D*, void)
 {
     m_aTimerTriggeredControllerLock.startTimer();
 
@@ -397,11 +397,9 @@ IMPL_LINK_NOARG(ThreeD_SceneIllumination_TabPage, PreviewChangeHdl)
     pInfo->aLightSource.aDirection = B3DVectorToDirection3D(static_cast<const SvxB3DVectorItem&>(a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_8)).GetValue());
 
     applyLightSourcesToModel();
-
-    return 0;
 }
 
-IMPL_LINK_NOARG(ThreeD_SceneIllumination_TabPage, PreviewSelectHdl)
+IMPL_LINK_NOARG_TYPED(ThreeD_SceneIllumination_TabPage, PreviewSelectHdl, SvxLightCtl3D*, void)
 {
     sal_uInt32 nLightNumber = m_pCtl_Preview->GetSvx3DLightControl().GetSelectedLight();
     if(nLightNumber<8)
@@ -412,7 +410,6 @@ IMPL_LINK_NOARG(ThreeD_SceneIllumination_TabPage, PreviewSelectHdl)
 
         applyLightSourcesToModel();
     }
-    return 0;
 }
 
 IMPL_LINK_TYPED( ThreeD_SceneIllumination_TabPage, ColorDialogHdl, Button*, pButton, void )
diff --git a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
index cb368ca..f8cec26 100644
--- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
+++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
@@ -63,8 +63,8 @@ private:
     DECL_LINK_TYPED( ClickLightSourceButtonHdl, Button*, void );
     DECL_LINK( SelectColorHdl, ColorLB* );
     DECL_LINK_TYPED( ColorDialogHdl, Button*, void );
-    DECL_LINK( PreviewChangeHdl, void* );
-    DECL_LINK( PreviewSelectHdl, void* );
+    DECL_LINK_TYPED( PreviewChangeHdl, SvxLightCtl3D*, void );
+    DECL_LINK_TYPED( PreviewSelectHdl, SvxLightCtl3D*, void );
 
     void updatePreview();
 
diff --git a/include/svx/dlgctl3d.hxx b/include/svx/dlgctl3d.hxx
index 65fc6f4..5085725 100644
--- a/include/svx/dlgctl3d.hxx
+++ b/include/svx/dlgctl3d.hxx
@@ -66,8 +66,8 @@ public:
 class SVX_DLLPUBLIC SAL_WARN_UNUSED Svx3DLightControl : public Svx3DPreviewControl
 {
     // Callback for interactive changes
-    Link<>                      maChangeCallback;
-    Link<>                      maSelectionChangeCallback;
+    Link<Svx3DLightControl*,void>  maChangeCallback;
+    Link<Svx3DLightControl*,void>  maSelectionChangeCallback;
 
     // lights
     sal_uInt32                  maSelectedLight;
@@ -110,8 +110,8 @@ public:
     virtual void SetObjectType(SvxPreviewObjectType nType) SAL_OVERRIDE;
 
     // register user callback
-    void SetChangeCallback(Link<> aNew) { maChangeCallback = aNew; }
-    void SetSelectionChangeCallback(Link<> aNew) { maSelectionChangeCallback = aNew; }
+    void SetChangeCallback(Link<Svx3DLightControl*,void> aNew) { maChangeCallback = aNew; }
+    void SetSelectionChangeCallback(Link<Svx3DLightControl*,void> aNew) { maSelectionChangeCallback = aNew; }
 
     // selection checks
     bool IsSelectionValid();
@@ -145,8 +145,8 @@ private:
     VclPtr<PushButton>         maSwitcher;
 
     // callback for interactive changes
-    Link<>                     maUserInteractiveChangeCallback;
-    Link<>                     maUserSelectionChangeCallback;
+    Link<SvxLightCtl3D*,void>  maUserInteractiveChangeCallback;
+    Link<SvxLightCtl3D*,void>  maUserSelectionChangeCallback;
 
 public:
     SvxLightCtl3D(vcl::Window* pParent);
@@ -164,8 +164,8 @@ public:
     Svx3DLightControl& GetSvx3DLightControl() { return *maLightControl.get(); }
 
     // register user callback
-    void SetUserInteractiveChangeCallback(Link<> aNew) { maUserInteractiveChangeCallback = aNew; }
-    void SetUserSelectionChangeCallback(Link<> aNew) { maUserSelectionChangeCallback = aNew; }
+    void SetUserInteractiveChangeCallback(Link<SvxLightCtl3D*,void> aNew) { maUserInteractiveChangeCallback = aNew; }
+    void SetUserSelectionChangeCallback(Link<SvxLightCtl3D*,void> aNew) { maUserSelectionChangeCallback = aNew; }
 
     virtual void KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
     virtual void GetFocus() SAL_OVERRIDE;
@@ -175,8 +175,8 @@ public:
 
 protected:
 
-    DECL_LINK( InternalInteractiveChange, void*);
-    DECL_LINK( InternalSelectionChange, void*);
+    DECL_LINK_TYPED( InternalInteractiveChange, Svx3DLightControl*, void);
+    DECL_LINK_TYPED( InternalSelectionChange, Svx3DLightControl*, void);
     DECL_LINK_TYPED( ScrollBarMove, ScrollBar*, void);
     DECL_LINK_TYPED( ButtonPress, Button*, void);
 
diff --git a/include/svx/float3d.hxx b/include/svx/float3d.hxx
index 9d0a688..958dca0 100644
--- a/include/svx/float3d.hxx
+++ b/include/svx/float3d.hxx
@@ -198,7 +198,7 @@ private:
     DECL_LINK( ModifyHdl, void * );
     void ClickLight(PushButton &rBtn);
 
-    DECL_LINK( ChangeSelectionCallbackHdl, void * );
+    DECL_LINK_TYPED( ChangeSelectionCallbackHdl, SvxLightCtl3D*, void );
 
     SVX_DLLPRIVATE void         Construct();
     SVX_DLLPRIVATE void         Reset();
diff --git a/svx/source/dialog/dlgctl3d.cxx b/svx/source/dialog/dlgctl3d.cxx
index c0be0e8..36f08fb 100644
--- a/svx/source/dialog/dlgctl3d.cxx
+++ b/svx/source/dialog/dlgctl3d.cxx
@@ -1251,7 +1251,7 @@ IMPL_LINK_NOARG_TYPED(SvxLightCtl3D, ButtonPress, Button*, void)
     }
 }
 
-IMPL_LINK_NOARG(SvxLightCtl3D, InternalInteractiveChange)
+IMPL_LINK_NOARG_TYPED(SvxLightCtl3D, InternalInteractiveChange, Svx3DLightControl*, void)
 {
     double fHor(0.0), fVer(0.0);
 
@@ -1263,11 +1263,9 @@ IMPL_LINK_NOARG(SvxLightCtl3D, InternalInteractiveChange)
     {
         maUserInteractiveChangeCallback.Call(this);
     }
-
-    return 0;
 }
 
-IMPL_LINK_NOARG(SvxLightCtl3D, InternalSelectionChange)
+IMPL_LINK_NOARG_TYPED(SvxLightCtl3D, InternalSelectionChange, Svx3DLightControl*, void)
 {
     CheckSelection();
 
@@ -1275,8 +1273,6 @@ IMPL_LINK_NOARG(SvxLightCtl3D, InternalSelectionChange)
     {
         maUserSelectionChangeCallback.Call(this);
     }
-
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/engine3d/float3d.cxx b/svx/source/engine3d/float3d.cxx
index a18f2ac..2577efa 100644
--- a/svx/source/engine3d/float3d.cxx
+++ b/svx/source/engine3d/float3d.cxx
@@ -297,8 +297,7 @@ Svx3DWin::Svx3DWin(SfxBindings* pInBindings, SfxChildWindow *pCW, vcl::Window* p
     m_pMtrSlant->SetModifyHdl( aLink2 );
 
     // Preview callback
-    aLink2 = LINK( this, Svx3DWin, ChangeSelectionCallbackHdl );
-    m_pCtlLightPreview->SetUserSelectionChangeCallback(aLink2);
+    m_pCtlLightPreview->SetUserSelectionChangeCallback(LINK( this, Svx3DWin, ChangeSelectionCallbackHdl ));
 
     aSize = GetOutputSizePixel();
     SetMinOutputSizePixel( aSize );
@@ -2633,7 +2632,7 @@ void Svx3DWin::ClickLight(PushButton& rBtn)
 
 
 
-IMPL_LINK_NOARG(Svx3DWin, ChangeSelectionCallbackHdl)
+IMPL_LINK_NOARG_TYPED(Svx3DWin, ChangeSelectionCallbackHdl, SvxLightCtl3D*, void)
 {
     const sal_uInt32 nLight(m_pCtlLightPreview->GetSvx3DLightControl().GetSelectedLight());
     PushButton* pBtn = 0;
@@ -2698,8 +2697,6 @@ IMPL_LINK_NOARG(Svx3DWin, ChangeSelectionCallbackHdl)
         }
         m_pBtnLightColor->Enable( false );
     }
-
-    return 0L;
 }
 
 
commit c41906324acf933f906516af8f2c3305904ba3c4
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 14:54:16 2015 +0200

    convert Link<> to typed
    
    Change-Id: I4efbef7fb2024212fca679099a40c2b84081c5f4

diff --git a/include/svx/dialcontrol.hxx b/include/svx/dialcontrol.hxx
index acc16f7..b11ec16 100644
--- a/include/svx/dialcontrol.hxx
+++ b/include/svx/dialcontrol.hxx
@@ -113,7 +113,7 @@ public:
     void                SetLinkedField( NumericField* pField, sal_Int32 nDecimalPlaces = 0);
 
     /** The passed handler is called whenever the totation value changes. */
-    void                SetModifyHdl( const Link<>& rLink );
+    void                SetModifyHdl( const Link<DialControl*,void>& rLink );
 
     /** Save value for later comparison */
     void                SaveValue();
@@ -127,8 +127,8 @@ protected:
         ScopedVclPtr<DialControlBmp> mxBmpEnabled;
         ScopedVclPtr<DialControlBmp> mxBmpDisabled;
         ScopedVclPtr<DialControlBmp> mxBmpBuffered;
-        Link<>              maModifyHdl;
-        VclPtr<NumericField>       mpLinkField;
+        Link<DialControl*,void>      maModifyHdl;
+        VclPtr<NumericField>         mpLinkField;
         sal_Int32           mnLinkedFieldValueMultiplyer;
         Size                maWinSize;
         vcl::Font           maWinFont;
diff --git a/svx/source/dialog/dialcontrol.cxx b/svx/source/dialog/dialcontrol.cxx
index 5a2304b..8d127e5 100644
--- a/svx/source/dialog/dialcontrol.cxx
+++ b/svx/source/dialog/dialcontrol.cxx
@@ -410,7 +410,7 @@ bool DialControl::IsValueModified()
     return mpImpl->mnInitialAngle != mpImpl->mnAngle;
 }
 
-void DialControl::SetModifyHdl( const Link<>& rLink )
+void DialControl::SetModifyHdl( const Link<DialControl*,void>& rLink )
 {
     mpImpl->maModifyHdl = rLink;
 }
diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
index 80ebaae..10b95b2 100644
--- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
+++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
@@ -535,7 +535,7 @@ IMPL_LINK_NOARG( PosSizePropertyPanel, AngleModifiedHdl )
 
 
 
-IMPL_LINK_NOARG( PosSizePropertyPanel, RotationHdl )
+IMPL_LINK_NOARG_TYPED( PosSizePropertyPanel, RotationHdl, DialControl*, void )
 {
     sal_Int32 nTmp = mpDial->GetRotation();
 
@@ -547,8 +547,6 @@ IMPL_LINK_NOARG( PosSizePropertyPanel, RotationHdl )
 
     GetBindings()->GetDispatcher()->Execute(
         SID_ATTR_TRANSFORM, SfxCallMode::RECORD, &aAngleItem, &aRotXItem, &aRotYItem, 0L );
-
-    return 0;
 }
 
 
diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.hxx b/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
index 875eae7..e24b41b 100644
--- a/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
+++ b/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
@@ -32,13 +32,15 @@
 #include <com/sun/star/ui/XSidebar.hpp>
 #include <basegfx/range/b2drange.hxx>
 
-class DialControl;
 class SdrView;
 class FixedText;
 class MetricField;
 class CheckBox;
 class MetricBox;
 
+namespace svx {
+class DialControl;
+};
 
 namespace svx { namespace sidebar {
 
@@ -155,7 +157,7 @@ private:
     DECL_LINK( ChangeHeightHdl, void * );
     DECL_LINK_TYPED( ClickAutoHdl, Button*, void );
     DECL_LINK( AngleModifiedHdl, void * );
-    DECL_LINK( RotationHdl, void * );
+    DECL_LINK_TYPED( RotationHdl, svx::DialControl*, void );
     DECL_LINK_TYPED( FlipHdl, ToolBox *, void );
 
     void Initialize();
commit 20646c4c0115a298560f9cff4aeaba9503f65977
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 14:26:19 2015 +0200

    convert Link<> to typed
    
    Change-Id: I7c7a4bbaa4670e873599ad2533a1c2de713cf53f

diff --git a/include/svx/ctredlin.hxx b/include/svx/ctredlin.hxx
index 2a225cb..130ff10 100644
--- a/include/svx/ctredlin.hxx
+++ b/include/svx/ctredlin.hxx
@@ -275,11 +275,11 @@ class SVX_DLLPUBLIC SAL_WARN_UNUSED SvxTPView : public TabPage
 {
 private:
 
-    Link<>          AcceptClickLk;
-    Link<>          AcceptAllClickLk;
-    Link<>          RejectClickLk;
-    Link<>          RejectAllClickLk;
-    Link<>          UndoClickLk;
+    Link<SvxTPView*,void>          AcceptClickLk;
+    Link<SvxTPView*,void>          AcceptAllClickLk;
+    Link<SvxTPView*,void>          RejectClickLk;
+    Link<SvxTPView*,void>          RejectAllClickLk;
+    Link<SvxTPView*,void>          UndoClickLk;
 
     VclPtr<SvxRedlinTable> m_pViewData;
     VclPtr<PushButton>     m_pAccept;
@@ -313,15 +313,15 @@ public:
     void            DisableUndo()       {EnableUndo(false);}
     void            ShowUndo(bool nFlag=true);
 
-    void            SetAcceptClickHdl( const Link<>& rLink ) { AcceptClickLk = rLink; }
+    void            SetAcceptClickHdl( const Link<SvxTPView*,void>& rLink ) { AcceptClickLk = rLink; }
 
-    void            SetAcceptAllClickHdl( const Link<>& rLink ) { AcceptAllClickLk = rLink; }
+    void            SetAcceptAllClickHdl( const Link<SvxTPView*,void>& rLink ) { AcceptAllClickLk = rLink; }
 
-    void            SetRejectClickHdl( const Link<>& rLink ) { RejectClickLk = rLink; }
+    void            SetRejectClickHdl( const Link<SvxTPView*,void>& rLink ) { RejectClickLk = rLink; }
 
-    void            SetRejectAllClickHdl( const Link<>& rLink ) { RejectAllClickLk = rLink; }
+    void            SetRejectAllClickHdl( const Link<SvxTPView*,void>& rLink ) { RejectAllClickLk = rLink; }
 
-    void            SetUndoClickHdl( const Link<>& rLink ) { UndoClickLk = rLink; }
+    void            SetUndoClickHdl( const Link<SvxTPView*,void>& rLink ) { UndoClickLk = rLink; }
 
     virtual void    ActivatePage() SAL_OVERRIDE;
     virtual void    DeactivatePage() SAL_OVERRIDE;
diff --git a/sc/source/ui/inc/acredlin.hxx b/sc/source/ui/inc/acredlin.hxx
index 23de841..7397a20 100644
--- a/sc/source/ui/inc/acredlin.hxx
+++ b/sc/source/ui/inc/acredlin.hxx
@@ -99,10 +99,10 @@ private:
 
     DECL_LINK_TYPED( FilterHandle, SvxTPFilter*, void );
     DECL_LINK_TYPED( RefHandle, SvxTPFilter*, void );
-    DECL_LINK( RejectHandle, SvxTPView*);
-    DECL_LINK( AcceptHandle, SvxTPView*);
-    DECL_LINK( RejectAllHandle, void*);
-    DECL_LINK( AcceptAllHandle, void*);
+    DECL_LINK_TYPED( RejectHandle, SvxTPView*, void);
+    DECL_LINK_TYPED( AcceptHandle, SvxTPView*, void);
+    DECL_LINK_TYPED( RejectAllHandle, SvxTPView*, void);
+    DECL_LINK_TYPED( AcceptAllHandle, SvxTPView*, void);
     DECL_LINK_TYPED( ExpandingHandle, SvTreeListBox*, bool);
     DECL_LINK_TYPED( SelectHandle, SvTreeListBox*, void);
     DECL_LINK( RefInfoHandle, OUString*);
diff --git a/sc/source/ui/miscdlgs/acredlin.cxx b/sc/source/ui/miscdlgs/acredlin.cxx
index 8a086f5..42e636a 100644
--- a/sc/source/ui/miscdlgs/acredlin.cxx
+++ b/sc/source/ui/miscdlgs/acredlin.cxx
@@ -935,7 +935,7 @@ IMPL_LINK_TYPED( ScAcceptChgDlg, FilterHandle, SvxTPFilter*, pRef, void )
     }
 }
 
-IMPL_LINK( ScAcceptChgDlg, RejectHandle, SvxTPView*, pRef )
+IMPL_LINK_TYPED( ScAcceptChgDlg, RejectHandle, SvxTPView*, pRef, void )
 {
     SetPointer(Pointer(PointerStyle::Wait));
 
@@ -971,9 +971,8 @@ IMPL_LINK( ScAcceptChgDlg, RejectHandle, SvxTPView*, pRef )
     SetPointer(Pointer(PointerStyle::Arrow));
 
     bIgnoreMsg=false;
-    return 0;
 }
-IMPL_LINK( ScAcceptChgDlg, AcceptHandle, SvxTPView*, pRef )
+IMPL_LINK_TYPED( ScAcceptChgDlg, AcceptHandle, SvxTPView*, pRef, void )
 {
     SetPointer(Pointer(PointerStyle::Wait));
 
@@ -1009,8 +1008,6 @@ IMPL_LINK( ScAcceptChgDlg, AcceptHandle, SvxTPView*, pRef )
         UpdateView();
     }
     bIgnoreMsg=false;
-
-    return 0;
 }
 
 void ScAcceptChgDlg::RejectFiltered()
@@ -1052,7 +1049,7 @@ void ScAcceptChgDlg::AcceptFiltered()
     }
 }
 
-IMPL_LINK_NOARG(ScAcceptChgDlg, RejectAllHandle)
+IMPL_LINK_NOARG_TYPED(ScAcceptChgDlg, RejectAllHandle, SvxTPView*, void)
 {
     SetPointer(Pointer(PointerStyle::Wait));
     bIgnoreMsg=true;
@@ -1077,11 +1074,9 @@ IMPL_LINK_NOARG(ScAcceptChgDlg, RejectAllHandle)
     SetPointer(Pointer(PointerStyle::Arrow));
 
     bIgnoreMsg=false;
-
-    return 0;
 }
 
-IMPL_LINK_NOARG(ScAcceptChgDlg, AcceptAllHandle)
+IMPL_LINK_NOARG_TYPED(ScAcceptChgDlg, AcceptAllHandle, SvxTPView*, void)
 {
     SetPointer(Pointer(PointerStyle::Wait));
 
@@ -1103,8 +1098,6 @@ IMPL_LINK_NOARG(ScAcceptChgDlg, AcceptAllHandle)
     }
     bIgnoreMsg=false;
     SetPointer(Pointer(PointerStyle::Arrow));
-
-    return 0;
 }
 
 IMPL_LINK_NOARG_TYPED(ScAcceptChgDlg, SelectHandle, SvTreeListBox*, void)
diff --git a/sw/source/uibase/inc/redlndlg.hxx b/sw/source/uibase/inc/redlndlg.hxx
index 93350fc..db8128f 100644
--- a/sw/source/uibase/inc/redlndlg.hxx
+++ b/sw/source/uibase/inc/redlndlg.hxx
@@ -88,11 +88,11 @@ class SW_DLLPUBLIC SwRedlineAcceptDlg
     // prevent update dialog data during longer operations (cf #102657#)
     bool                    bInhibitActivate;
 
-    DECL_DLLPRIVATE_LINK( AcceptHdl,     void* );
-    DECL_DLLPRIVATE_LINK( AcceptAllHdl,  void* );
-    DECL_DLLPRIVATE_LINK( RejectHdl,     void* );
-    DECL_DLLPRIVATE_LINK( RejectAllHdl,  void* );
-    DECL_DLLPRIVATE_LINK( UndoHdl,           void* );
+    DECL_DLLPRIVATE_LINK_TYPED( AcceptHdl,     SvxTPView*, void );
+    DECL_DLLPRIVATE_LINK_TYPED( AcceptAllHdl,  SvxTPView*, void );
+    DECL_DLLPRIVATE_LINK_TYPED( RejectHdl,     SvxTPView*, void );
+    DECL_DLLPRIVATE_LINK_TYPED( RejectAllHdl,  SvxTPView*, void );
+    DECL_DLLPRIVATE_LINK_TYPED( UndoHdl,       SvxTPView*, void );
     DECL_DLLPRIVATE_LINK_TYPED( DeselectHdl, SvTreeListBox*, void );
     DECL_DLLPRIVATE_LINK_TYPED( SelectHdl,   SvTreeListBox*, void );
     DECL_DLLPRIVATE_LINK_TYPED( SelectTimerHdl, Timer*, void );
diff --git a/sw/source/uibase/misc/redlndlg.cxx b/sw/source/uibase/misc/redlndlg.cxx
index f6cd7eb..d0b544a 100644
--- a/sw/source/uibase/misc/redlndlg.cxx
+++ b/sw/source/uibase/misc/redlndlg.cxx
@@ -883,31 +883,27 @@ sal_uInt16 SwRedlineAcceptDlg::GetRedlinePos( const SvTreeListEntry& rEntry ) co
                                     rEntry.GetUserData())->pData)->pData );
 }
 
-IMPL_LINK_NOARG(SwRedlineAcceptDlg, AcceptHdl)
+IMPL_LINK_NOARG_TYPED(SwRedlineAcceptDlg, AcceptHdl, SvxTPView*, void)
 {
     CallAcceptReject( true, true );
-    return 0;
 }
 
-IMPL_LINK_NOARG(SwRedlineAcceptDlg, AcceptAllHdl)
+IMPL_LINK_NOARG_TYPED(SwRedlineAcceptDlg, AcceptAllHdl, SvxTPView*, void)
 {
     CallAcceptReject( false, true );
-    return 0;
 }
 
-IMPL_LINK_NOARG(SwRedlineAcceptDlg, RejectHdl)
+IMPL_LINK_NOARG_TYPED(SwRedlineAcceptDlg, RejectHdl, SvxTPView*, void)
 {
     CallAcceptReject( true, false );
-    return 0;
 }
 
-IMPL_LINK_NOARG(SwRedlineAcceptDlg, RejectAllHdl)
+IMPL_LINK_NOARG_TYPED(SwRedlineAcceptDlg, RejectAllHdl, SvxTPView*, void)
 {
     CallAcceptReject( false, false );
-    return 0;
 }
 
-IMPL_LINK_NOARG(SwRedlineAcceptDlg, UndoHdl)
+IMPL_LINK_NOARG_TYPED(SwRedlineAcceptDlg, UndoHdl, SvxTPView*, void)
 {
     SwView * pView = ::GetActiveView();
     pView->GetViewFrame()->GetDispatcher()->
@@ -915,8 +911,6 @@ IMPL_LINK_NOARG(SwRedlineAcceptDlg, UndoHdl)
     pTPView->EnableUndo(pView->GetSlotState(SID_UNDO) != 0);
 
     Activate();
-
-    return 0;
 }
 
 IMPL_LINK_NOARG_TYPED(SwRedlineAcceptDlg, FilterChangedHdl, SvxTPFilter*, void)
commit 8ad9cc042416c7b4ef89644b60928588f0505798
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 14:16:29 2015 +0200

    convert Link<> to typed
    
    Change-Id: Ia7bdaa3a02af8f81884d81d60c0f135af2f8aeae

diff --git a/include/svx/ctredlin.hxx b/include/svx/ctredlin.hxx
index f7c6bb8..2a225cb 100644
--- a/include/svx/ctredlin.hxx
+++ b/include/svx/ctredlin.hxx
@@ -170,13 +170,8 @@ class SVX_DLLPUBLIC SAL_WARN_UNUSED SvxTPFilter: public TabPage
 {
 private:
 
-    Link<>          aReadyLink;
-    Link<>          aModifyLink;
-    Link<>          aModifyDateLink;
-    Link<>          aModifyAuthorLink;
-    Link<>          aModifyRefLink;
-    Link<>          aRefLink;
-    Link<>          aModifyComLink;
+    Link<SvxTPFilter*,void>  aReadyLink;
+    Link<SvxTPFilter*,void>  aRefLink;
 
     VclPtr<SvxRedlinTable> pRedlinTable;
     VclPtr<CheckBox>       m_pCbDate;
@@ -197,7 +192,7 @@ private:
     VclPtr<ListBox>        m_pLbAction;
     VclPtr<CheckBox>       m_pCbComment;
     VclPtr<Edit>           m_pEdComment;
-    bool            bModified;
+    bool                   bModified;
 
     DECL_LINK( SelDateHdl, ListBox* );
     DECL_LINK_TYPED( RowEnableHdl, Button*, void );
@@ -264,11 +259,11 @@ public:
 
     ListBox*        GetLbAction() { return m_pLbAction;}
 
-    void            SetReadyHdl( const Link<>& rLink ) { aReadyLink= rLink; }
+    void            SetReadyHdl( const Link<SvxTPFilter*,void>& rLink ) { aReadyLink= rLink; }
 
 
     // Methods for Calc {
-    void            SetRefHdl( const Link<>& rLink ) { aRefLink = rLink; }
+    void            SetRefHdl( const Link<SvxTPFilter*,void>& rLink ) { aRefLink = rLink; }
 
     void            Enable( bool bEnable = true, bool bChild = true );
     void            Disable( bool bChild = true );
diff --git a/sc/source/ui/inc/acredlin.hxx b/sc/source/ui/inc/acredlin.hxx
index b5370f5..23de841 100644
--- a/sc/source/ui/inc/acredlin.hxx
+++ b/sc/source/ui/inc/acredlin.hxx
@@ -97,8 +97,8 @@ private:
     void            Init();
     void            InitFilter();
 
-    DECL_LINK( FilterHandle, SvxTPFilter* );
-    DECL_LINK( RefHandle, void* );
+    DECL_LINK_TYPED( FilterHandle, SvxTPFilter*, void );
+    DECL_LINK_TYPED( RefHandle, SvxTPFilter*, void );
     DECL_LINK( RejectHandle, SvxTPView*);
     DECL_LINK( AcceptHandle, SvxTPView*);
     DECL_LINK( RejectAllHandle, void*);
diff --git a/sc/source/ui/inc/highred.hxx b/sc/source/ui/inc/highred.hxx
index 2192e60..d9140ff 100644
--- a/sc/source/ui/inc/highred.hxx
+++ b/sc/source/ui/inc/highred.hxx
@@ -60,9 +60,9 @@ private:
 
     void                    Init();
 
-    DECL_LINK( RefHandle, SvxTPFilter* );
-    DECL_LINK_TYPED(HighlightHandle, Button*, void);
-    DECL_LINK_TYPED(OKBtnHdl, Button*, void);
+    DECL_LINK_TYPED( RefHandle, SvxTPFilter*, void );
+    DECL_LINK_TYPED( HighlightHandle, Button*, void );
+    DECL_LINK_TYPED( OKBtnHdl, Button*, void );
 
 protected:
 
diff --git a/sc/source/ui/miscdlgs/acredlin.cxx b/sc/source/ui/miscdlgs/acredlin.cxx
index b4c7bca..8a086f5 100644
--- a/sc/source/ui/miscdlgs/acredlin.cxx
+++ b/sc/source/ui/miscdlgs/acredlin.cxx
@@ -864,7 +864,7 @@ void ScAcceptChgDlg::UpdateView()
         pTheView->Select(pEntry);
 }
 
-IMPL_LINK_NOARG(ScAcceptChgDlg, RefHandle)
+IMPL_LINK_NOARG_TYPED(ScAcceptChgDlg, RefHandle, SvxTPFilter*, void)
 {
     sal_uInt16 nId  =ScSimpleRefDlgWrapper::GetChildWindowId();
 
@@ -888,7 +888,6 @@ IMPL_LINK_NOARG(ScAcceptChgDlg, RefHandle)
         pWin->SetText(GetText());
         pWnd->StartRefInput();
     }
-    return 0;
 }
 
 IMPL_LINK( ScAcceptChgDlg, RefInfoHandle, OUString*, pResult)
@@ -925,7 +924,7 @@ IMPL_LINK( ScAcceptChgDlg, RefInfoHandle, OUString*, pResult)
     return 0;
 }
 
-IMPL_LINK( ScAcceptChgDlg, FilterHandle, SvxTPFilter*, pRef )
+IMPL_LINK_TYPED( ScAcceptChgDlg, FilterHandle, SvxTPFilter*, pRef, void )
 {
     if(pRef!=NULL)
     {
@@ -934,7 +933,6 @@ IMPL_LINK( ScAcceptChgDlg, FilterHandle, SvxTPFilter*, pRef )
         aRangeList.Parse(pTPFilter->GetRange(),pDoc);
         UpdateView();
     }
-    return 0;
 }
 
 IMPL_LINK( ScAcceptChgDlg, RejectHandle, SvxTPView*, pRef )
diff --git a/sc/source/ui/miscdlgs/highred.cxx b/sc/source/ui/miscdlgs/highred.cxx
index d59aec0..177db44 100644
--- a/sc/source/ui/miscdlgs/highred.cxx
+++ b/sc/source/ui/miscdlgs/highred.cxx
@@ -202,7 +202,7 @@ IMPL_LINK_TYPED( ScHighlightChgDlg, HighlightHandle, Button*, pCb, void )
     }
 }
 
-IMPL_LINK( ScHighlightChgDlg, RefHandle, SvxTPFilter*, pRef )
+IMPL_LINK_TYPED( ScHighlightChgDlg, RefHandle, SvxTPFilter*, pRef, void )
 {
     if(pRef!=NULL)
     {
@@ -213,7 +213,6 @@ IMPL_LINK( ScHighlightChgDlg, RefHandle, SvxTPFilter*, pRef )
         m_pEdAssign->GrabFocus();
         ScAnyRefDlg::RefInputStart(m_pEdAssign, m_pRbAssign);
     }
-    return 0;
 }
 
 IMPL_LINK_TYPED( ScHighlightChgDlg, OKBtnHdl, Button*, pOKBtn, void )
diff --git a/svx/source/dialog/ctredlin.cxx b/svx/source/dialog/ctredlin.cxx
index 3a6d07b..17df654 100644
--- a/svx/source/dialog/ctredlin.cxx
+++ b/svx/source/dialog/ctredlin.cxx
@@ -971,30 +971,7 @@ IMPL_LINK( SvxTPFilter, ModifyHdl, void*, pCtr)
 {
     if(pCtr!=NULL)
     {
-        if (pCtr == m_pCbDate || pCtr == m_pLbDate ||
-            pCtr == m_pDfDate || pCtr == m_pTfDate ||
-            pCtr == m_pIbClock || pCtr == m_pFtDate2 ||
-            pCtr == m_pDfDate2 || pCtr == m_pTfDate2 ||
-            pCtr == m_pIbClock2)
-        {
-            aModifyDateLink.Call(this);
-        }
-        else if (pCtr == m_pCbAuthor || pCtr == m_pLbAuthor)
-        {
-            aModifyAuthorLink.Call(this);
-        }
-        else if (pCtr == m_pCbRange || pCtr == m_pLbAction || pCtr == m_pEdRange ||
-                pCtr == m_pBtnRange)
-        {
-            aModifyRefLink.Call(this);
-        }
-        else if (pCtr == m_pCbComment || pCtr == m_pEdComment)
-        {
-            aModifyComLink.Call(this);
-        }
-
         bModified=true;
-        aModifyLink.Call(this);
     }
     return 0;
 }
diff --git a/sw/source/ui/misc/swmodalredlineacceptdlg.cxx b/sw/source/ui/misc/swmodalredlineacceptdlg.cxx
index 252e264..05a4fb55 100644
--- a/sw/source/ui/misc/swmodalredlineacceptdlg.cxx
+++ b/sw/source/ui/misc/swmodalredlineacceptdlg.cxx
@@ -82,7 +82,7 @@ void SwModalRedlineAcceptDlg::AcceptAll( bool bAccept )
         pFilterTP->CheckAuthor(false);
         pFilterTP->CheckRange(false);
         pFilterTP->CheckAction(false);
-        pImplDlg->FilterChangedHdl();
+        pImplDlg->FilterChangedHdl(NULL);
     }
 
     pImplDlg->CallAcceptReject( false, bAccept );
diff --git a/sw/source/uibase/inc/redlndlg.hxx b/sw/source/uibase/inc/redlndlg.hxx
index 1019112..93350fc 100644
--- a/sw/source/uibase/inc/redlndlg.hxx
+++ b/sw/source/uibase/inc/redlndlg.hxx
@@ -114,7 +114,7 @@ public:
     SwRedlineAcceptDlg(vcl::Window *pParent, VclBuilderContainer *pBuilder, vcl::Window *pContentArea, bool bAutoFormat = false);
     virtual ~SwRedlineAcceptDlg();
 
-    DECL_LINK( FilterChangedHdl, void * = 0 );
+    DECL_LINK_TYPED( FilterChangedHdl, SvxTPFilter*, void );
 
     inline SvxAcceptChgCtr& GetChgCtrl()        { return *aTabPagesCTRL.get(); }
     inline bool     HasRedlineAutoFormat() const   { return bRedlnAutoFormat; }
diff --git a/sw/source/uibase/misc/redlndlg.cxx b/sw/source/uibase/misc/redlndlg.cxx
index fae6131..f6cd7eb 100644
--- a/sw/source/uibase/misc/redlndlg.cxx
+++ b/sw/source/uibase/misc/redlndlg.cxx
@@ -919,7 +919,7 @@ IMPL_LINK_NOARG(SwRedlineAcceptDlg, UndoHdl)
     return 0;
 }
 
-IMPL_LINK_NOARG(SwRedlineAcceptDlg, FilterChangedHdl)
+IMPL_LINK_NOARG_TYPED(SwRedlineAcceptDlg, FilterChangedHdl, SvxTPFilter*, void)
 {
     SvxTPFilter *pFilterTP = aTabPagesCTRL->GetFilterPage();
 
@@ -929,8 +929,6 @@ IMPL_LINK_NOARG(SwRedlineAcceptDlg, FilterChangedHdl)
         sFilterAction = aEmptyOUStr;
 
     Init();
-
-    return 0;
 }
 
 IMPL_LINK_NOARG_TYPED(SwRedlineAcceptDlg, DeselectHdl, SvTreeListBox*, void)
commit 60df720f79363b737eb533331e86535e1d66f1f5
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 14:05:36 2015 +0200

    convert Link<> to typed
    
    Change-Id: Ie59da1b457aa2ed5bdc6a26eefab4d4a3acf10b5

diff --git a/include/svx/ctredlin.hxx b/include/svx/ctredlin.hxx
index 9bcf102..f7c6bb8 100644
--- a/include/svx/ctredlin.hxx
+++ b/include/svx/ctredlin.hxx
@@ -104,7 +104,7 @@ private:
     Image           maEntryImage;
     OUString        maEntryString;
     utl::TextSearch* pCommentSearcher;
-    Link<>          aColCompareLink;
+    Link<const SvSortData*,sal_Int32>  aColCompareLink;
 
 protected:
 
@@ -162,7 +162,7 @@ public:
 
     virtual SvTreeListEntry* CreateEntry() const SAL_OVERRIDE;
 
-    void            SetColCompareHdl(const Link<>& rLink ) { aColCompareLink = rLink; }
+    void            SetColCompareHdl(const Link<const SvSortData*,sal_Int32>& rLink ) { aColCompareLink = rLink; }
 };
 
 /// Tabpage with the filter text entries etc.
diff --git a/sc/source/ui/inc/acredlin.hxx b/sc/source/ui/inc/acredlin.hxx
index b18442a..b5370f5 100644
--- a/sc/source/ui/inc/acredlin.hxx
+++ b/sc/source/ui/inc/acredlin.hxx
@@ -111,7 +111,7 @@ private:
     DECL_LINK( ChgTrackModHdl, ScChangeTrack*);
     DECL_LINK_TYPED( CommandHdl, SvSimpleTable*, void);
     DECL_LINK_TYPED( ReOpenTimerHdl, Idle*, void );
-    DECL_LINK( ColCompareHdl, SvSortData*);
+    DECL_LINK_TYPED( ColCompareHdl, const SvSortData*, sal_Int32);
 
 protected:
 
diff --git a/sc/source/ui/miscdlgs/acredlin.cxx b/sc/source/ui/miscdlgs/acredlin.cxx
index 1533022..b4c7bca 100644
--- a/sc/source/ui/miscdlgs/acredlin.cxx
+++ b/sc/source/ui/miscdlgs/acredlin.cxx
@@ -1864,7 +1864,7 @@ void ScAcceptChgDlg::InitFilter()
 #define CALC_DATE       3
 #define CALC_POS        1
 
-IMPL_LINK( ScAcceptChgDlg, ColCompareHdl, SvSortData*, pSortData )
+IMPL_LINK_TYPED( ScAcceptChgDlg, ColCompareHdl, const SvSortData*, pSortData, sal_Int32 )
 {
     sal_Int32 nCompare = 0;
     SCCOL nSortCol= static_cast<SCCOL>(pTheView->GetSortedCol());
commit e126468e5dbc4ef85fc4b6146e0ba73e85281f70
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 14:01:23 2015 +0200

    convert Link<> to typed
    
    Change-Id: I1140910c8e90a3022cc88ff33fa37db62007b745

diff --git a/cui/source/dialogs/cuicharmap.cxx b/cui/source/dialogs/cuicharmap.cxx
index c2329e5..07183e8 100644
--- a/cui/source/dialogs/cuicharmap.cxx
+++ b/cui/source/dialogs/cuicharmap.cxx
@@ -494,7 +494,7 @@ IMPL_LINK_NOARG(SvxCharacterMap, SubsetSelectHdl)
 
 
 
-IMPL_LINK_NOARG(SvxCharacterMap, CharDoubleClickHdl)
+IMPL_LINK_NOARG_TYPED(SvxCharacterMap, CharDoubleClickHdl, SvxShowCharSet*, void)
 {
     if (bOne)
     {
@@ -502,12 +502,11 @@ IMPL_LINK_NOARG(SvxCharacterMap, CharDoubleClickHdl)
         m_pShowText->SetText(OUString(&cChar, 1));
     }
     EndDialog( RET_OK );
-    return 0;
 }
 
 
 
-IMPL_LINK_NOARG(SvxCharacterMap, CharSelectHdl)
+IMPL_LINK_NOARG_TYPED(SvxCharacterMap, CharSelectHdl, SvxShowCharSet*, void)
 {
     if ( !bOne )
     {
@@ -535,12 +534,11 @@ IMPL_LINK_NOARG(SvxCharacterMap, CharSelectHdl)
 
     }
     m_pOKBtn->Enable();
-    return 0;
 }
 
 
 
-IMPL_LINK_NOARG(SvxCharacterMap, CharHighlightHdl)
+IMPL_LINK_NOARG_TYPED(SvxCharacterMap, CharHighlightHdl, SvxShowCharSet*, void)
 {
     OUString aText;
     sal_UCS4 cChar = m_pShowSet->GetSelectCharacter();
@@ -573,13 +571,11 @@ IMPL_LINK_NOARG(SvxCharacterMap, CharHighlightHdl)
         aText = OUString::createFromAscii(aBuf);
     }
     m_pCharCodeText->SetText( aText );
-
-    return 0;
 }
 
 
 
-IMPL_LINK_NOARG(SvxCharacterMap, CharPreSelectHdl)
+IMPL_LINK_NOARG_TYPED(SvxCharacterMap, CharPreSelectHdl, SvxShowCharSet*, void)
 {
     // adjust subset selection
     if( pSubsetMap )
@@ -591,7 +587,6 @@ IMPL_LINK_NOARG(SvxCharacterMap, CharPreSelectHdl)
     }
 
     m_pOKBtn->Enable();
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/inc/cuicharmap.hxx b/cui/source/inc/cuicharmap.hxx
index fb0a61f..c3967d2 100644
--- a/cui/source/inc/cuicharmap.hxx
+++ b/cui/source/inc/cuicharmap.hxx
@@ -84,10 +84,10 @@ private:
     DECL_LINK_TYPED(OKHdl, Button*, void);
     DECL_LINK(FontSelectHdl, void *);
     DECL_LINK(SubsetSelectHdl, void *);
-    DECL_LINK(CharDoubleClickHdl, void *);
-    DECL_LINK(CharSelectHdl, void *);
-    DECL_LINK(CharHighlightHdl, void *);
-    DECL_LINK(CharPreSelectHdl, void *);
+    DECL_LINK_TYPED(CharDoubleClickHdl, SvxShowCharSet*,void);
+    DECL_LINK_TYPED(CharSelectHdl, SvxShowCharSet*, void);
+    DECL_LINK_TYPED(CharHighlightHdl, SvxShowCharSet*, void);
+    DECL_LINK_TYPED(CharPreSelectHdl, SvxShowCharSet*, void);
 
     static void fillAllSubsets(ListBox &rListBox);
 
diff --git a/include/svx/charmap.hxx b/include/svx/charmap.hxx
index e23f941..c57cf37 100644
--- a/include/svx/charmap.hxx
+++ b/include/svx/charmap.hxx
@@ -50,14 +50,14 @@ public:
     void            SelectCharacter( sal_uInt32 cNew, bool bFocus = false );
     sal_UCS4        GetSelectCharacter() const;
 
-    void            SetDoubleClickHdl( const Link<>& rLink ) { aDoubleClkHdl = rLink; }
-    void            SetSelectHdl( const Link<>& rHdl ) { aSelectHdl = rHdl; }
-    void            SetHighlightHdl( const Link<>& rHdl ) { aHighHdl = rHdl; }
-    void            SetPreSelectHdl( const Link<>& rHdl ) { aPreSelectHdl = rHdl; }
+    void            SetDoubleClickHdl( const Link<SvxShowCharSet*,void>& rLink ) { aDoubleClkHdl = rLink; }
+    void            SetSelectHdl( const Link<SvxShowCharSet*,void>& rHdl ) { aSelectHdl = rHdl; }
+    void            SetHighlightHdl( const Link<SvxShowCharSet*,void>& rHdl ) { aHighHdl = rHdl; }
+    void            SetPreSelectHdl( const Link<SvxShowCharSet*,void>& rHdl ) { aPreSelectHdl = rHdl; }
     static sal_uInt32& getSelectedChar();
     void            SetFont( const vcl::Font& rFont );
 
-    svx::SvxShowCharSetItem*  ImplGetItem( int _nPos );
+    svx::SvxShowCharSetItem*    ImplGetItem( int _nPos );
     int                         FirstInView() const;
     int                         LastInView() const;
     int                         PixelToMapIndex( const Point&) const;
@@ -92,10 +92,10 @@ protected:
 private:
     typedef std::map<sal_Int32, std::shared_ptr<svx::SvxShowCharSetItem> > ItemsMap;
     ItemsMap        m_aItems;
-    Link<>          aDoubleClkHdl;
-    Link<>          aSelectHdl;
-    Link<>          aHighHdl;
-    Link<>          aPreSelectHdl;
+    Link<SvxShowCharSet*,void>     aDoubleClkHdl;
+    Link<SvxShowCharSet*,void>     aSelectHdl;
+    Link<SvxShowCharSet*,void>     aHighHdl;
+    Link<SvxShowCharSet*,void>     aPreSelectHdl;
     svx::SvxShowCharSetVirtualAcc* m_pAccessible;
     css::uno::Reference<css::accessibility::XAccessible> m_xAccessible;
     long            nX;
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx
index 7ac0f97..1c7642c 100644
--- a/starmath/inc/dialog.hxx
+++ b/starmath/inc/dialog.hxx
@@ -438,7 +438,7 @@ class SmSymDefineDialog : public ModalDialog
     DECL_LINK(FontChangeHdl, ListBox *);
     DECL_LINK(SubsetChangeHdl, ListBox*);
     DECL_LINK(StyleChangeHdl, ComboBox *);
-    DECL_LINK(CharHighlightHdl, void *);
+    DECL_LINK_TYPED(CharHighlightHdl, SvxShowCharSet*, void);
     DECL_LINK_TYPED(AddClickHdl, Button *, void);
     DECL_LINK_TYPED(ChangeClickHdl, Button *, void);
     DECL_LINK_TYPED(DeleteClickHdl, Button *, void);
diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx
index 417594c..f43e831 100644
--- a/starmath/source/dialog.cxx
+++ b/starmath/source/dialog.cxx
@@ -1878,7 +1878,7 @@ IMPL_LINK( SmSymDefineDialog, StyleChangeHdl, ComboBox *, pComboBox )
 }
 
 
-IMPL_LINK_NOARG(SmSymDefineDialog, CharHighlightHdl)
+IMPL_LINK_NOARG_TYPED(SmSymDefineDialog, CharHighlightHdl, SvxShowCharSet*, void)
 {
    sal_UCS4 cChar = pCharsetDisplay->GetSelectCharacter();
 
@@ -1905,8 +1905,6 @@ IMPL_LINK_NOARG(SmSymDefineDialog, CharHighlightHdl)
     aUnicodePos += aHex;
     pSymbols->SetText( aUnicodePos );
     pSymbolName->SetText( aUnicodePos );
-
-    return 0;
 }
 
 
commit b4deeef405fc4200c1b33d2cecf7b301417b2398
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 13:54:44 2015 +0200

    convert Link<> to typed
    
    Change-Id: Ia520982b6764994fc4ab02cb12d1bd051e37883a

diff --git a/dbaccess/source/ui/inc/WCopyTable.hxx b/dbaccess/source/ui/inc/WCopyTable.hxx
index 711d9c1..b5db837 100644
--- a/dbaccess/source/ui/inc/WCopyTable.hxx
+++ b/dbaccess/source/ui/inc/WCopyTable.hxx
@@ -282,7 +282,7 @@ namespace dbaui
         DECL_LINK_TYPED( ImplPrevHdl, Button*, void );
         DECL_LINK_TYPED( ImplNextHdl, Button*, void);
         DECL_LINK_TYPED( ImplOKHdl, Button*, void );
-        DECL_LINK( ImplActivateHdl, void* );
+        DECL_LINK_TYPED( ImplActivateHdl, WizardDialog*, void );
         bool CheckColumns(sal_Int32& _rnBreakPos);
         void loadData( const ICopyTableSourceObject& _rSourceObject,
                        ODatabaseExport::TColumns& _rColumns,
diff --git a/dbaccess/source/ui/misc/WCopyTable.cxx b/dbaccess/source/ui/misc/WCopyTable.cxx
index 1baf3a9..8ab22d6 100644
--- a/dbaccess/source/ui/misc/WCopyTable.cxx
+++ b/dbaccess/source/ui/misc/WCopyTable.cxx
@@ -937,7 +937,7 @@ void OCopyTableWizard::setCreatePrimaryKey( bool _bDoCreate, const OUString& _rS
         pSettingsPage->setCreatePrimaryKey( _bDoCreate, _rSuggestedName );
 }
 
-IMPL_LINK_NOARG(OCopyTableWizard, ImplActivateHdl)
+IMPL_LINK_NOARG_TYPED(OCopyTableWizard, ImplActivateHdl, WizardDialog*, void)
 {
     OWizardPage* pCurrent = static_cast<OWizardPage*>(GetPage(GetCurLevel()));
     if(pCurrent)
@@ -952,7 +952,6 @@ IMPL_LINK_NOARG(OCopyTableWizard, ImplActivateHdl)
 
         Invalidate();
     }
-    return 0;
 }
 
 void OCopyTableWizard::CheckButtons()
diff --git a/include/svtools/wizdlg.hxx b/include/svtools/wizdlg.hxx
index 6ae5c03..984ec15 100644
--- a/include/svtools/wizdlg.hxx
+++ b/include/svtools/wizdlg.hxx
@@ -198,20 +198,19 @@ IMPL_LINK( MyWizardDlg, ImplNextHdl, PushButton*, pBtn )
 class SVT_DLLPUBLIC WizardDialog : public ModalDialog
 {
 private:
-    Idle               maWizardLayoutIdle;
-    Size                maPageSize;
-    ImplWizPageData*    mpFirstPage;
-    ImplWizButtonData*  mpFirstBtn;
+    Idle                    maWizardLayoutIdle;
+    Size                    maPageSize;
+    ImplWizPageData*        mpFirstPage;
+    ImplWizButtonData*      mpFirstBtn;
     VclPtr<TabPage>         mpCurTabPage;
     VclPtr<PushButton>      mpPrevBtn;
     VclPtr<PushButton>      mpNextBtn;
     VclPtr<vcl::Window>     mpViewWindow;
     sal_uInt16              mnCurLevel;
-    WindowAlign         meViewAlign;
-    Link<>              maActivateHdl;
-    Link<>              maDeactivateHdl;
-    sal_Int16           mnLeftAlignCount;
-    bool                mbEmptyViewMargin;
+    WindowAlign             meViewAlign;
+    Link<WizardDialog*,void>  maActivateHdl;
+    sal_Int16               mnLeftAlignCount;
+    bool                    mbEmptyViewMargin;
 
     DECL_DLLPRIVATE_LINK_TYPED( ImplHandleWizardLayoutTimerHdl, Idle*, void );
     bool hasWizardPendingLayout() const;
@@ -276,7 +275,7 @@ public:
     void                SetPageSizePixel( const Size& rSize ) { maPageSize = rSize; }
     const Size&         GetPageSizePixel() const { return maPageSize; }
 
-    void                SetActivatePageHdl( const Link<>& rLink ) { maActivateHdl = rLink; }
+    void                SetActivatePageHdl( const Link<WizardDialog*,void>& rLink ) { maActivateHdl = rLink; }
 };
 
 #endif // INCLUDED_SVTOOLS_WIZDLG_HXX
diff --git a/svtools/source/dialogs/wizdlg.cxx b/svtools/source/dialogs/wizdlg.cxx
index b35b901..185725b 100644
--- a/svtools/source/dialogs/wizdlg.cxx
+++ b/svtools/source/dialogs/wizdlg.cxx
@@ -492,10 +492,7 @@ void WizardDialog::ActivatePage()
 
 bool WizardDialog::DeactivatePage()
 {
-    if ( maDeactivateHdl.IsSet() )
-        return maDeactivateHdl.Call( this );
-    else
-        return true;
+    return true;
 }
 
 
commit 8d927d3f82a33a464662e4b54a8a07d30d4d1a19
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Sep 7 13:48:23 2015 +0200

    convert Link<> to typed
    
    Change-Id: Ia2706c308c6297d05b2862e9f86fc0f2ee90e4f0

diff --git a/chart2/source/controller/dialogs/tp_ChartType.cxx b/chart2/source/controller/dialogs/tp_ChartType.cxx
index 0a819d6..211703e 100644
--- a/chart2/source/controller/dialogs/tp_ChartType.cxx
+++ b/chart2/source/controller/dialogs/tp_ChartType.cxx
@@ -882,7 +882,7 @@ ChartTypeDialogController* ChartTypeTabPage::getSelectedMainType()
         pTypeController = m_aChartTypeDialogControllerList[nM];
     return pTypeController;
 }
-IMPL_LINK_NOARG(ChartTypeTabPage, SelectSubTypeHdl)
+IMPL_LINK_NOARG_TYPED(ChartTypeTabPage, SelectSubTypeHdl, ValueSet*, void)
 {
     if( m_pCurrentMainType )
     {
@@ -892,7 +892,6 @@ IMPL_LINK_NOARG(ChartTypeTabPage, SelectSubTypeHdl)
         if( m_bDoLiveUpdate )
             commitToModel( aParameter );
     }
-    return 0;
 }
 
 IMPL_LINK_NOARG(ChartTypeTabPage, SelectMainTypeHdl)
diff --git a/chart2/source/controller/dialogs/tp_ChartType.hxx b/chart2/source/controller/dialogs/tp_ChartType.hxx
index 4ed830b..fb93114 100644
--- a/chart2/source/controller/dialogs/tp_ChartType.hxx
+++ b/chart2/source/controller/dialogs/tp_ChartType.hxx
@@ -75,7 +75,7 @@ protected:
     void selectMainType();
 
     DECL_LINK( SelectMainTypeHdl, void* );
-    DECL_LINK( SelectSubTypeHdl, void* );
+    DECL_LINK_TYPED( SelectSubTypeHdl, ValueSet*, void );
 
 protected:
     VclPtr<FixedText>  m_pFT_ChooseType;
diff --git a/cui/source/dialogs/hangulhanjadlg.cxx b/cui/source/dialogs/hangulhanjadlg.cxx
index 5144fdd..3892484 100644
--- a/cui/source/dialogs/hangulhanjadlg.cxx
+++ b/cui/source/dialogs/hangulhanjadlg.cxx
@@ -369,7 +369,7 @@ namespace svx
         , m_aListBox( VclPtr<ListBox>::Create(this,GetStyle() | WB_BORDER) )
         , m_bInSelectionUpdate( false )
     {
-        m_aValueSet->SetSelectHdl( LINK( this, SuggestionDisplay, SelectSuggestionHdl ) );
+        m_aValueSet->SetSelectHdl( LINK( this, SuggestionDisplay, SelectSuggestionValueSetHdl ) );
         m_aListBox->SetSelectHdl( LINK( this, SuggestionDisplay, SelectSuggestionHdl ) );
 
         m_aValueSet->SetLineCount( LINE_CNT );
@@ -479,6 +479,10 @@ namespace svx
         }
     }
 
+    IMPL_LINK_TYPED( SuggestionDisplay, SelectSuggestionValueSetHdl, ValueSet*, pControl, void )
+    {
+        SelectSuggestionHdl(pControl);
+    }
     IMPL_LINK( SuggestionDisplay, SelectSuggestionHdl, Control*, pControl )
     {
         if( m_bInSelectionUpdate )
diff --git a/cui/source/inc/backgrnd.hxx b/cui/source/inc/backgrnd.hxx
index 946d9c2..3e2ca3d 100644
--- a/cui/source/inc/backgrnd.hxx
+++ b/cui/source/inc/backgrnd.hxx
@@ -137,7 +137,7 @@ private:
     DECL_LINK_TYPED(BrowseHdl_Impl, Button*, void);
     DECL_LINK_TYPED( RadioClickHdl_Impl, Button*, void );
     DECL_LINK_TYPED( FileClickHdl_Impl, Button*, void );
-    DECL_LINK(BackgroundColorHdl_Impl, void *);
+    DECL_LINK_TYPED(BackgroundColorHdl_Impl, ValueSet*, void);
     DECL_LINK( TblDestinationHdl_Impl, ListBox* );
 };
 
diff --git a/cui/source/inc/border.hxx b/cui/source/inc/border.hxx
index 2fe47b7..23d107b 100644
--- a/cui/source/inc/border.hxx
+++ b/cui/source/inc/border.hxx
@@ -118,8 +118,8 @@ private:
     // Handler
     DECL_LINK( SelStyleHdl_Impl, ListBox* );
     DECL_LINK( SelColHdl_Impl, ListBox* );
-    DECL_LINK( SelPreHdl_Impl, void* );
-    DECL_LINK( SelSdwHdl_Impl, void* );
+    DECL_LINK_TYPED( SelPreHdl_Impl, ValueSet*, void );
+    DECL_LINK_TYPED( SelSdwHdl_Impl, ValueSet*, void );
     DECL_LINK( LinesChanged_Impl, void* );
     DECL_LINK( ModifyDistanceHdl_Impl, MetricField*);
     DECL_LINK( ModifyWidthHdl_Impl, void*);
diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index df64bd8..f3b003d 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -720,7 +720,7 @@ private:
     DECL_LINK_TYPED( ClickWorkOnHdl_Impl, Button*, void );
 
     DECL_LINK( SelectColorLBHdl_Impl, void * );
-    DECL_LINK( SelectValSetHdl_Impl, void * );
+    DECL_LINK_TYPED( SelectValSetHdl_Impl, ValueSet*, void );
     DECL_LINK( SelectColorModelHdl_Impl, void * );
     void ChangeColor(const Color &rNewColor);
     DECL_LINK( ModifiedHdl_Impl, void * );
diff --git a/cui/source/inc/hangulhanjadlg.hxx b/cui/source/inc/hangulhanjadlg.hxx
index 5598a59..711a037 100644
--- a/cui/source/inc/hangulhanjadlg.hxx
+++ b/cui/source/inc/hangulhanjadlg.hxx
@@ -80,6 +80,7 @@ namespace svx
         virtual void Command( const CommandEvent& rCEvt ) SAL_OVERRIDE;
 
         DECL_LINK( SelectSuggestionHdl, Control* );
+        DECL_LINK_TYPED( SelectSuggestionValueSetHdl, ValueSet*, void );
 
         void SetHelpIds();
 
diff --git a/cui/source/inc/labdlg.hxx b/cui/source/inc/labdlg.hxx
index 7355781..14469df 100644
--- a/cui/source/inc/labdlg.hxx
+++ b/cui/source/inc/labdlg.hxx
@@ -68,7 +68,7 @@ private:
     DECL_LINK( AnsatzSelectHdl_Impl, ListBox * );
     DECL_LINK( AnsatzRelSelectHdl_Impl, ListBox * );
     DECL_LINK_TYPED( LineOptHdl_Impl, Button *, void );
-    DECL_LINK( SelectCaptTypeHdl_Impl, void * );
+    DECL_LINK_TYPED( SelectCaptTypeHdl_Impl, ValueSet*, void );
 
     const SfxItemSet&   rOutAttrs;
     const SdrView*      pView;
diff --git a/cui/source/inc/numpages.hxx b/cui/source/inc/numpages.hxx
index 37453a6..790915f 100644
--- a/cui/source/inc/numpages.hxx
+++ b/cui/source/inc/numpages.hxx
@@ -37,6 +37,7 @@ class SvxNumRule;
 class SvxBmpNumValueSet;
 class SvxNumValueSet;
 class SvxBrushItem;
+class ValueSet;
 
 class SvxNumberingPreview : public vcl::Window
 {
@@ -96,8 +97,8 @@ class SvxSingleNumPickTabPage : public SfxTabPage
     sal_uInt16              nNumItemId;
 
 protected:
-        DECL_LINK(NumSelectHdl_Impl, void *);
-        DECL_LINK(DoubleClickHdl_Impl, void *);
+        DECL_LINK_TYPED(NumSelectHdl_Impl, ValueSet*, void);
+        DECL_LINK_TYPED(DoubleClickHdl_Impl, ValueSet*, void);
 
 public:
         SvxSingleNumPickTabPage(vcl::Window* pParent,
@@ -125,15 +126,15 @@ class SvxBulletPickTabPage : public SfxTabPage
     VclPtr<SvxNumValueSet>     m_pExamplesVS;
     SvxNumRule*         pActNum;
     SvxNumRule*         pSaveNum;
-    sal_uInt16              nActNumLvl;
+    sal_uInt16          nActNumLvl;
     bool                bModified   : 1;
     bool                bPreset     : 1;
-    sal_uInt16              nNumItemId;
+    sal_uInt16          nNumItemId;
 
     OUString            sBulletCharFormatName;
 protected:
-        DECL_LINK(NumSelectHdl_Impl, void *);
-        DECL_LINK(DoubleClickHdl_Impl, void *);
+        DECL_LINK_TYPED(NumSelectHdl_Impl, ValueSet*, void);
+        DECL_LINK_TYPED(DoubleClickHdl_Impl, ValueSet*, void);
 public:
         SvxBulletPickTabPage(vcl::Window* pParent,
                                const SfxItemSet& rSet);
@@ -175,8 +176,8 @@ class SvxNumPickTabPage : public SfxTabPage
 
 
 protected:
-        DECL_LINK(NumSelectHdl_Impl, void *);
-        DECL_LINK(DoubleClickHdl_Impl, void *);
+        DECL_LINK_TYPED(NumSelectHdl_Impl, ValueSet*, void);
+        DECL_LINK_TYPED(DoubleClickHdl_Impl, ValueSet*, void);
 
 public:
     SvxNumPickTabPage(vcl::Window* pParent,
@@ -221,8 +222,8 @@ class SvxBitmapPickTabPage : public SfxTabPage
     bool                bPreset     : 1;
 
 protected:
-        DECL_LINK(NumSelectHdl_Impl, void *);
-        DECL_LINK(DoubleClickHdl_Impl, void *);
+        DECL_LINK_TYPED(NumSelectHdl_Impl, ValueSet*, void);
+        DECL_LINK_TYPED(DoubleClickHdl_Impl, ValueSet*, void);
         DECL_LINK_TYPED(ClickAddBrowseHdl_Impl, Button*, void );
 
 
diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx
index 04193d1..9f12dc0 100644
--- a/cui/source/options/optchart.cxx
+++ b/cui/source/options/optchart.cxx
@@ -261,7 +261,7 @@ IMPL_LINK( SvxDefaultColorOptPage, ListClickedHdl, ColorLB*, _pColorList )
     return 0L;
 }
 
-IMPL_LINK_NOARG(SvxDefaultColorOptPage, BoxClickedHdl)
+IMPL_LINK_NOARG_TYPED(SvxDefaultColorOptPage, BoxClickedHdl, ValueSet*, void)
 {
     sal_Int32 nIdx = m_pLbChartColors->GetSelectEntryPos();
     if( nIdx != LISTBOX_ENTRY_NOTFOUND )
@@ -273,8 +273,6 @@ IMPL_LINK_NOARG(SvxDefaultColorOptPage, BoxClickedHdl)
 
         m_pLbChartColors->SelectEntryPos( nIdx );  // reselect entry
     }
-
-    return 0L;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optchart.hxx b/cui/source/options/optchart.hxx
index 17f6af3..8046c1d 100644
--- a/cui/source/options/optchart.hxx
+++ b/cui/source/options/optchart.hxx
@@ -47,7 +47,7 @@ private:
     DECL_LINK_TYPED( AddChartColor, Button *, void );
     DECL_LINK_TYPED( RemoveChartColor, Button *, void );
     DECL_LINK( ListClickedHdl, ColorLB * );
-    DECL_LINK(BoxClickedHdl, void *);
+    DECL_LINK_TYPED(BoxClickedHdl, ValueSet*, void);
 
     void FillColorBox();
     long GetColorIndex( const Color& rCol );
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index 1076458..9939e63 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -1141,13 +1141,12 @@ SvxGraphicPosition SvxBackgroundTabPage::GetGraphicPosition_Impl()
 // Handler
 
 /** Handler, called when color selection is changed */
-IMPL_LINK_NOARG(SvxBackgroundTabPage, BackgroundColorHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxBackgroundTabPage, BackgroundColorHdl_Impl, ValueSet*, void)
 {
     sal_uInt16 nItemId = m_pBackgroundColorSet->GetSelectItemId();
     Color aColor = nItemId ? ( m_pBackgroundColorSet->GetItemColor( nItemId ) ) : Color( COL_TRANSPARENT );
     aBgdColor = aColor;
     m_pPreviewWin1->NotifyChange( aBgdColor );
-    return 0;
 }
 
 IMPL_LINK_NOARG(SvxBackgroundTabPage, SelectHdl_Impl)
diff --git a/cui/source/tabpages/border.cxx b/cui/source/tabpages/border.cxx
index bcd3846..8a6839d 100644
--- a/cui/source/tabpages/border.cxx
+++ b/cui/source/tabpages/border.cxx
@@ -770,7 +770,7 @@ void SvxBorderTabPage::HideShadowControls()
 
 
 
-IMPL_LINK_NOARG(SvxBorderTabPage, SelPreHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxBorderTabPage, SelPreHdl_Impl, ValueSet*, void)
 {
     const svx::FrameBorderState SHOW = svx::FRAMESTATE_SHOW;
     const svx::FrameBorderState HIDE = svx::FRAMESTATE_HIDE;
@@ -837,19 +837,17 @@ IMPL_LINK_NOARG(SvxBorderTabPage, SelPreHdl_Impl)
     m_pWndPresets->SetNoSelection();
 
     LinesChanged_Impl( 0 );
-    return 0;
 }
 
 
 
-IMPL_LINK_NOARG(SvxBorderTabPage, SelSdwHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxBorderTabPage, SelSdwHdl_Impl, ValueSet*, void)
 {
     bool bEnable = m_pWndShadows->GetSelectItemId() > 1;
     m_pFtShadowSize->Enable(bEnable);
     m_pEdShadowSize->Enable(bEnable);
     m_pFtShadowColor->Enable(bEnable);
     m_pLbShadowColor->Enable(bEnable);
-    return 0;
 }
 
 
diff --git a/cui/source/tabpages/labdlg.cxx b/cui/source/tabpages/labdlg.cxx
index f26fe3c..3a1c7fb 100644
--- a/cui/source/tabpages/labdlg.cxx
+++ b/cui/source/tabpages/labdlg.cxx
@@ -459,10 +459,9 @@ IMPL_LINK_TYPED( SvxCaptionTabPage, LineOptHdl_Impl, Button *, pButton, void )
 
 
 
-IMPL_LINK_NOARG(SvxCaptionTabPage, SelectCaptTypeHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxCaptionTabPage, SelectCaptTypeHdl_Impl, ValueSet*, void)
 {
     SetupType_Impl( m_pCT_CAPTTYPE->GetSelectItemId() );
-    return 0;
 }
 
 void SvxCaptionTabPage::SetupType_Impl( sal_uInt16 nType )
diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx
index f1f5257..61c3d6f 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -327,7 +327,7 @@ void  SvxSingleNumPickTabPage::Reset( const SfxItemSet* rSet )
         *pActNum = *pSaveNum;
 }
 
-IMPL_LINK_NOARG(SvxSingleNumPickTabPage, NumSelectHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxSingleNumPickTabPage, NumSelectHdl_Impl, ValueSet*, void)
 {
     if(pActNum)
     {
@@ -336,7 +336,7 @@ IMPL_LINK_NOARG(SvxSingleNumPickTabPage, NumSelectHdl_Impl)
         sal_uInt16 nIdx = m_pExamplesVS->GetSelectItemId() - 1;
         DBG_ASSERT(aNumSettingsArr.size() > nIdx, "wrong index");
         if(aNumSettingsArr.size() <= nIdx)
-            return 0;
+            return;
         SvxNumSettings_Impl* _pSet = &aNumSettingsArr[nIdx];
         sal_Int16 eNewType = _pSet->nNumberType;
         const sal_Unicode cLocalPrefix = !_pSet->sPrefix.isEmpty() ? _pSet->sPrefix[0] : 0;
@@ -362,18 +362,16 @@ IMPL_LINK_NOARG(SvxSingleNumPickTabPage, NumSelectHdl_Impl)
                 aFmt.SetBulletRelSize(100);
                 pActNum->SetLevel(i, aFmt);
             }
-            nMask <<= 1 ;
+            nMask <<= 1;
         }
     }
-    return 0;
 }
 
-IMPL_LINK_NOARG(SvxSingleNumPickTabPage, DoubleClickHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxSingleNumPickTabPage, DoubleClickHdl_Impl, ValueSet*, void)
 {
     NumSelectHdl_Impl(m_pExamplesVS);
     PushButton& rOk = GetTabDialog()->GetOKButton();
     rOk.GetClickHdl().Call(&rOk);
-    return 0;
 }
 
 
@@ -494,7 +492,7 @@ void  SvxBulletPickTabPage::Reset( const SfxItemSet* rSet )
         *pActNum = *pSaveNum;
 }
 
-IMPL_LINK_NOARG(SvxBulletPickTabPage, NumSelectHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxBulletPickTabPage, NumSelectHdl_Impl, ValueSet*, void)
 {
     if(pActNum)
     {
@@ -523,17 +521,14 @@ IMPL_LINK_NOARG(SvxBulletPickTabPage, NumSelectHdl_Impl)
             nMask <<= 1;
         }
     }
-
-    return 0;
 }
 
 
-IMPL_LINK_NOARG(SvxBulletPickTabPage, DoubleClickHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxBulletPickTabPage, DoubleClickHdl_Impl, ValueSet*, void)
 {
     NumSelectHdl_Impl(m_pExamplesVS);
     PushButton& rOk = GetTabDialog()->GetOKButton();
     rOk.GetClickHdl().Call(&rOk);
-    return 0;
 }
 
 
@@ -702,7 +697,7 @@ void  SvxNumPickTabPage::Reset( const SfxItemSet* rSet )
 }
 
 // all levels are changed here
-IMPL_LINK_NOARG(SvxNumPickTabPage, NumSelectHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxNumPickTabPage, NumSelectHdl_Impl, ValueSet*, void)
 {
     if(pActNum)
     {
@@ -785,15 +780,13 @@ IMPL_LINK_NOARG(SvxNumPickTabPage, NumSelectHdl_Impl)
             pActNum->SetLevel(i, aFmt);
         }
     }
-    return 0;
 }
 
-IMPL_LINK_NOARG(SvxNumPickTabPage, DoubleClickHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxNumPickTabPage, DoubleClickHdl_Impl, ValueSet*, void)
 {
     NumSelectHdl_Impl(m_pExamplesVS);
     PushButton& rOk = GetTabDialog()->GetOKButton();
     rOk.GetClickHdl().Call(&rOk);
-    return 0;
 }
 
 void SvxNumPickTabPage::PageCreated(const SfxAllItemSet& aSet)
@@ -962,7 +955,7 @@ void  SvxBitmapPickTabPage::Reset( const SfxItemSet* rSet )
         *pActNum = *pSaveNum;
 }
 
-IMPL_LINK_NOARG(SvxBitmapPickTabPage, NumSelectHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxBitmapPickTabPage, NumSelectHdl_Impl, ValueSet*, void)
 {
     if(pActNum)
     {
@@ -995,19 +988,16 @@ IMPL_LINK_NOARG(SvxBitmapPickTabPage, NumSelectHdl_Impl)
                     aFmt.SetGraphic( aGrfNames[nIdx] );
                 pActNum->SetLevel(i, aFmt);
             }
-            nMask <<= 1 ;
+            nMask <<= 1;
         }
     }
-
-    return 0;
 }
 
-IMPL_LINK_NOARG(SvxBitmapPickTabPage, DoubleClickHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxBitmapPickTabPage, DoubleClickHdl_Impl, ValueSet*, void)
 {
     NumSelectHdl_Impl(m_pExamplesVS);
     PushButton& rOk = GetTabDialog()->GetOKButton();
     rOk.GetClickHdl().Call(&rOk);
-    return 0;
 }
 
 IMPL_LINK_NOARG_TYPED(SvxBitmapPickTabPage, ClickAddBrowseHdl_Impl, Button*, void)
diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx
index 3d1391a..a1c4174 100644
--- a/cui/source/tabpages/tpcolor.cxx
+++ b/cui/source/tabpages/tpcolor.cxx
@@ -938,7 +938,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, SelectColorLBHdl_Impl)
 
 
 
-IMPL_LINK_NOARG(SvxColorTabPage, SelectValSetHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxColorTabPage, SelectValSetHdl_Impl, ValueSet*, void)
 {
     sal_Int32 nPos = m_pValSetColorList->GetSelectItemId();
     if( nPos != LISTBOX_ENTRY_NOTFOUND )
@@ -957,7 +957,6 @@ IMPL_LINK_NOARG(SvxColorTabPage, SelectValSetHdl_Impl)
         XColorEntry* pEntry = pColorList->GetColor(nPos-1);
         ChangeColor(pEntry->GetColor());
     }
-    return 0;
 }
 
 
diff --git a/include/svtools/toolbarmenu.hxx b/include/svtools/toolbarmenu.hxx
index c027f04..5cbf609 100644
--- a/include/svtools/toolbarmenu.hxx
+++ b/include/svtools/toolbarmenu.hxx
@@ -105,7 +105,7 @@ protected:
     void            DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
 
 private:
-    DECL_LINK( HighlightHdl, Control * );
+    DECL_LINK_TYPED( HighlightHdl, ValueSet*, void );
 
     void initStatusListener();
 
diff --git a/include/svtools/valueset.hxx b/include/svtools/valueset.hxx
index 3ad941c..7215a2c 100644
--- a/include/svtools/valueset.hxx
+++ b/include/svtools/valueset.hxx
@@ -222,9 +222,9 @@ private:
     sal_uInt16      mnSpacing;
     DrawFrameStyle  mnFrameStyle;
     Color           maColor;
-    Link<>          maDoubleClickHdl;
-    Link<>          maSelectHdl;
-    Link<>          maHighlightHdl;
+    Link<ValueSet*,void>  maDoubleClickHdl;
+    Link<ValueSet*,void>  maSelectHdl;
+    Link<ValueSet*,void>  maHighlightHdl;
 
     // bitfield
     bool            mbFormat : 1;
@@ -386,16 +386,16 @@ public:
     Size            CalcItemSizePixel(const Size& rSize, bool bOut = true) const;
     long            GetScrollWidth() const;
 
-    void            SetSelectHdl(const Link<>& rLink)
+    void            SetSelectHdl(const Link<ValueSet*,void>& rLink)
     {
         maSelectHdl = rLink;
     }
-    void            SetDoubleClickHdl(const Link<>& rLink)
+    void            SetDoubleClickHdl(const Link<ValueSet*,void>& rLink)
     {
         maDoubleClickHdl = rLink;
     }
 
-    void            SetHighlightHdl(const Link<>& rLink);
+    void            SetHighlightHdl(const Link<ValueSet*,void>& rLink);
 
     bool GetEdgeBlending() const
     {
diff --git a/include/svx/colrctrl.hxx b/include/svx/colrctrl.hxx
index 556f5e8..2af321b 100644
--- a/include/svx/colrctrl.hxx
+++ b/include/svx/colrctrl.hxx
@@ -86,7 +86,7 @@ private:
 
     void                FillValueSet();
     void                SetSize();
-                        DECL_LINK( SelectHdl, void * );
+       DECL_LINK_TYPED( SelectHdl, ValueSet*, void );
 
     /** This function is called when the window gets the focus.  It grabs
         the focus to the color value set so that it can be controlled with
diff --git a/include/svx/fontworkgallery.hxx b/include/svx/fontworkgallery.hxx
index 7ecd2a0..e6c9e1c 100644
--- a/include/svx/fontworkgallery.hxx
+++ b/include/svx/fontworkgallery.hxx
@@ -69,7 +69,7 @@ class SVX_DLLPUBLIC SAL_WARN_UNUSED FontWorkGalleryDialog : public ModalDialog
 
     SdrView*            mpSdrView;
 
-    DECL_LINK( DoubleClickFavoriteHdl, void * );
+    DECL_LINK_TYPED( DoubleClickFavoriteHdl, ValueSet*, void );
     DECL_LINK_TYPED( ClickOKHdl, Button*, void );
 
     SdrObject**         mppSdrObject;
diff --git a/include/svx/linectrl.hxx b/include/svx/linectrl.hxx
index 2c6b4e8..0751fde4 100644
--- a/include/svx/linectrl.hxx
+++ b/include/svx/linectrl.hxx
@@ -92,7 +92,7 @@ private:
     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > mxFrame;
 
 
-    DECL_LINK( SelectHdl, void * );
+    DECL_LINK_TYPED( SelectHdl, ValueSet*, void );
     void            FillValueSet();
     void            SetSize();
     void            implInit();
diff --git a/reportdesign/source/ui/dlg/Condition.cxx b/reportdesign/source/ui/dlg/Condition.cxx
index d5b04a1..bf7e664 100644
--- a/reportdesign/source/ui/dlg/Condition.cxx
+++ b/reportdesign/source/ui/dlg/Condition.cxx
@@ -95,9 +95,9 @@ IMPL_LINK_TYPED( ConditionField, OnFormula, Button*, _pClickedButton, void )
 #define PALETTE_SIZE (PALETTE_X * PALETTE_Y)
 class OColorPopup : public FloatingWindow
 {
-    DECL_LINK( SelectHdl, void * );
+    DECL_LINK_TYPED( SelectHdl, ValueSet*, void );
     VclPtr<Condition>      m_pCondition;
-    sal_uInt16      m_nSlotId;
+    sal_uInt16             m_nSlotId;
 public:
     OColorPopup(vcl::Window* _pParent,Condition* _pCondition);
     virtual ~OColorPopup();
@@ -194,7 +194,7 @@ void OColorPopup::SetSlotId(sal_uInt16 _nSlotId)
     }
 }
 
-IMPL_LINK_NOARG(OColorPopup, SelectHdl)
+IMPL_LINK_NOARG_TYPED(OColorPopup, SelectHdl, ValueSet*, void)
 {
     sal_uInt16 nItemId = m_aColorSet->GetSelectItemId();
     Color aColor( nItemId == 0 ? Color( COL_TRANSPARENT ) : m_aColorSet->GetItemColor( nItemId ) );
@@ -208,7 +208,6 @@ IMPL_LINK_NOARG(OColorPopup, SelectHdl)
         EndPopupMode();
 
     m_pCondition->ApplyCommand( m_nSlotId, aColor );
-    return 0;
 }
 
 
diff --git a/sc/source/ui/inc/tabbgcolordlg.hxx b/sc/source/ui/inc/tabbgcolordlg.hxx
index b0576ca..a598549 100644
--- a/sc/source/ui/inc/tabbgcolordlg.hxx
+++ b/sc/source/ui/inc/tabbgcolordlg.hxx
@@ -63,7 +63,7 @@ private:
 
     void            FillColorValueSets_Impl();
 
-    DECL_LINK(TabBgColorDblClickHdl_Impl, void *);
+    DECL_LINK_TYPED(TabBgColorDblClickHdl_Impl, ValueSet*, void);
     DECL_LINK_TYPED(TabBgColorOKHdl_Impl, Button*, void);
 };
 
diff --git a/sc/source/ui/miscdlgs/tabbgcolordlg.cxx b/sc/source/ui/miscdlgs/tabbgcolordlg.cxx
index 337cf71..fc2373e 100644
--- a/sc/source/ui/miscdlgs/tabbgcolordlg.cxx
+++ b/sc/source/ui/miscdlgs/tabbgcolordlg.cxx
@@ -117,16 +117,13 @@ void ScTabBgColorDlg::FillColorValueSets_Impl()
     m_pTabBgColorSet->SelectItem(nSelectedItem);
 }
 
-IMPL_LINK_NOARG(ScTabBgColorDlg, TabBgColorDblClickHdl_Impl)
-/*
-    Handler, called when color selection is changed
-*/
+///    Handler, called when color selection is changed
+IMPL_LINK_NOARG_TYPED(ScTabBgColorDlg, TabBgColorDblClickHdl_Impl, ValueSet*, void)
 {
     sal_uInt16 nItemId = m_pTabBgColorSet->GetSelectItemId();
     Color aColor = nItemId ? ( m_pTabBgColorSet->GetItemColor( nItemId ) ) : Color( COL_AUTO );
     m_aTabBgColor = aColor;
     EndDialog( RET_OK );
-    return 0;
 }
 
 //    Handler, called when the OK button is pushed
diff --git a/sc/source/ui/sidebar/CellLineStyleControl.cxx b/sc/source/ui/sidebar/CellLineStyleControl.cxx
index 141027f..c4f9c71 100644
--- a/sc/source/ui/sidebar/CellLineStyleControl.cxx
+++ b/sc/source/ui/sidebar/CellLineStyleControl.cxx
@@ -111,7 +111,7 @@ void CellLineStyleControl::SetAllNoSel()
     maCellLineStyleValueSet->StartSelection();
 }
 
-IMPL_LINK(CellLineStyleControl, VSSelectHdl, void *, pControl)
+IMPL_LINK_TYPED(CellLineStyleControl, VSSelectHdl, ValueSet*, pControl, void)
 {
     if(pControl == maCellLineStyleValueSet.get())
     {
@@ -180,8 +180,6 @@ IMPL_LINK(CellLineStyleControl, VSSelectHdl, void *, pControl)

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list