convert Link<> to typed

Change-Id: I8275f9a100e5ed93f44596fe428a39e902c12dfc
diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx
index 1721012..06079c6 100644
--- a/include/vcl/svapp.hxx
+++ b/include/vcl/svapp.hxx
@@ -872,13 +872,13 @@ public:

     @return true if the handler was inserted successfully, false if it couldn't be inserted.
    */
    static bool                 InsertIdleHdl( const Link<>& rLink, sal_uInt16 nPriority );
    static bool                 InsertIdleHdl( const Link<Application*,void>& rLink, sal_uInt16 nPriority );

    /** Remove an idle handler from the application.

     @param     rLink           const reference to the idle handler to remove
    */
    static void                 RemoveIdleHdl( const Link<>& rLink );
    static void                 RemoveIdleHdl( const Link<Application*,void>& rLink );

    /*** Get the DisplayConnection.

diff --git a/sfx2/source/control/itemdel.cxx b/sfx2/source/control/itemdel.cxx
index 9166d4b..4808a37 100644
--- a/sfx2/source/control/itemdel.cxx
+++ b/sfx2/source/control/itemdel.cxx
@@ -30,11 +30,11 @@

class SfxItemDisruptor_Impl: private boost::noncopyable
{
    SfxPoolItem *pItem;
    Link<>       aLink;
    SfxPoolItem *           pItem;
    Link<Application*,void> aLink;

private:
    DECL_LINK( Delete, void* );
    DECL_LINK_TYPED( Delete, Application*, void );

public:
    SfxItemDisruptor_Impl( SfxPoolItem *pItemToDesrupt );
@@ -69,10 +69,9 @@ SfxItemDisruptor_Impl::~SfxItemDisruptor_Impl()
    delete pItem;
}

IMPL_LINK_NOARG(SfxItemDisruptor_Impl, Delete)
IMPL_LINK_NOARG_TYPED(SfxItemDisruptor_Impl, Delete, Application*, void)
{
    delete this;
    return 0;
}

void DeleteItemOnIdle(SfxPoolItem* pItem)
diff --git a/vcl/inc/idlemgr.hxx b/vcl/inc/idlemgr.hxx
index e83b9ef9..6d80153 100644
--- a/vcl/inc/idlemgr.hxx
+++ b/vcl/inc/idlemgr.hxx
@@ -37,8 +37,8 @@ public:
                    ImplIdleMgr();
                    ~ImplIdleMgr();

    bool            InsertIdleHdl( const Link<>& rLink, sal_uInt16 nPriority );
    void            RemoveIdleHdl( const Link<>& rLink );
    bool            InsertIdleHdl( const Link<Application*,void>& rLink, sal_uInt16 nPriority );
    void            RemoveIdleHdl( const Link<Application*,void>& rLink );

    void            RestartIdler()
                        { if ( maTimer.IsActive() ) maTimer.Start(); }
diff --git a/vcl/source/app/idlemgr.cxx b/vcl/source/app/idlemgr.cxx
index 9463acd..31b59e4 100644
--- a/vcl/source/app/idlemgr.cxx
+++ b/vcl/source/app/idlemgr.cxx
@@ -23,9 +23,9 @@

struct ImplIdleData
{
    Link<>      maIdleHdl;
    sal_uInt16      mnPriority;
    bool        mbTimeout;
    Link<Application*,void>  maIdleHdl;
    sal_uInt16               mnPriority;
    bool                     mbTimeout;
};

#define IMPL_IDLETIMEOUT         350
@@ -52,7 +52,7 @@ ImplIdleMgr::~ImplIdleMgr()
    delete mpIdleList;
}

bool ImplIdleMgr::InsertIdleHdl( const Link<>& rLink, sal_uInt16 nPriority )
bool ImplIdleMgr::InsertIdleHdl( const Link<Application*,void>& rLink, sal_uInt16 nPriority )
{
    size_t nPos = (size_t)-1;
    size_t n = mpIdleList->size();
@@ -86,7 +86,7 @@ bool ImplIdleMgr::InsertIdleHdl( const Link<>& rLink, sal_uInt16 nPriority )
    return true;
}

void ImplIdleMgr::RemoveIdleHdl( const Link<>& rLink )
void ImplIdleMgr::RemoveIdleHdl( const Link<Application*,void>& rLink )
{
    if (mbInDestruction)
        return;
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index 0295b915..350e829 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -930,7 +930,7 @@ void Application::RemoveUserEvent( ImplSVEvent * nUserEvent )
    }
}

bool Application::InsertIdleHdl( const Link<>& rLink, sal_uInt16 nPrio )
bool Application::InsertIdleHdl( const Link<Application*,void>& rLink, sal_uInt16 nPrio )
{
    ImplSVData* pSVData = ImplGetSVData();

@@ -941,7 +941,7 @@ bool Application::InsertIdleHdl( const Link<>& rLink, sal_uInt16 nPrio )
    return pSVData->maAppData.mpIdleMgr->InsertIdleHdl( rLink, nPrio );
}

void Application::RemoveIdleHdl( const Link<>& rLink )
void Application::RemoveIdleHdl( const Link<Application*,void>& rLink )
{
    ImplSVData* pSVData = ImplGetSVData();