make Link<> instances typed

Change-Id: I7d20875cc498d54140cfe75b21373fdab9c369ce
diff --git a/cui/source/inc/numfmt.hxx b/cui/source/inc/numfmt.hxx
index 0c3e212..b273476 100644
--- a/cui/source/inc/numfmt.hxx
+++ b/cui/source/inc/numfmt.hxx
@@ -86,7 +86,7 @@ public:
    void                    SetNumberFormatList( const SvxNumberInfoItem& rItem )
                                { SetInfoItem( rItem ); }

    void                    SetOkHdl( const Link<>& rOkHandler );
    void                    SetOkHdl( const Link<SfxPoolItem*,void>& rOkHandler );
    void                    HideLanguage(bool nFlag=true);
    virtual bool            PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
    virtual void            PageCreated(const SfxAllItemSet& aSet) SAL_OVERRIDE;
@@ -124,7 +124,7 @@ private:
    SvxNumberInfoItem*      pNumItem;
    SvxNumberFormatShell*   pNumFmtShell;
    sal_uLong               nInitFormat;
    Link<>                  fnOkHdl;
    Link<SfxPoolItem*,void> fnOkHdl;

    bool                bNumItemFlag; ///< for handling with DocShell
    bool                bOneAreaFlag;
diff --git a/cui/source/tabpages/numfmt.cxx b/cui/source/tabpages/numfmt.cxx
index 6883044..de90abb 100644
--- a/cui/source/tabpages/numfmt.cxx
+++ b/cui/source/tabpages/numfmt.cxx
@@ -1724,7 +1724,7 @@ bool SvxNumberFormatTabPage::PreNotify( NotifyEvent& rNEvt )
#*
#************************************************************************/

void SvxNumberFormatTabPage::SetOkHdl( const Link<>& rOkHandler )
void SvxNumberFormatTabPage::SetOkHdl( const Link<SfxPoolItem*,void>& rOkHandler )
{
    fnOkHdl = rOkHandler;
}
diff --git a/include/sfx2/app.hxx b/include/sfx2/app.hxx
index 77e6267..0123830 100644
--- a/include/sfx2/app.hxx
+++ b/include/sfx2/app.hxx
@@ -93,15 +93,17 @@ namespace sfx2

class SfxLinkItem : public SfxPoolItem
{
    Link<> aLink;
    Link<SfxPoolItem*, void> aLink;
public:
    SfxLinkItem( sal_uInt16 nWhichId, const Link<SfxPoolItem*, void>& rValue ) : SfxPoolItem( nWhichId )
    {   aLink = rValue; }

    virtual SfxPoolItem*     Clone( SfxItemPool* = 0 ) const SAL_OVERRIDE
    {   return new SfxLinkItem( *this ); }
    virtual bool             operator==( const SfxPoolItem& rL) const SAL_OVERRIDE
    {   return static_cast<const SfxLinkItem&>(rL).aLink == aLink; }
    SfxLinkItem( sal_uInt16 nWhichId, const Link<>& rValue ) : SfxPoolItem( nWhichId )
    {   aLink = rValue; }
    const Link<>&            GetValue() const { return aLink; }
    const Link<SfxPoolItem*, void>&
                             GetValue() const { return aLink; }
};

#ifndef SFX_DECL_OBJECTSHELL_DEFINED
diff --git a/include/sfx2/templateabstractview.hxx b/include/sfx2/templateabstractview.hxx
index c6aa1e1..026868b 100644
--- a/include/sfx2/templateabstractview.hxx
+++ b/include/sfx2/templateabstractview.hxx
@@ -117,7 +117,7 @@ public:

    void setOpenRegionHdl(const Link<void*,void> &rLink);

    void setOpenTemplateHdl (const Link<> &rLink);
    void setOpenTemplateHdl(const Link<ThumbnailViewItem*,void> &rLink);

    static BitmapEx scaleImg (const BitmapEx &rImg, long width, long height);

@@ -141,8 +141,8 @@ protected:
    VclPtr<PushButton> maAllButton;
    VclPtr<FixedText>  maFTName;

    Link<void*,void> maOpenRegionHdl;
    Link<> maOpenTemplateHdl;
    Link<void*,void>              maOpenRegionHdl;
    Link<ThumbnailViewItem*,void> maOpenTemplateHdl;
};

#endif // INCLUDED_SFX2_TEMPLATEABSTRACTVIEW_HXX
diff --git a/include/sfx2/templatedlg.hxx b/include/sfx2/templatedlg.hxx
index 64323fb..2b0426e 100644
--- a/include/sfx2/templatedlg.hxx
+++ b/include/sfx2/templatedlg.hxx
@@ -78,7 +78,7 @@ private:
    DECL_LINK(DefaultTemplateMenuSelectHdl, Menu*);

    DECL_LINK_TYPED(OpenRegionHdl, void*, void);
    DECL_LINK(OpenTemplateHdl, ThumbnailViewItem*);
    DECL_LINK_TYPED(OpenTemplateHdl, ThumbnailViewItem*, void);

    DECL_LINK(SearchUpdateHdl, void*);

diff --git a/sc/source/ui/attrdlg/attrdlg.cxx b/sc/source/ui/attrdlg/attrdlg.cxx
index 9148f7e..6bf0f36 100644
--- a/sc/source/ui/attrdlg/attrdlg.cxx
+++ b/sc/source/ui/attrdlg/attrdlg.cxx
@@ -88,11 +88,9 @@ void ScAttrDlg::PageCreated( sal_uInt16 nPageId, SfxTabPage& rTabPage )
    }
}

IMPL_LINK_NOARG(ScAttrDlg, OkHandler)
IMPL_LINK_NOARG_TYPED(ScAttrDlg, OkHandler, SfxPoolItem*, void)
{
    ((Link<>&)GetOKButton().GetClickHdl()).Call( NULL );

    return 0;
    GetOKButton().GetClickHdl().Call( NULL );
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/attrdlg.hxx b/sc/source/ui/inc/attrdlg.hxx
index 456274c..4dfe613 100644
--- a/sc/source/ui/inc/attrdlg.hxx
+++ b/sc/source/ui/inc/attrdlg.hxx
@@ -38,7 +38,7 @@ protected:
    virtual void    PageCreated( sal_uInt16 nPageId, SfxTabPage& rTabPage ) SAL_OVERRIDE;

private:
    DECL_LINK( OkHandler, void* ); // for closing by double clicking in TabPages
    DECL_LINK_TYPED( OkHandler, SfxPoolItem*, void ); // for closing by double clicking in TabPages
    sal_uInt16 m_nNumberPageId;
    sal_uInt16 m_nFontPageId;
};
diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx
index 3be294c..1db333e 100644
--- a/sfx2/source/control/templateabstractview.cxx
+++ b/sfx2/source/control/templateabstractview.cxx
@@ -224,7 +224,7 @@ void TemplateAbstractView::setOpenRegionHdl(const Link<void*,void> &rLink)
    maOpenRegionHdl = rLink;
}

void TemplateAbstractView::setOpenTemplateHdl(const Link<> &rLink)
void TemplateAbstractView::setOpenTemplateHdl(const Link<ThumbnailViewItem*,void> &rLink)
{
    maOpenTemplateHdl = rLink;
}
diff --git a/sfx2/source/control/templatesearchview.cxx b/sfx2/source/control/templatesearchview.cxx
index 30cd035..16fc7e2 100644
--- a/sfx2/source/control/templatesearchview.cxx
+++ b/sfx2/source/control/templatesearchview.cxx
@@ -19,7 +19,7 @@ TemplateSearchView::TemplateSearchView (vcl::Window *pParent, WinBits nWinStyle)

VCL_BUILDER_FACTORY(TemplateSearchView)

void TemplateSearchView::setOpenTemplateHdl(const Link<> &rLink)
void TemplateSearchView::setOpenTemplateHdl(const Link<ThumbnailViewItem*, void> &rLink)
{
    maOpenTemplateHdl = rLink;
}
diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx
index d267e3b9..a6eabce 100644
--- a/sfx2/source/dialog/backingwindow.cxx
+++ b/sfx2/source/dialog/backingwindow.cxx
@@ -655,7 +655,7 @@ IMPL_LINK_NOARG_TYPED( BackingWindow, OpenRegionHdl, void*, void)
    maSelTemplates.clear();
}

IMPL_LINK(BackingWindow, OpenTemplateHdl, ThumbnailViewItem*, pItem)
IMPL_LINK_TYPED(BackingWindow, OpenTemplateHdl, ThumbnailViewItem*, pItem, void)
{
    if (!mbIsSaveMode)
    {
@@ -681,8 +681,6 @@ IMPL_LINK(BackingWindow, OpenTemplateHdl, ThumbnailViewItem*, pItem)
        {
        }
    }

    return 0;
}

struct ImplDelayedDispatch
diff --git a/sfx2/source/dialog/backingwindow.hxx b/sfx2/source/dialog/backingwindow.hxx
index 50b3fb4..5c8dd07 100644
--- a/sfx2/source/dialog/backingwindow.hxx
+++ b/sfx2/source/dialog/backingwindow.hxx
@@ -109,7 +109,7 @@ class BackingWindow : public vcl::Window, public VclBuilderContainer
    DECL_LINK_TYPED(MenuSelectHdl, MenuButton*, void);
    DECL_LINK(ExtLinkClickHdl, Button*);
    DECL_LINK_TYPED(OpenRegionHdl, void*, void);
    DECL_LINK(OpenTemplateHdl, ThumbnailViewItem*);
    DECL_LINK_TYPED(OpenTemplateHdl, ThumbnailViewItem*, void);

    void initControls();

diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index cfe7832..275b8e5 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -313,14 +313,14 @@ void SfxTemplateManagerDlg::dispose()
    // Ignore view events since we are cleaning the object
    mpLocalView->setItemStateHdl(Link<>());
    mpLocalView->setOpenRegionHdl(Link<void*,void>());
    mpLocalView->setOpenTemplateHdl(Link<>());
    mpLocalView->setOpenTemplateHdl(Link<ThumbnailViewItem*, void>());

    mpRemoteView->setItemStateHdl(Link<>());
    mpRemoteView->setOpenRegionHdl(Link<void*,void>());
    mpRemoteView->setOpenTemplateHdl(Link<>());
    mpRemoteView->setOpenTemplateHdl(Link<ThumbnailViewItem*,void>());

    mpSearchView->setItemStateHdl(Link<>());
    mpSearchView->setOpenTemplateHdl(Link<>());
    mpSearchView->setOpenTemplateHdl(Link<ThumbnailViewItem*, void>());

    mpTabControl.clear();
    mpSearchEdit.clear();
@@ -684,7 +684,7 @@ IMPL_LINK_NOARG_TYPED(SfxTemplateManagerDlg, OpenRegionHdl, void*, void)
    mpActionBar->Show();
}

IMPL_LINK(SfxTemplateManagerDlg, OpenTemplateHdl, ThumbnailViewItem*, pItem)
IMPL_LINK_TYPED(SfxTemplateManagerDlg, OpenTemplateHdl, ThumbnailViewItem*, pItem, void)
{
    if (!mbIsSaveMode)
    {
@@ -710,8 +710,6 @@ IMPL_LINK(SfxTemplateManagerDlg, OpenTemplateHdl, ThumbnailViewItem*, pItem)

        Close();
    }

    return 0;
}

IMPL_LINK_NOARG(SfxTemplateManagerDlg, SearchUpdateHdl)
diff --git a/sfx2/source/inc/templatesearchview.hxx b/sfx2/source/inc/templatesearchview.hxx
index 86551f3..69873c6 100644
--- a/sfx2/source/inc/templatesearchview.hxx
+++ b/sfx2/source/inc/templatesearchview.hxx
@@ -18,7 +18,7 @@ public:

    TemplateSearchView ( vcl::Window* pParent, WinBits nWinStyle = WB_TABSTOP | WB_VSCROLL);

    void setOpenTemplateHdl (const Link<> &rLink);
    void setOpenTemplateHdl (const Link<ThumbnailViewItem*, void> &rLink);

    void AppendItem(sal_uInt16 nAssocItemId, sal_uInt16 nRegionId, sal_uInt16 nIdx,
                    const OUString &rTitle, const OUString &rSubtitle,
@@ -28,7 +28,7 @@ protected:
    virtual void OnItemDblClicked(ThumbnailViewItem *pItem) SAL_OVERRIDE;

protected:
    Link<> maOpenTemplateHdl;
    Link<ThumbnailViewItem*, void> maOpenTemplateHdl;
};

#endif // INCLUDED_SFX2_SOURCE_INC_TEMPLATESEARCHVIEW_HXX
diff --git a/sw/source/uibase/inc/navipi.hxx b/sw/source/uibase/inc/navipi.hxx
index 3848662..ccb64a1 100644
--- a/sw/source/uibase/inc/navipi.hxx
+++ b/sw/source/uibase/inc/navipi.hxx
@@ -106,7 +106,7 @@ class SwNavigationPI : public vcl::Window,
    DECL_LINK_TYPED( ToolBoxDropdownClickHdl, ToolBox*, void );
    DECL_LINK( EditAction, NumEditAction * );
    DECL_LINK( EditGetFocus, NumEditAction * );
    DECL_LINK( DoneLink, SfxPoolItem * );
    DECL_LINK_TYPED( DoneLink, SfxPoolItem *, void );
    DECL_LINK( MenuSelectHdl, Menu * );
    DECL_LINK_TYPED( ChangePageHdl, Idle*, void );
    DECL_LINK( PageEditModifyHdl, void* );
diff --git a/sw/source/uibase/utlui/navipi.cxx b/sw/source/uibase/utlui/navipi.cxx
index 54b3323..8b5700d 100644
--- a/sw/source/uibase/utlui/navipi.cxx
+++ b/sw/source/uibase/utlui/navipi.cxx
@@ -1076,7 +1076,7 @@ void SwNavigationPI::UpdateListBox()
    aDocListBox->SetUpdateMode(true);
}

IMPL_LINK(SwNavigationPI, DoneLink, SfxPoolItem *, pItem)
IMPL_LINK_TYPED(SwNavigationPI, DoneLink, SfxPoolItem *, pItem, void)
{
    const SfxViewFrameItem* pFrameItem = PTR_CAST(SfxViewFrameItem, pItem );
    if( pFrameItem )
@@ -1096,7 +1096,6 @@ IMPL_LINK(SwNavigationPI, DoneLink, SfxPoolItem *, pItem)
            aContentTree->Update();
        }
    }
    return 0;
}

OUString SwNavigationPI::CreateDropFileName( TransferableDataHelper& rData )