cui/source/dialogs/linkdlg.cxx | 9 +--- cui/source/inc/linkdlg.hxx | 2 editeng/source/editeng/editdoc.hxx | 4 - editeng/source/editeng/editeng.cxx | 4 - editeng/source/editeng/impedit.hxx | 44 +++++++++---------- editeng/source/editeng/impedit2.cxx | 3 - editeng/source/editeng/impedit3.cxx | 2 editeng/source/outliner/outlin2.cxx | 4 - extensions/source/update/ui/updatecheckui.cxx | 14 +++--- forms/source/richtext/richtextengine.cxx | 5 -- forms/source/richtext/richtextengine.hxx | 2 fpicker/source/office/iodlg.cxx | 24 ---------- fpicker/source/office/iodlg.hxx | 5 -- include/editeng/editeng.hxx | 4 - include/editeng/outliner.hxx | 4 - include/sfx2/linksrc.hxx | 2 include/sfx2/lnkbase.hxx | 4 - include/svtools/transfer.hxx | 2 include/svtools/treelistbox.hxx | 4 - include/svx/svdedxv.hxx | 4 - include/vcl/menu.hxx | 7 +-- include/vcl/svapp.hxx | 4 - include/vcl/vclevent.hxx | 41 ------------------ sc/inc/arealink.hxx | 2 sc/inc/externalrefmgr.hxx | 2 sc/inc/tablink.hxx | 4 - sc/source/ui/docshell/arealink.cxx | 2 sc/source/ui/docshell/externalrefmgr.cxx | 4 - sc/source/ui/docshell/tablink.cxx | 13 ++--- sc/source/ui/inc/viewdata.hxx | 3 - sc/source/ui/view/gridwin.cxx | 8 +-- sc/source/ui/view/viewdata.cxx | 12 +---- sd/inc/drawdoc.hxx | 2 sd/source/core/drawdoc4.cxx | 8 +-- sd/source/ui/func/fuinsfil.cxx | 4 - sd/source/ui/inc/OutlineView.hxx | 2 sd/source/ui/view/Outliner.cxx | 6 +- sd/source/ui/view/outlview.cxx | 15 ++---- sfx2/inc/srchdlg.hxx | 8 +-- sfx2/source/appl/fileobj.cxx | 6 +- sfx2/source/appl/fileobj.hxx | 4 - sfx2/source/appl/helpinterceptor.cxx | 6 -- sfx2/source/appl/helpinterceptor.hxx | 4 - sfx2/source/appl/impldde.cxx | 4 - sfx2/source/appl/impldde.hxx | 2 sfx2/source/appl/linksrc.cxx | 2 sfx2/source/appl/lnkbase2.cxx | 17 +++---- sfx2/source/appl/newhelp.cxx | 31 +++++-------- sfx2/source/appl/newhelp.hxx | 33 +++++++------- sfx2/source/control/itemdel.cxx | 9 +--- sfx2/source/dialog/srchdlg.cxx | 2 sfx2/source/dialog/templdlg.cxx | 20 ++++---- sfx2/source/inc/templdgi.hxx | 14 +++--- starmath/inc/edit.hxx | 2 starmath/source/edit.cxx | 15 ++---- svtools/inc/table/tablecontrol.hxx | 2 svtools/source/contnr/treelistbox.cxx | 7 +-- svtools/source/misc/transfer2.cxx | 6 +- svtools/source/table/tablecontrol.cxx | 5 -- svtools/source/table/tablecontrol_impl.hxx | 4 - svtools/source/table/tabledatawindow.hxx | 4 - svx/source/svdraw/svdedxv.cxx | 5 -- sw/source/uibase/dbui/dbtree.cxx | 2 vcl/inc/idlemgr.hxx | 4 - vcl/inc/svdata.hxx | 1 vcl/inc/vcleventlisteners.hxx | 58 ++++++++++++++++++++++++++ vcl/inc/window.h | 1 vcl/opengl/salbmp.cxx | 1 vcl/source/app/idlemgr.cxx | 10 ++-- vcl/source/app/svapp.cxx | 4 - vcl/source/app/vclevent.cxx | 47 ++++++++------------- vcl/source/window/menu.cxx | 20 ++++++-- vcl/source/window/menubarwindow.cxx | 10 ++-- vcl/source/window/menubarwindow.hxx | 8 +-- vcl/unx/gtk/window/gtksalmenu.cxx | 2 75 files changed, 308 insertions(+), 357 deletions(-)
New commits: commit 69a06ca6bf45c4e2aceb06262bfa1e7be6f565e8 Author: Noel Grandin <[email protected]> Date: Wed Sep 16 08:38:23 2015 +0200 convert Link<> to typed Change-Id: I9ce05712af8300c8bcea6ea0f670b57cce1ca43d diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx index 2449258..1efd13b 100644 --- a/editeng/source/editeng/editeng.cxx +++ b/editeng/source/editeng/editeng.cxx @@ -1508,12 +1508,12 @@ Link<> EditEngine::GetNotifyHdl() const return pImpEditEngine->GetNotifyHdl(); } -void EditEngine::SetStatusEventHdl( const Link<>& rLink ) +void EditEngine::SetStatusEventHdl( const Link<EditStatus&, void>& rLink ) { pImpEditEngine->SetStatusEventHdl( rLink ); } -Link<> EditEngine::GetStatusEventHdl() const +Link<EditStatus&, void> EditEngine::GetStatusEventHdl() const { return pImpEditEngine->GetStatusEventHdl(); } diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index 91d5b49..04adb48 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -479,7 +479,7 @@ private: // If it is detected at one point that the StatusHdl has to be called, but // this should not happen immediately (critical section): Timer aStatusTimer; - Link<> aStatusHdlLink; + Link<EditStatus&, void> aStatusHdlLink; Link<> aNotifyHdl; Link<> aImportHdl; Link<> aBeginMovingParagraphsHdl; @@ -835,8 +835,8 @@ public: EditPaM InsertParagraph( sal_Int32 nPara ); EditSelection* SelectParagraph( sal_Int32 nPara ); - void SetStatusEventHdl( const Link<>& rLink ) { aStatusHdlLink = rLink; } - Link<> GetStatusEventHdl() const { return aStatusHdlLink; } + void SetStatusEventHdl( const Link<EditStatus&, void>& rLink ) { aStatusHdlLink = rLink; } + Link<EditStatus&, void> GetStatusEventHdl() const { return aStatusHdlLink; } void SetNotifyHdl( const Link<>& rLink ) { aNotifyHdl = rLink; } Link<> GetNotifyHdl() const { return aNotifyHdl; } @@ -848,11 +848,11 @@ public: bool IsVisualCursorTravelingEnabled(); bool DoVisualCursorTraveling( const ContentNode* pNode ); - EditSelection ConvertSelection( sal_Int32 nStartPara, sal_Int32 nStartPos, sal_Int32 nEndPara, sal_Int32 nEndPos ); - inline EPaM CreateEPaM( const EditPaM& rPaM ); - inline EditPaM CreateEditPaM( const EPaM& rEPaM ); - inline ESelection CreateESel( const EditSelection& rSel ); - inline EditSelection CreateSel( const ESelection& rSel ); + EditSelection ConvertSelection( sal_Int32 nStartPara, sal_Int32 nStartPos, sal_Int32 nEndPara, sal_Int32 nEndPos ); + inline EPaM CreateEPaM( const EditPaM& rPaM ); + inline EditPaM CreateEditPaM( const EPaM& rEPaM ); + inline ESelection CreateESel( const EditSelection& rSel ); + inline EditSelection CreateSel( const ESelection& rSel ); void SetStyleSheetPool( SfxStyleSheetPool* pSPool ); @@ -861,7 +861,7 @@ public: void SetStyleSheet( EditSelection aSel, SfxStyleSheet* pStyle ); void SetStyleSheet( sal_Int32 nPara, SfxStyleSheet* pStyle ); const SfxStyleSheet* GetStyleSheet( sal_Int32 nPara ) const; - SfxStyleSheet* GetStyleSheet( sal_Int32 nPara ); + SfxStyleSheet* GetStyleSheet( sal_Int32 nPara ); void UpdateParagraphsWithStyleSheet( SfxStyleSheet* pStyle ); void RemoveStyleFromParagraphs( SfxStyleSheet* pStyle ); @@ -910,7 +910,7 @@ public: void DoOnlineSpelling( ContentNode* pThisNodeOnly = 0, bool bSpellAtCursorPos = false, bool bInteruptable = true ); EESpellState Spell( EditView* pEditView, bool bMultipleDoc ); EESpellState HasSpellErrors(); - void ClearSpellErrors(); + void ClearSpellErrors(); EESpellState StartThesaurus( EditView* pEditView ); css::uno::Reference< css::linguistic2::XSpellAlternatives > ImpSpell( EditView* pEditView ); @@ -926,11 +926,11 @@ public: const vcl::Font *pFont, sal_uInt16 nFontWhichId ); // returns true if input sequence checking should be applied - bool IsInputSequenceCheckingRequired( sal_Unicode nChar, const EditSelection& rCurSel ) const; + bool IsInputSequenceCheckingRequired( sal_Unicode nChar, const EditSelection& rCurSel ) const; //find the next error within the given selection - forward only! css::uno::Reference< css::linguistic2::XSpellAlternatives > - ImpFindNextError(EditSelection& rSelection); + ImpFindNextError(EditSelection& rSelection); //spell and return a sentence bool SpellSentence(EditView& rView, svx::SpellPortions& rToFill, bool bIsGrammarChecking ); //put spelling back to start of current sentence - needed after switch of grammar support @@ -950,13 +950,13 @@ public: svx::SpellPortions& rToFill, bool bIsField ); - bool Search( const SvxSearchItem& rSearchItem, EditView* pView ); - bool ImpSearch( const SvxSearchItem& rSearchItem, const EditSelection& rSearchSelection, const EditPaM& rStartPos, EditSelection& rFoundSel ); - sal_Int32 StartSearchAndReplace( EditView* pEditView, const SvxSearchItem& rSearchItem ); - bool HasText( const SvxSearchItem& rSearchItem ); + bool Search( const SvxSearchItem& rSearchItem, EditView* pView ); + bool ImpSearch( const SvxSearchItem& rSearchItem, const EditSelection& rSearchSelection, const EditPaM& rStartPos, EditSelection& rFoundSel ); + sal_Int32 StartSearchAndReplace( EditView* pEditView, const SvxSearchItem& rSearchItem ); + bool HasText( const SvxSearchItem& rSearchItem ); - void SetEditTextObjectPool( SfxItemPool* pP ) { pTextObjectPool = pP; } - SfxItemPool* GetEditTextObjectPool() const { return pTextObjectPool; } + void SetEditTextObjectPool( SfxItemPool* pP ) { pTextObjectPool = pP; } + SfxItemPool* GetEditTextObjectPool() const { return pTextObjectPool; } const SvxNumberFormat * GetNumberFormat( const ContentNode* pNode ) const; sal_Int32 GetSpaceBeforeAndMinLabelWidth( const ContentNode *pNode, sal_Int32 *pnSpaceBefore = 0, sal_Int32 *pnMinLabelWidth = 0 ) const; diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx index e5f10c0..1b2c779 100644 --- a/editeng/source/editeng/impedit3.cxx +++ b/editeng/source/editeng/impedit3.cxx @@ -4024,7 +4024,7 @@ void ImpEditEngine::CallStatusHdl() // since other Flags might be set in the handler... EditStatus aTmpStatus( aStatus ); aStatus.Clear(); - aStatusHdlLink.Call( &aTmpStatus ); + aStatusHdlLink.Call( aTmpStatus ); aStatusTimer.Stop(); // If called by hand ... } } diff --git a/editeng/source/outliner/outlin2.cxx b/editeng/source/outliner/outlin2.cxx index 3c79be0..e4e55ac 100644 --- a/editeng/source/outliner/outlin2.cxx +++ b/editeng/source/outliner/outlin2.cxx @@ -129,12 +129,12 @@ void Outliner::SetNotifyHdl( const Link<>& rLink ) } -void Outliner::SetStatusEventHdl( const Link<>& rLink ) +void Outliner::SetStatusEventHdl( const Link<EditStatus&, void>& rLink ) { pEditEngine->SetStatusEventHdl( rLink ); } -Link<> Outliner::GetStatusEventHdl() const +Link<EditStatus&, void> Outliner::GetStatusEventHdl() const { return pEditEngine->GetStatusEventHdl(); } diff --git a/forms/source/richtext/richtextengine.cxx b/forms/source/richtext/richtextengine.cxx index 3d4ebcd..b04e121 100644 --- a/forms/source/richtext/richtextengine.cxx +++ b/forms/source/richtext/richtextengine.cxx @@ -131,14 +131,13 @@ namespace frm } - IMPL_LINK( RichTextEngine, EditEngineStatusChanged, EditStatus*, _pStatus ) + IMPL_LINK_TYPED( RichTextEngine, EditEngineStatusChanged, EditStatus&, _rStatus, void ) { for ( ::std::vector< IEngineStatusListener* >::const_iterator aLoop = m_aStatusListeners.begin(); aLoop != m_aStatusListeners.end(); ++aLoop ) - (*aLoop)->EditEngineStatusChanged( *_pStatus ); - return 0L; + (*aLoop)->EditEngineStatusChanged( _rStatus ); } diff --git a/forms/source/richtext/richtextengine.hxx b/forms/source/richtext/richtextengine.hxx index 3c32ece..98ddf5e 100644 --- a/forms/source/richtext/richtextengine.hxx +++ b/forms/source/richtext/richtextengine.hxx @@ -67,7 +67,7 @@ namespace frm RichTextEngine& operator=( const RichTextEngine& ) SAL_DELETED_FUNCTION; private: - DECL_LINK( EditEngineStatusChanged, EditStatus* ); + DECL_LINK_TYPED( EditEngineStatusChanged, EditStatus&, void ); }; diff --git a/include/editeng/editeng.hxx b/include/editeng/editeng.hxx index 11e81cd..8f2bc4a 100644 --- a/include/editeng/editeng.hxx +++ b/include/editeng/editeng.hxx @@ -366,8 +366,8 @@ public: sal_uLong Read( SvStream& rInput, const OUString& rBaseURL, EETextFormat, SvKeyValueIterator* pHTTPHeaderAttrs = NULL ); sal_uLong Write( SvStream& rOutput, EETextFormat ); - void SetStatusEventHdl( const Link<>& rLink ); - Link<> GetStatusEventHdl() const; + void SetStatusEventHdl( const Link<EditStatus&, void>& rLink ); + Link<EditStatus&, void> GetStatusEventHdl() const; void SetNotifyHdl( const Link<>& rLink ); Link<> GetNotifyHdl() const; diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx index 900df4b..8c60669 100644 --- a/include/editeng/outliner.hxx +++ b/include/editeng/outliner.hxx @@ -780,8 +780,8 @@ public: void SetNotifyHdl( const Link<>& rLink ); - void SetStatusEventHdl( const Link<>& rLink ); - Link<> GetStatusEventHdl() const; + void SetStatusEventHdl( const Link<EditStatus&, void>& rLink ); + Link<EditStatus&, void> GetStatusEventHdl() const; void Draw( OutputDevice* pOutDev, const Rectangle& rOutRect ); void Draw( OutputDevice* pOutDev, const Point& rStartPos, short nOrientation = 0 ); diff --git a/include/svx/svdedxv.hxx b/include/svx/svdedxv.hxx index a34b9a8..5dc3514 100644 --- a/include/svx/svdedxv.hxx +++ b/include/svx/svdedxv.hxx @@ -115,8 +115,8 @@ protected: void ImpMakeTextCursorAreaVisible(); // handler for AutoGrowing text with active Outliner - DECL_LINK(ImpOutlinerStatusEventHdl,EditStatus*); - DECL_LINK_TYPED(ImpOutlinerCalcFieldValueHdl,EditFieldInfo*,void); + DECL_LINK_TYPED(ImpOutlinerStatusEventHdl, EditStatus&, void); + DECL_LINK_TYPED(ImpOutlinerCalcFieldValueHdl, EditFieldInfo*, void); // link for EndTextEditHdl DECL_LINK_TYPED(EndTextEditHdl, SdrUndoManager*, void); diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx index 46af420..39fb5b2 100644 --- a/sc/source/ui/inc/viewdata.hxx +++ b/sc/source/ui/inc/viewdata.hxx @@ -211,8 +211,7 @@ private: bool bPagebreak:1; // Page break preview mode bool bSelCtrlMouseClick:1; // special selection handling for ctrl-mouse-click - DECL_DLLPRIVATE_STATIC_LINK (ScViewData, EmptyEditHdl, void*); - DECL_DLLPRIVATE_LINK (EditEngineHdl, EditStatus*); + DECL_DLLPRIVATE_LINK_TYPED( EditEngineHdl, EditStatus&, void ); SAL_DLLPRIVATE void CalcPPT(); SAL_DLLPRIVATE void CreateTabData( SCTAB nNewTab ); diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 1dbe306..006c00c 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -5591,16 +5591,14 @@ struct SpellCheckStatus SpellCheckStatus() : mbModified(false) {}; - DECL_LINK (EventHdl, EditStatus*); + DECL_LINK_TYPED( EventHdl, EditStatus&, void ); }; -IMPL_LINK(SpellCheckStatus, EventHdl, EditStatus*, pStatus) +IMPL_LINK_TYPED(SpellCheckStatus, EventHdl, EditStatus&, rStatus, void) { - EditStatusFlags nStatus = pStatus->GetStatusWord(); + EditStatusFlags nStatus = rStatus.GetStatusWord(); if (nStatus & EditStatusFlags::WRONGWORDCHANGED) mbModified = true; - - return 0; } } diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index 1e64916..a789d7c 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -1100,14 +1100,9 @@ void ScViewData::SetEditEngine( ScSplitPos eWhich, // needed, wenn position changed } -IMPL_STATIC_LINK_NOARG(ScViewData, EmptyEditHdl) +IMPL_LINK_TYPED( ScViewData, EditEngineHdl, EditStatus&, rStatus, void ) { - return 0; -} - -IMPL_LINK( ScViewData, EditEngineHdl, EditStatus *, pStatus ) -{ - EditStatusFlags nStatus = pStatus->GetStatusWord(); + EditStatusFlags nStatus = rStatus.GetStatusWord(); if (nStatus & (EditStatusFlags::HSCROLL | EditStatusFlags::TEXTHEIGHTCHANGED | EditStatusFlags::TEXTWIDTHCHANGED | EditStatusFlags::CURSOROUT)) { EditGrowY(); @@ -1120,7 +1115,6 @@ IMPL_LINK( ScViewData, EditEngineHdl, EditStatus *, pStatus ) pEditView[eWhich]->ShowCursor(false); } } - return 0; } void ScViewData::EditGrowX() @@ -1401,7 +1395,7 @@ void ScViewData::ResetEditView() } if (pEngine) - pEngine->SetStatusEventHdl( LINK( this, ScViewData, EmptyEditHdl ) ); + pEngine->SetStatusEventHdl( Link<EditStatus&,void>() ); } void ScViewData::KillEditView() diff --git a/sd/inc/drawdoc.hxx b/sd/inc/drawdoc.hxx index df95971..a3b4690 100644 --- a/sd/inc/drawdoc.hxx +++ b/sd/inc/drawdoc.hxx @@ -191,7 +191,7 @@ private: DECL_DLLPRIVATE_LINK_TYPED(WorkStartupHdl, Timer *, void); DECL_DLLPRIVATE_LINK_TYPED(OnlineSpellingHdl, Idle *, void); - DECL_DLLPRIVATE_LINK(OnlineSpellEventHdl, EditStatus*); + DECL_DLLPRIVATE_LINK_TYPED(OnlineSpellEventHdl, EditStatus&, void); std::vector< OUString > maAnnotationAuthors; std::vector<com::sun::star::uno::Reference< diff --git a/sd/source/core/drawdoc4.cxx b/sd/source/core/drawdoc4.cxx index 2f38ed5..3121a1a 100644 --- a/sd/source/core/drawdoc4.cxx +++ b/sd/source/core/drawdoc4.cxx @@ -882,7 +882,7 @@ void SdDrawDocument::SpellObject(SdrTextObj* pObj) mbHasOnlineSpellErrors = false; ::sd::Outliner* pOutl = GetInternalOutliner(); pOutl->SetUpdateMode(true); - Link<> aEvtHdl = pOutl->GetStatusEventHdl(); + Link<EditStatus&,void> aEvtHdl = pOutl->GetStatusEventHdl(); pOutl->SetStatusEventHdl(LINK(this, SdDrawDocument, OnlineSpellEventHdl)); sal_uInt16 nOldOutlMode = pOutl->GetMode(); @@ -955,12 +955,10 @@ void SdDrawDocument::RemoveObject(SdrObject* pObj, SdPage* /*pPage*/) } // Callback for ExecuteSpellPopup() -IMPL_LINK(SdDrawDocument, OnlineSpellEventHdl, EditStatus*, pEditStat) +IMPL_LINK_TYPED(SdDrawDocument, OnlineSpellEventHdl, EditStatus&, rEditStat, void) { - EditStatusFlags nStat = pEditStat->GetStatusWord(); + EditStatusFlags nStat = rEditStat.GetStatusWord(); mbHasOnlineSpellErrors = bool(nStat & EditStatusFlags::WRONGWORDCHANGED); - - return 0; } // Callback for ExecuteSpellPopup() diff --git a/sd/source/ui/func/fuinsfil.cxx b/sd/source/ui/func/fuinsfil.cxx index 9359bf4..991d4f8 100644 --- a/sd/source/ui/func/fuinsfil.cxx +++ b/sd/source/ui/func/fuinsfil.cxx @@ -705,8 +705,8 @@ bool FuInsertFile::InsSDDinOlMode(SfxMedium* pMedium) Link<::Outliner*,void> aOldEndMovingHdl = pOutliner->GetEndMovingHdl(); pOutliner->SetEndMovingHdl( Link<::Outliner*,void>()); - Link<> aOldStatusEventHdl = pOutliner->GetStatusEventHdl(); - pOutliner->SetStatusEventHdl(Link<>()); + Link<EditStatus&,void> aOldStatusEventHdl = pOutliner->GetStatusEventHdl(); + pOutliner->SetStatusEventHdl(Link<EditStatus&,void>()); pOutliner->Clear(); pOlView->FillOutliner(); diff --git a/sd/source/ui/inc/OutlineView.hxx b/sd/source/ui/inc/OutlineView.hxx index 0daad3d..03d58c5 100644 --- a/sd/source/ui/inc/OutlineView.hxx +++ b/sd/source/ui/inc/OutlineView.hxx @@ -98,7 +98,7 @@ public: DECL_LINK_TYPED( ParagraphInsertedHdl, Outliner *, void ); DECL_LINK_TYPED( ParagraphRemovingHdl, Outliner *, void ); DECL_LINK_TYPED( DepthChangedHdl, Outliner *, void ); - DECL_LINK( StatusEventHdl, void * ); + DECL_LINK_TYPED( StatusEventHdl, EditStatus&, void ); DECL_LINK_TYPED( BeginMovingHdl, Outliner *, void ); DECL_LINK_TYPED( EndMovingHdl, Outliner *, void ); DECL_LINK_TYPED( RemovingPagesHdl, OutlinerView *, bool ); diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx index f0b35ed..c1964de 100644 --- a/sd/source/ui/view/Outliner.cxx +++ b/sd/source/ui/view/Outliner.cxx @@ -306,7 +306,7 @@ void Outliner::EndSpelling() bool bViewIsDrawViewShell(pViewShell && pViewShell->ISA(DrawViewShell)); if (bViewIsDrawViewShell) { - SetStatusEventHdl(Link<>()); + SetStatusEventHdl(Link<EditStatus&,void>()); mpView = pViewShell->GetView(); mpView->UnmarkAllObj (mpView->GetSdrPageView()); mpView->SdrEndTextEdit(); @@ -741,7 +741,7 @@ void Outliner::DetectChange() || aPosition.mePageKind != pDrawViewShell->GetPageKind())) { // Either the edit mode or the page kind has changed. - SetStatusEventHdl(Link<>()); + SetStatusEventHdl(Link<EditStatus&,void>()); SdrPageView* pPageView = mpView->GetSdrPageView(); if (pPageView != NULL) @@ -1193,7 +1193,7 @@ void Outliner::SetViewMode (PageKind ePageKind) // Restore old edit mode. pDrawViewShell->ChangeEditMode(mpImpl->meOriginalEditMode, false); - SetStatusEventHdl(Link<>()); + SetStatusEventHdl(Link<EditStatus&,void>()); OUString sViewURL; switch (ePageKind) { diff --git a/sd/source/ui/view/outlview.cxx b/sd/source/ui/view/outlview.cxx index 17fe875..1ad94d2 100644 --- a/sd/source/ui/view/outlview.cxx +++ b/sd/source/ui/view/outlview.cxx @@ -774,14 +774,14 @@ IMPL_LINK_TYPED( OutlineView, DepthChangedHdl, ::Outliner *, pOutliner, void ) /** * Handler for StatusEvents */ -IMPL_LINK_NOARG(OutlineView, StatusEventHdl) +IMPL_LINK_NOARG_TYPED(OutlineView, StatusEventHdl, EditStatus&, void) { ::sd::Window* pWin = mrOutlineViewShell.GetActiveWindow(); OutlinerView* pOutlinerView = GetViewByWindow(pWin); - Rectangle aVis = pOutlinerView->GetVisArea(); - Rectangle aText = Rectangle(Point(0,0), - Size(mnPaperWidth, - mrOutliner.GetTextHeight())); + Rectangle aVis = pOutlinerView->GetVisArea(); + Rectangle aText = Rectangle(Point(0,0), + Size(mnPaperWidth, + mrOutliner.GetTextHeight())); Rectangle aWin(Point(0,0), pWin->GetOutputSizePixel()); aWin = pWin->PixelToLogic(aWin); @@ -794,8 +794,6 @@ IMPL_LINK_NOARG(OutlineView, StatusEventHdl) Point(aVis.TopLeft())); mrOutlineViewShell.UpdateScrollBars(); } - - return 0; } IMPL_LINK_NOARG(OutlineView, BeginDropHdl) @@ -1363,13 +1361,12 @@ void OutlineView::SetLinks() */ void OutlineView::ResetLinks() const { - Link<> aEmptyLink; mrOutliner.SetParaInsertedHdl(Link<::Outliner*,void>()); mrOutliner.SetParaRemovingHdl(Link<::Outliner*,void>()); mrOutliner.SetDepthChangedHdl(Link<::Outliner*,void>()); mrOutliner.SetBeginMovingHdl(Link<::Outliner*,void>()); mrOutliner.SetEndMovingHdl(Link<::Outliner*,void>()); - mrOutliner.SetStatusEventHdl(aEmptyLink); + mrOutliner.SetStatusEventHdl(Link<EditStatus&,void>()); mrOutliner.SetRemovingPagesHdl(Link<OutlinerView*,bool>()); mrOutliner.SetIndentingPagesHdl(Link<OutlinerView*,bool>()); mrOutliner.SetDrawPortionHdl(Link<DrawPortionInfo*,void>()); diff --git a/starmath/inc/edit.hxx b/starmath/inc/edit.hxx index b277bcd..a672ad6 100644 --- a/starmath/inc/edit.hxx +++ b/starmath/inc/edit.hxx @@ -72,7 +72,7 @@ class SmEditWindow : public vcl::Window, public DropTargetHelper virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ) SAL_OVERRIDE; virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) SAL_OVERRIDE; - DECL_LINK(EditStatusHdl ,EditStatus *); + DECL_LINK_TYPED(EditStatusHdl, EditStatus&, void); DECL_LINK_TYPED(ScrollHdl, ScrollBar*, void); void CreateEditView(); diff --git a/starmath/source/edit.cxx b/starmath/source/edit.cxx index 4996e44..d7d7d0e 100644 --- a/starmath/source/edit.cxx +++ b/starmath/source/edit.cxx @@ -141,7 +141,7 @@ void SmEditWindow::dispose() EditEngine *pEditEngine = pEditView->GetEditEngine(); if (pEditEngine) { - pEditEngine->SetStatusEventHdl( Link<>() ); + pEditEngine->SetStatusEventHdl( Link<EditStatus&,void>() ); pEditEngine->RemoveView( pEditView.get() ); } pEditView.reset(); @@ -570,15 +570,10 @@ void SmEditWindow::CreateEditView() } -IMPL_LINK( SmEditWindow, EditStatusHdl, EditStatus *, /*pStat*/ ) +IMPL_LINK_NOARG_TYPED( SmEditWindow, EditStatusHdl, EditStatus&, void ) { - if (!pEditView) - return 1; - else - { + if (pEditView) Resize(); - return 0; - } } IMPL_LINK_TYPED( SmEditWindow, ScrollHdl, ScrollBar *, /*pScrollBar*/, void ) @@ -718,7 +713,7 @@ void SmEditWindow::LoseFocus() { EditEngine *pEditEngine = GetEditEngine(); if (pEditEngine) - pEditEngine->SetStatusEventHdl( Link<>() ); + pEditEngine->SetStatusEventHdl( Link<EditStatus&,void>() ); Window::LoseFocus(); @@ -1099,7 +1094,7 @@ void SmEditWindow::DeleteEditView( SmViewShell & /*rView*/ ) std::unique_ptr<EditEngine> xEditEngine(pEditView->GetEditEngine()); if (xEditEngine) { - xEditEngine->SetStatusEventHdl( Link<>() ); + xEditEngine->SetStatusEventHdl( Link<EditStatus&,void>() ); xEditEngine->RemoveView( pEditView.get() ); } pEditView.reset(); diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index ececaa6..29b1b9b 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -476,17 +476,16 @@ OutlinerView* SdrObjEditView::ImpMakeOutlinerView(vcl::Window* pWin, bool /*bNoP return pOutlView; } -IMPL_LINK(SdrObjEditView,ImpOutlinerStatusEventHdl,EditStatus*,pEditStat) +IMPL_LINK_TYPED(SdrObjEditView,ImpOutlinerStatusEventHdl, EditStatus&, rEditStat, void) { if(pTextEditOutliner ) { SdrTextObj* pTextObj = dynamic_cast< SdrTextObj * >( mxTextEditObj.get() ); if( pTextObj ) { - pTextObj->onEditOutlinerStatusEvent( pEditStat ); + pTextObj->onEditOutlinerStatusEvent( &rEditStat ); } } - return 0; } IMPL_LINK_TYPED(SdrObjEditView,ImpOutlinerCalcFieldValueHdl,EditFieldInfo*,pFI,void) commit d30aedb2a381e89a5a3466f06c95ff7636c9306d Author: Noel Grandin <[email protected]> Date: Tue Sep 15 15:33:36 2015 +0200 convert Link<> to typed Change-Id: Id5be64f38fa448271a5364c86c32ffddfc309bbf diff --git a/editeng/source/editeng/editdoc.hxx b/editeng/source/editeng/editdoc.hxx index 4e97c61..38065fa 100644 --- a/editeng/source/editeng/editdoc.hxx +++ b/editeng/source/editeng/editdoc.hxx @@ -747,7 +747,7 @@ private: boost::ptr_vector<ContentNode> maContents; SfxItemPool* pItemPool; - Link<> aModifyHdl; + Link<LinkParamNone*,void> aModifyHdl; SvxFont aDefFont; //faster than ever from the pool!! sal_uInt16 nDefTab; @@ -769,7 +769,7 @@ public: bool IsModified() const { return bModified; } void SetModified( bool b ); - void SetModifyHdl( const Link<>& rLink ) { aModifyHdl = rLink; } + void SetModifyHdl( const Link<LinkParamNone*,void>& rLink ) { aModifyHdl = rLink; } void CreateDefFont( bool bUseStyles ); const SvxFont& GetDefFont() { return aDefFont; } diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index 87556e5..91d5b49 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -657,10 +657,10 @@ private: inline VirtualDevice* GetVirtualDevice( const MapMode& rMapMode, DrawModeFlags nDrawMode ); inline void EraseVirtualDevice() { pVirtDev.disposeAndClear(); } - DECL_LINK_TYPED(StatusTimerHdl, Timer *, void); - DECL_LINK_TYPED(IdleFormatHdl, Idle *, void); - DECL_LINK_TYPED(OnlineSpellHdl, Timer *, void); - DECL_LINK( DocModified, void* ); + DECL_LINK_TYPED( StatusTimerHdl, Timer *, void); + DECL_LINK_TYPED( IdleFormatHdl, Idle *, void); + DECL_LINK_TYPED( OnlineSpellHdl, Timer *, void); + DECL_LINK_TYPED( DocModified, LinkParamNone*, void ); void CheckIdleFormatter(); diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 90e131b..87507f6 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -4370,10 +4370,9 @@ void ImpEditEngine::LeaveBlockNotifications() } } -IMPL_LINK_NOARG(ImpEditEngine, DocModified) +IMPL_LINK_NOARG_TYPED(ImpEditEngine, DocModified, LinkParamNone*, void) { aModifyHdl.Call( NULL /*GetEditEnginePtr()*/ ); // NULL, because also used for Outliner - return 0; } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 7beefb1fe6e56bfaf24d4660e11baf5abfa3b675 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 15:30:24 2015 +0200 convert Link<> to typed Change-Id: If80d43267ce498f713a318f281e5fe86d787d601 diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index b5124e9..8649a4d 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -476,7 +476,7 @@ TriState StyleTreeListBox_Impl::NotifyMoving(SvTreeListEntry* pTarget, return TRISTATE_FALSE; aParent = GetEntryText(pTarget); aStyle = GetEntryText(pEntry); - const bool bRet = (bool)aDropLink.Call(this); + const bool bRet = aDropLink.Call(*this); rpNewParent = pTarget; lPos=0; IntlWrapper aIntlWrapper( Application::GetSettings().GetLanguageTag() ); @@ -1864,13 +1864,13 @@ SfxObjectShell* SfxCommonTemplateDialog_Impl::SaveSelection() return pDocShell; } -IMPL_LINK( SfxCommonTemplateDialog_Impl, DropHdl, StyleTreeListBox_Impl *, pBox ) +IMPL_LINK_TYPED( SfxCommonTemplateDialog_Impl, DropHdl, StyleTreeListBox_Impl&, rBox, bool ) { - bDontUpdate=true; + bDontUpdate = true; const SfxStyleFamilyItem *pItem = GetFamilyItem_Impl(); const SfxStyleFamily eFam = pItem->GetFamily(); - long ret= pStyleSheetPool->SetParent(eFam,pBox->GetStyle(), pBox->GetParent())? 1L: 0L; - bDontUpdate=false; + bool ret = pStyleSheetPool->SetParent(eFam, rBox.GetStyle(), rBox.GetParent()); + bDontUpdate = false; return ret; } diff --git a/sfx2/source/inc/templdgi.hxx b/sfx2/source/inc/templdgi.hxx index d0c7716..0406451 100644 --- a/sfx2/source/inc/templdgi.hxx +++ b/sfx2/source/inc/templdgi.hxx @@ -98,9 +98,9 @@ class StyleTreeListBox_Impl : public DropListBox_Impl private: SvTreeListEntry* pCurEntry; Link<LinkParamNone*,void> aDoubleClickLink; - Link<> aDropLink; + Link<StyleTreeListBox_Impl&,bool> aDropLink; OUString aParent; - OUString aStyle; + OUString aStyle; protected: virtual void Command(const CommandEvent& rMEvt) SAL_OVERRIDE; @@ -120,7 +120,7 @@ public: { aDoubleClickLink = rLink; } - void SetDropHdl(const Link<> &rLink) + void SetDropHdl(const Link<StyleTreeListBox_Impl&,bool> &rLink) { aDropLink = rLink; } @@ -219,7 +219,7 @@ protected: DECL_LINK_TYPED( FmtSelectHdl, SvTreeListBox*, void ); DECL_LINK_TYPED( ApplyHdl, LinkParamNone*, void ); DECL_LINK_TYPED( TreeListApplyHdl, SvTreeListBox*, bool ); - DECL_LINK( DropHdl, StyleTreeListBox_Impl* ); + DECL_LINK_TYPED( DropHdl, StyleTreeListBox_Impl&, bool ); DECL_LINK_TYPED( TimeOut, Idle*, void ); virtual void EnableItem(sal_uInt16 /*nMesId*/, bool /*bCheck*/ = true) commit 16e0ee6e6a4eb1802e06dd1d682b1a3b1affeb5c Author: Noel Grandin <[email protected]> Date: Tue Sep 15 15:28:04 2015 +0200 convert Link<> to typed Change-Id: I8eb0df9a20a748286385fb6c9d4d03c2ad153989 diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index fb78251..b5124e9 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -431,7 +431,7 @@ PopupMenu* StyleTreeListBox_Impl::CreateContextMenu() */ bool StyleTreeListBox_Impl::DoubleClickHdl() { - aDoubleClickLink.Call(this); + aDoubleClickLink.Call(nullptr); return false; } @@ -453,7 +453,7 @@ bool StyleTreeListBox_Impl::Notify( NotifyEvent& rNEvt ) const vcl::KeyCode& rKeyCode = rNEvt.GetKeyEvent()->GetKeyCode(); if ( !rKeyCode.GetModifier() && KEY_RETURN == rKeyCode.GetCode() ) { - aDoubleClickLink.Call( this ); + aDoubleClickLink.Call( nullptr ); nRet = true; } } @@ -2088,11 +2088,12 @@ void SfxCommonTemplateDialog_Impl::ResetFocus() IMPL_LINK_NOARG_TYPED( SfxCommonTemplateDialog_Impl, TreeListApplyHdl, SvTreeListBox *, bool ) { - return ApplyHdl(NULL) == 1; + ApplyHdl(nullptr); + return false; } // Double-click on a style sheet in the ListBox is applied. -IMPL_LINK( SfxCommonTemplateDialog_Impl, ApplyHdl, Control *, /*pControl*/ ) +IMPL_LINK_NOARG_TYPED( SfxCommonTemplateDialog_Impl, ApplyHdl, LinkParamNone*, void ) { // only if that region is allowed if ( IsInitialized() && 0 != pFamilyState[nActFamily-1] && @@ -2105,7 +2106,6 @@ IMPL_LINK( SfxCommonTemplateDialog_Impl, ApplyHdl, Control *, /*pControl*/ ) 0, 0, &nModifier ); } ResetFocus(); - return 0; } // Selection of a template during the Watercan-Status diff --git a/sfx2/source/inc/templdgi.hxx b/sfx2/source/inc/templdgi.hxx index 0ece9f5..d0c7716 100644 --- a/sfx2/source/inc/templdgi.hxx +++ b/sfx2/source/inc/templdgi.hxx @@ -97,7 +97,7 @@ class StyleTreeListBox_Impl : public DropListBox_Impl { private: SvTreeListEntry* pCurEntry; - Link<> aDoubleClickLink; + Link<LinkParamNone*,void> aDoubleClickLink; Link<> aDropLink; OUString aParent; OUString aStyle; @@ -116,7 +116,7 @@ public: void Recalc(); - void SetDoubleClickHdl(const Link<> &rLink) + void SetDoubleClickHdl(const Link<LinkParamNone*,void> &rLink) { aDoubleClickLink = rLink; } @@ -217,7 +217,7 @@ protected: DECL_LINK( FilterSelectHdl, ListBox* ); DECL_LINK_TYPED( FmtSelectHdl, SvTreeListBox*, void ); - DECL_LINK( ApplyHdl, Control* ); + DECL_LINK_TYPED( ApplyHdl, LinkParamNone*, void ); DECL_LINK_TYPED( TreeListApplyHdl, SvTreeListBox*, bool ); DECL_LINK( DropHdl, StyleTreeListBox_Impl* ); DECL_LINK_TYPED( TimeOut, Idle*, void ); commit 5496f2a3ee8e76dda6d1c393308be1e9bbb90d6e Author: Noel Grandin <[email protected]> Date: Tue Sep 15 15:05:45 2015 +0200 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 e83b9ef..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 0295b91..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(); commit 3368bca3c29592af8190cfd8829d76ed768651b7 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 14:24:40 2015 +0200 convert Link<> to typed Change-Id: I38996f9ab99efd10dcfabd532cabfbb7691ef357 diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx index 6950867..3a102be 100644 --- a/sfx2/source/appl/newhelp.cxx +++ b/sfx2/source/appl/newhelp.cxx @@ -2929,7 +2929,7 @@ IMPL_LINK_NOARG(SfxHelpWindow_Impl, OpenHdl) -IMPL_LINK( SfxHelpWindow_Impl, SelectFactoryHdl, SfxHelpIndexWindow_Impl* , pWin ) +IMPL_LINK_TYPED( SfxHelpWindow_Impl, SelectFactoryHdl, SfxHelpIndexWindow_Impl* , pWin, void ) { if ( sTitle.isEmpty() ) sTitle = GetParent()->GetText(); @@ -2943,8 +2943,6 @@ IMPL_LINK( SfxHelpWindow_Impl, SelectFactoryHdl, SfxHelpIndexWindow_Impl* , pWin if ( pWin ) ShowStartPage(); pIndexWin->ClearSearchPage(); - - return 0; } diff --git a/sfx2/source/appl/newhelp.hxx b/sfx2/source/appl/newhelp.hxx index 61e143a..175b6f5f3b 100644 --- a/sfx2/source/appl/newhelp.hxx +++ b/sfx2/source/appl/newhelp.hxx @@ -287,9 +287,9 @@ private: Idle aIdle; - Link<> aSelectFactoryLink; + Link<SfxHelpIndexWindow_Impl*,void> aSelectFactoryLink; Link<> aPageDoubleClickLink; - Link<IndexTabPage_Impl&,void> aIndexKeywordLink; + Link<IndexTabPage_Impl&,void> aIndexKeywordLink; OUString sKeyword; VclPtr<SfxHelpWindow_Impl> pParentWin; @@ -330,7 +330,7 @@ public: virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE; void SetDoubleClickHdl( const Link<>& rLink ); - inline void SetSelectFactoryHdl( const Link<>& rLink ) { aSelectFactoryLink = rLink; } + inline void SetSelectFactoryHdl( const Link<SfxHelpIndexWindow_Impl*,void>& rLink ) { aSelectFactoryLink = rLink; } void SetFactory( const OUString& rFactory, bool bActive ); inline OUString GetFactory() const { return pIPage->GetFactory(); } OUString GetSelectEntry() const; @@ -523,7 +523,7 @@ friend class SfxHelpIndexWindow_Impl; DECL_LINK_TYPED( SelectHdl, ToolBox*, void ); DECL_LINK(OpenHdl, void *); - DECL_LINK( SelectFactoryHdl, SfxHelpIndexWindow_Impl* ); + DECL_LINK_TYPED( SelectFactoryHdl, SfxHelpIndexWindow_Impl*, void ); DECL_LINK_TYPED( ChangeHdl, HelpListener_Impl&, void ); public: commit 7edf29b33f39a067f77a0ef19b5786dc2fa10b9e Author: Noel Grandin <[email protected]> Date: Tue Sep 15 14:16:26 2015 +0200 convert Link<> to typed Change-Id: I1cd4adb0b9ae24298a3978fdbfa0091e76f65044 diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx index 4da5f15..6950867 100644 --- a/sfx2/source/appl/newhelp.cxx +++ b/sfx2/source/appl/newhelp.cxx @@ -1045,7 +1045,7 @@ IMPL_LINK_NOARG_TYPED(SearchTabPage_Impl, ClickHdl, Button*, void) SearchHdl(NULL); } -IMPL_LINK_NOARG(SearchTabPage_Impl, SearchHdl) +IMPL_LINK_NOARG_TYPED(SearchTabPage_Impl, SearchHdl, LinkParamNone*, void) { OUString aSearchText = comphelper::string::strip(m_pSearchED->GetText(), ' '); if ( !aSearchText.isEmpty() ) @@ -1081,7 +1081,6 @@ IMPL_LINK_NOARG(SearchTabPage_Impl, SearchHdl) aBox->Execute(); } } - return 0; } IMPL_LINK_NOARG_TYPED(SearchTabPage_Impl, OpenHdl, Button*, void) diff --git a/sfx2/source/appl/newhelp.hxx b/sfx2/source/appl/newhelp.hxx index 9ac7c85..61e143a 100644 --- a/sfx2/source/appl/newhelp.hxx +++ b/sfx2/source/appl/newhelp.hxx @@ -170,7 +170,7 @@ public: class SearchBox_Impl : public ComboBox { private: - Link<> aSearchLink; + Link<LinkParamNone*,void> aSearchLink; public: SearchBox_Impl(vcl::Window* pParent, WinBits nStyle) @@ -182,7 +182,7 @@ public: virtual bool PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE; virtual void Select() SAL_OVERRIDE; - inline void SetSearchLink( const Link<>& rLink ) { aSearchLink = rLink; } + inline void SetSearchLink( const Link<LinkParamNone*,void>& rLink ) { aSearchLink = rLink; } }; class SearchResultsBox_Impl : public ListBox @@ -214,7 +214,7 @@ private: void ClearSearchResults(); void RememberSearchText( const OUString& rSearchText ); - DECL_LINK(SearchHdl, void *); + DECL_LINK_TYPED(SearchHdl, LinkParamNone*, void); DECL_LINK_TYPED(ClickHdl, Button*, void); DECL_LINK_TYPED(OpenHdl, Button*, void); DECL_LINK(ModifyHdl, void *); commit a72445099566348a56410a0df7b04af35ab684b5 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 14:14:50 2015 +0200 convert Link<> to typed Change-Id: Ied94f9defc1650822b8d09713e3d2f6fa2b8611d diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx index 934b90e..4da5f15 100644 --- a/sfx2/source/appl/newhelp.cxx +++ b/sfx2/source/appl/newhelp.cxx @@ -719,7 +719,7 @@ void IndexTabPage_Impl::InitializeIndex() m_pIndexCB->SetUpdateMode( true ); if ( !sKeyword.isEmpty() ) - aKeywordLink.Call( this ); + aKeywordLink.Call( *this ); } #undef INSERT_DATA @@ -749,7 +749,7 @@ IMPL_LINK_TYPED( IndexTabPage_Impl, IdleHdl, Idle*, pIdle, void ) IMPL_LINK_TYPED( IndexTabPage_Impl, TimeoutHdl, Timer*, pTimer, void) { if(&aKeywordTimer == pTimer && !sKeyword.isEmpty()) - aKeywordLink.Call(this); + aKeywordLink.Call(*this); } void IndexTabPage_Impl::ActivatePage() @@ -1616,7 +1616,7 @@ IMPL_LINK_NOARG_TYPED(SfxHelpIndexWindow_Impl, SelectFactoryHdl, Idle *, void) } } -IMPL_LINK_NOARG(SfxHelpIndexWindow_Impl, KeywordHdl) +IMPL_LINK_NOARG_TYPED(SfxHelpIndexWindow_Impl, KeywordHdl, IndexTabPage_Impl&, void) { // keyword found on index? bool bIndex = pIPage->HasKeyword(); @@ -1636,8 +1636,6 @@ IMPL_LINK_NOARG(SfxHelpIndexWindow_Impl, KeywordHdl) pIPage->OpenKeyword(); else if ( !pSPage->OpenKeyword( sKeyword ) ) pParentWin->ShowStartPage(); - - return 0; } void SfxHelpIndexWindow_Impl::Resize() diff --git a/sfx2/source/appl/newhelp.hxx b/sfx2/source/appl/newhelp.hxx index ce422d8..9ac7c85 100644 --- a/sfx2/source/appl/newhelp.hxx +++ b/sfx2/source/appl/newhelp.hxx @@ -127,7 +127,7 @@ private: Idle aFactoryIdle; Timer aKeywordTimer; - Link<> aKeywordLink; + Link<IndexTabPage_Impl&,void> aKeywordLink; OUString sFactory; OUString sKeyword; @@ -154,12 +154,12 @@ public: inline OUString GetFactory() const { return sFactory; } OUString GetSelectEntry() const; inline void SetFocusOnBox() { m_pIndexCB->GrabFocus(); } - inline bool HasFocusOnEdit() const { return m_pIndexCB->HasChildPathFocus(); } + inline bool HasFocusOnEdit() const { return m_pIndexCB->HasChildPathFocus(); } - inline void SetKeywordHdl( const Link<>& rLink ) { aKeywordLink = rLink; } + inline void SetKeywordHdl( const Link<IndexTabPage_Impl&,void>& rLink ) { aKeywordLink = rLink; } void SetKeyword( const OUString& rKeyword ); - bool HasKeyword() const; - bool HasKeywordIgnoreCase(); + bool HasKeyword() const; + bool HasKeywordIgnoreCase(); void OpenKeyword(); inline void SelectExecutableEntry() { m_pIndexCB->SelectExecutableEntry(); } @@ -289,7 +289,7 @@ private: Link<> aSelectFactoryLink; Link<> aPageDoubleClickLink; - Link<> aIndexKeywordLink; + Link<IndexTabPage_Impl&,void> aIndexKeywordLink; OUString sKeyword; VclPtr<SfxHelpWindow_Impl> pParentWin; @@ -316,7 +316,7 @@ private: DECL_LINK(SelectHdl, void *); DECL_LINK_TYPED(InitHdl, Idle *, void); DECL_LINK_TYPED(SelectFactoryHdl, Idle *, void); - DECL_LINK(KeywordHdl, void *); + DECL_LINK_TYPED(KeywordHdl, IndexTabPage_Impl&, void); DECL_LINK_TYPED(ContentTabPageDoubleClickHdl, SvTreeListBox*, bool); public: commit 11c4f58fb12810740cdd8409e4991a92efde6c97 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 14:10:46 2015 +0200 convert Link<> to typed Change-Id: I2573b42143078c4e72ab201392c69ee296f4974e diff --git a/cui/source/dialogs/linkdlg.cxx b/cui/source/dialogs/linkdlg.cxx index 1f02356..8fd24a1 100644 --- a/cui/source/dialogs/linkdlg.cxx +++ b/cui/source/dialogs/linkdlg.cxx @@ -519,12 +519,12 @@ IMPL_LINK_NOARG_TYPED( SvBaseLinksDlg, UpdateWaitingHdl, Idle*, void ) m_pTbLinks->SetUpdateMode(true); } -IMPL_LINK( SvBaseLinksDlg, EndEditHdl, sfx2::SvBaseLink*, _pLink ) +IMPL_LINK_TYPED( SvBaseLinksDlg, EndEditHdl, sfx2::SvBaseLink&, _rLink, void ) { sal_uLong nPos; GetSelEntry( &nPos ); - if( _pLink && _pLink->WasLastEditOK() ) + if( _rLink.WasLastEditOK() ) { // StarImpress/Draw swap the LinkObjects themselves! // So search for the link in the manager; if it does not exist @@ -532,7 +532,7 @@ IMPL_LINK( SvBaseLinksDlg, EndEditHdl, sfx2::SvBaseLink*, _pLink ) // edited link needs to be refreshed. bool bLinkFnd = false; for( size_t n = pLinkMgr->GetLinks().size(); n; ) - if( _pLink == &(*pLinkMgr->GetLinks()[ --n ]) ) + if( &_rLink == &(*pLinkMgr->GetLinks()[ --n ]) ) { bLinkFnd = true; break; @@ -543,7 +543,7 @@ IMPL_LINK( SvBaseLinksDlg, EndEditHdl, sfx2::SvBaseLink*, _pLink ) m_pTbLinks->SetUpdateMode(false); m_pTbLinks->GetModel()->Remove( m_pTbLinks->GetEntry( nPos ) ); SvTreeListEntry* pToUnselect = m_pTbLinks->FirstSelected(); - InsertEntry( *_pLink, nPos, true ); + InsertEntry( _rLink, nPos, true ); if(pToUnselect) m_pTbLinks->Select(pToUnselect, false); m_pTbLinks->SetUpdateMode(true); @@ -557,7 +557,6 @@ IMPL_LINK( SvBaseLinksDlg, EndEditHdl, sfx2::SvBaseLink*, _pLink ) if (pLinkMgr && pLinkMgr->GetPersist()) pLinkMgr->GetPersist()->SetModified(); } - return 0; } OUString SvBaseLinksDlg::ImplGetStateStr( const SvBaseLink& rLnk ) diff --git a/cui/source/inc/linkdlg.hxx b/cui/source/inc/linkdlg.hxx index 22f9a0d..429cef0 100644 --- a/cui/source/inc/linkdlg.hxx +++ b/cui/source/inc/linkdlg.hxx @@ -72,7 +72,7 @@ class SvBaseLinksDlg : public ModalDialog DECL_LINK_TYPED( ChangeSourceClickHdl, Button *, void ); DECL_LINK_TYPED( BreakLinkClickHdl, Button *, void ); DECL_LINK_TYPED( UpdateWaitingHdl, Idle *, void ); - DECL_LINK( EndEditHdl, sfx2::SvBaseLink* ); + DECL_LINK_TYPED( EndEditHdl, sfx2::SvBaseLink&, void ); sfx2::SvBaseLink* GetSelEntry( sal_uLong* pPos ); OUString ImplGetStateStr( const sfx2::SvBaseLink& ); void SetType( sfx2::SvBaseLink& rLink, sal_uLong nPos, SfxLinkUpdateMode nType ); diff --git a/include/sfx2/lnkbase.hxx b/include/sfx2/lnkbase.hxx index 164b26d..cb7e4a6 100644 --- a/include/sfx2/lnkbase.hxx +++ b/include/sfx2/lnkbase.hxx @@ -146,7 +146,7 @@ public: void Disconnect(); // Link impl: DECL_LINK( MyEndDialogHdl, SvBaseLink* ); <= param is this - virtual void Edit( vcl::Window*, const Link<>& rEndEditHdl ); + virtual void Edit( vcl::Window*, const Link<SvBaseLink&,void>& rEndEditHdl ); // should the link appear in the dialog? (to the left in the link in the...) bool IsVisible() const { return bVisible; } diff --git a/sc/inc/arealink.hxx b/sc/inc/arealink.hxx index f55dc97..97b2388 100644 --- a/sc/inc/arealink.hxx +++ b/sc/inc/arealink.hxx @@ -54,7 +54,7 @@ public: virtual ::sfx2::SvBaseLink::UpdateResult DataChanged( const OUString& rMimeType, const ::com::sun::star::uno::Any & rValue ) SAL_OVERRIDE; - virtual void Edit( vcl::Window*, const Link<>& rEndEditHdl ) SAL_OVERRIDE; + virtual void Edit( vcl::Window*, const Link<SvBaseLink&,void>& rEndEditHdl ) SAL_OVERRIDE; bool Refresh( const OUString& rNewFile, const OUString& rNewFilter, const OUString& rNewArea, sal_uLong nNewRefresh ); diff --git a/sc/inc/externalrefmgr.hxx b/sc/inc/externalrefmgr.hxx index c99bacc..be51351 100644 --- a/sc/inc/externalrefmgr.hxx +++ b/sc/inc/externalrefmgr.hxx @@ -70,7 +70,7 @@ public: virtual void Closed() SAL_OVERRIDE; virtual ::sfx2::SvBaseLink::UpdateResult DataChanged( const OUString& rMimeType, const ::com::sun::star::uno::Any & rValue) SAL_OVERRIDE; - virtual void Edit(vcl::Window* pParent, const Link<>& rEndEditHdl) SAL_OVERRIDE; + virtual void Edit(vcl::Window* pParent, const Link<SvBaseLink&,void>& rEndEditHdl) SAL_OVERRIDE; void SetDoReferesh(bool b); diff --git a/sc/inc/tablink.hxx b/sc/inc/tablink.hxx index 6d096ce..eebc502 100644 --- a/sc/inc/tablink.hxx +++ b/sc/inc/tablink.hxx @@ -52,7 +52,7 @@ public: virtual ::sfx2::SvBaseLink::UpdateResult DataChanged( const OUString& rMimeType, const ::com::sun::star::uno::Any & rValue ) SAL_OVERRIDE; - virtual void Edit( vcl::Window*, const Link<>& rEndEditHdl ) SAL_OVERRIDE; + virtual void Edit( vcl::Window*, const Link<SvBaseLink&,void>& rEndEditHdl ) SAL_OVERRIDE; bool Refresh(const OUString& rNewFile, const OUString& rNewFilter, const OUString* pNewOptions /* = NULL */, sal_uLong nNewRefresh ); @@ -66,7 +66,7 @@ public: bool IsUsed() const; DECL_LINK_TYPED( RefreshHdl, Timer*, void ); - DECL_LINK( TableEndEditHdl, ::sfx2::SvBaseLink* ); + DECL_LINK_TYPED( TableEndEditHdl, ::sfx2::SvBaseLink&, void ); }; class ScDocument; diff --git a/sc/source/ui/docshell/arealink.cxx b/sc/source/ui/docshell/arealink.cxx index b4c33ef..c982dcb 100644 --- a/sc/source/ui/docshell/arealink.cxx +++ b/sc/source/ui/docshell/arealink.cxx @@ -84,7 +84,7 @@ ScAreaLink::~ScAreaLink() delete pImpl; } -void ScAreaLink::Edit(vcl::Window* pParent, const Link<>& /* rEndEditHdl */ ) +void ScAreaLink::Edit(vcl::Window* pParent, const Link<SvBaseLink&,void>& /* rEndEditHdl */ ) { // use own dialog instead of SvBaseLink::Edit... // DefModalDialogParent setzen, weil evtl. aus der DocShell beim ConvertFrom diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx index 870947c..96d1743 100644 --- a/sc/source/ui/docshell/externalrefmgr.cxx +++ b/sc/source/ui/docshell/externalrefmgr.cxx @@ -1327,9 +1327,9 @@ void ScExternalRefLink::Closed() return SUCCESS; } -void ScExternalRefLink::Edit(vcl::Window* pParent, const Link<>& /*rEndEditHdl*/) +void ScExternalRefLink::Edit(vcl::Window* pParent, const Link<SvBaseLink&,void>& /*rEndEditHdl*/) { - SvBaseLink::Edit(pParent, Link<>()); + SvBaseLink::Edit(pParent, Link<SvBaseLink&,void>()); } void ScExternalRefLink::SetDoReferesh(bool b) diff --git a/sc/source/ui/docshell/tablink.cxx b/sc/source/ui/docshell/tablink.cxx index 3239b5a..a391691 100644 --- a/sc/source/ui/docshell/tablink.cxx +++ b/sc/source/ui/docshell/tablink.cxx @@ -47,9 +47,9 @@ struct TableLink_Impl { - ScDocShell* m_pDocSh; - VclPtr<vcl::Window> m_pOldParent; - Link<> m_aEndEditLink; + ScDocShell* m_pDocSh; + VclPtr<vcl::Window> m_pOldParent; + Link<sfx2::SvBaseLink&,void> m_aEndEditLink; TableLink_Impl() : m_pDocSh( NULL ), m_pOldParent( NULL ) {} }; @@ -105,7 +105,7 @@ ScTableLink::~ScTableLink() delete pImpl; } -void ScTableLink::Edit( vcl::Window* pParent, const Link<>& rEndEditHdl ) +void ScTableLink::Edit( vcl::Window* pParent, const Link<SvBaseLink&,void>& rEndEditHdl ) { // DefModalDialogParent setzen, weil evtl. aus der DocShell beim ConvertFrom // ein Optionen-Dialog kommt... @@ -418,13 +418,12 @@ IMPL_LINK_NOARG_TYPED(ScTableLink, RefreshHdl, Timer *, void) Refresh( aFileName, aFilterName, NULL, GetRefreshDelay() ); } -IMPL_LINK( ScTableLink, TableEndEditHdl, ::sfx2::SvBaseLink*, pLink ) +IMPL_LINK_TYPED( ScTableLink, TableEndEditHdl, ::sfx2::SvBaseLink&, rLink, void ) { if ( pImpl->m_aEndEditLink.IsSet() ) - pImpl->m_aEndEditLink.Call( pLink ); + pImpl->m_aEndEditLink.Call( rLink ); bInEdit = false; Application::SetDefDialogParent( pImpl->m_pOldParent ); - return 0; } // === ScDocumentLoader ================================================== diff --git a/sfx2/source/appl/lnkbase2.cxx b/sfx2/source/appl/lnkbase2.cxx index a899d9e..6027539 100644 --- a/sfx2/source/appl/lnkbase2.cxx +++ b/sfx2/source/appl/lnkbase2.cxx @@ -44,7 +44,7 @@ class ImplDdeItem; struct BaseLink_Impl { - Link<> m_aEndEditLink; + Link<SvBaseLink&,void> m_aEndEditLink; LinkManager* m_pLinkMgr; VclPtr<vcl::Window> m_pParentWin; FileDialogHelper* m_pFileDlg; @@ -254,7 +254,7 @@ IMPL_LINK_TYPED( SvBaseLink, EndEditHdl, const OUString&, _rNewName, void ) sNewName.clear(); bWasLastEditOK = !sNewName.isEmpty(); if ( pImpl->m_aEndEditLink.IsSet() ) - pImpl->m_aEndEditLink.Call( this ); + pImpl->m_aEndEditLink.Call( *this ); } @@ -472,7 +472,7 @@ SvBaseLink::UpdateResult SvBaseLink::DataChanged( const OUString &, const ::com: return SUCCESS; } -void SvBaseLink::Edit( vcl::Window* pParent, const Link<>& rEndEditHdl ) +void SvBaseLink::Edit( vcl::Window* pParent, const Link<SvBaseLink&,void>& rEndEditHdl ) { pImpl->m_pParentWin = pParent; pImpl->m_aEndEditLink = rEndEditHdl; @@ -506,7 +506,7 @@ void SvBaseLink::Edit( vcl::Window* pParent, const Link<>& rEndEditHdl ) ExecuteEdit( OUString() ); bWasLastEditOK = false; if ( pImpl->m_aEndEditLink.IsSet() ) - pImpl->m_aEndEditLink.Call( this ); + pImpl->m_aEndEditLink.Call( *this ); } } commit 34c55149476dbdc369382098eab92874b296310e Author: Noel Grandin <[email protected]> Date: Tue Sep 15 13:51:46 2015 +0200 convert Link<> to typed Change-Id: I1956a7b3cf1d6f3757e6586b793d4355e0697ca9 diff --git a/sfx2/source/appl/helpinterceptor.cxx b/sfx2/source/appl/helpinterceptor.cxx index c522046..7a44fc1 100644 --- a/sfx2/source/appl/helpinterceptor.cxx +++ b/sfx2/source/appl/helpinterceptor.cxx @@ -292,21 +292,17 @@ HelpListener_Impl::HelpListener_Impl( HelpInterceptor_Impl* pInter ) void SAL_CALL HelpListener_Impl::statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) - throw( ::com::sun::star::uno::RuntimeException, std::exception ) - { INetURLObject aObj( Event.FeatureURL.Complete ); aFactory = aObj.GetHost(); - aChangeLink.Call( this ); + aChangeLink.Call( *this ); } void SAL_CALL HelpListener_Impl::disposing( const ::com::sun::star::lang::EventObject& ) - throw( ::com::sun::star::uno::RuntimeException, std::exception ) - { pInterceptor->removeStatusListener( this, ::com::sun::star::util::URL() ); pInterceptor = NULL; diff --git a/sfx2/source/appl/helpinterceptor.hxx b/sfx2/source/appl/helpinterceptor.hxx index 47d9c74..8a03f37 100644 --- a/sfx2/source/appl/helpinterceptor.hxx +++ b/sfx2/source/appl/helpinterceptor.hxx @@ -119,7 +119,7 @@ class HelpListener_Impl : public ::cppu::WeakImplHelper< ::com::sun::star::frame { private: HelpInterceptor_Impl* pInterceptor; - Link<> aChangeLink; + Link<HelpListener_Impl&,void> aChangeLink; OUString aFactory; public: @@ -130,7 +130,7 @@ public: virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& obj ) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE; - void SetChangeHdl( const Link<>& rLink ) { aChangeLink = rLink; } + void SetChangeHdl( const Link<HelpListener_Impl&,void>& rLink ) { aChangeLink = rLink; } OUString GetFactory() const { return aFactory; } }; // HelpStatusListener_Impl ----------------------------------------------------- diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx index 35a081b..934b90e 100644 --- a/sfx2/source/appl/newhelp.cxx +++ b/sfx2/source/appl/newhelp.cxx @@ -2952,10 +2952,9 @@ IMPL_LINK( SfxHelpWindow_Impl, SelectFactoryHdl, SfxHelpIndexWindow_Impl* , pWin -IMPL_LINK( SfxHelpWindow_Impl, ChangeHdl, HelpListener_Impl*, pListener ) +IMPL_LINK_TYPED( SfxHelpWindow_Impl, ChangeHdl, HelpListener_Impl&, rListener, void ) { - SetFactory( pListener->GetFactory() ); - return 0; + SetFactory( rListener.GetFactory() ); } diff --git a/sfx2/source/appl/newhelp.hxx b/sfx2/source/appl/newhelp.hxx index 33fec1f..ce422d8 100644 --- a/sfx2/source/appl/newhelp.hxx +++ b/sfx2/source/appl/newhelp.hxx @@ -524,7 +524,7 @@ friend class SfxHelpIndexWindow_Impl; DECL_LINK_TYPED( SelectHdl, ToolBox*, void ); DECL_LINK(OpenHdl, void *); DECL_LINK( SelectFactoryHdl, SfxHelpIndexWindow_Impl* ); - DECL_LINK( ChangeHdl, HelpListener_Impl* ); + DECL_LINK_TYPED( ChangeHdl, HelpListener_Impl&, void ); public: SfxHelpWindow_Impl( const ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 >& rFrame, commit 50ca487b2f4d7377b3357299025e8c50058ef596 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 13:49:49 2015 +0200 convert Link<> to typed Change-Id: Ic978fd8f03705c341ecb44685d840a6a240fee2d diff --git a/include/sfx2/linksrc.hxx b/include/sfx2/linksrc.hxx index 0a2fbc1..c288e98 100644 --- a/include/sfx2/linksrc.hxx +++ b/include/sfx2/linksrc.hxx @@ -85,7 +85,7 @@ public: virtual bool IsDataComplete() const; // Link impl: DECL_LINK( MyEndEditHdl, sfx2::FileDialogHelper* ); <= param is the dialog - virtual void Edit( vcl::Window *, SvBaseLink *, const Link<>& rEndEditHdl ); + virtual void Edit( vcl::Window *, SvBaseLink *, const Link<const OUString&, void>& rEndEditHdl ); void AddDataAdvise( SvBaseLink *, const rtl::OUString & rMimeType, diff --git a/include/sfx2/lnkbase.hxx b/include/sfx2/lnkbase.hxx index 4ee235b..164b26d 100644 --- a/include/sfx2/lnkbase.hxx +++ b/include/sfx2/lnkbase.hxx @@ -78,7 +78,7 @@ private: bool bUseCache : 1; // for Graphics Links! bool bWasLastEditOK : 1; - DECL_LINK( EndEditHdl, OUString* ); + DECL_LINK_TYPED( EndEditHdl, const OUString&, void ); bool ExecuteEdit( const OUString& _rNewName ); diff --git a/sfx2/source/appl/fileobj.cxx b/sfx2/source/appl/fileobj.cxx index b8c28b8..cb87302 100644 --- a/sfx2/source/appl/fileobj.cxx +++ b/sfx2/source/appl/fileobj.cxx @@ -392,7 +392,7 @@ OUString impl_getFilter( const OUString& _rURL ) return sFilter; } -void SvFileObject::Edit( vcl::Window* pParent, sfx2::SvBaseLink* pLink, const Link<>& rEndEditHdl ) +void SvFileObject::Edit( vcl::Window* pParent, sfx2::SvBaseLink* pLink, const Link<const OUString&, void>& rEndEditHdl ) { aEndEditLink = rEndEditHdl; OUString sFile, sRange, sTmpFilter; @@ -419,7 +419,7 @@ void SvFileObject::Edit( vcl::Window* pParent, sfx2::SvBaseLink* pLink, const Li sFile += aDlg.GetCurrentFilter(); if ( aEndEditLink.IsSet() ) - aEndEditLink.Call( &sFile ); + aEndEditLink.Call( sFile ); } else sFile.clear(); @@ -526,7 +526,7 @@ IMPL_LINK_TYPED( SvFileObject, DialogClosedHdl, sfx2::FileDialogHelper*, _pFileD } if ( aEndEditLink.IsSet() ) - aEndEditLink.Call( &sFile ); + aEndEditLink.Call( sFile ); } /* [Description] diff --git a/sfx2/source/appl/fileobj.hxx b/sfx2/source/appl/fileobj.hxx index c90da04..02a8c3e 100644 --- a/sfx2/source/appl/fileobj.hxx +++ b/sfx2/source/appl/fileobj.hxx @@ -31,7 +31,7 @@ class SvFileObject : public sfx2::SvLinkSource OUString sFileNm; OUString sFilter; OUString sReferer; - Link<> aEndEditLink; + Link<const OUString&, void> aEndEditLink; SfxMediumRef xMed; ImplSVEvent* nPostUserEventId; SfxMediumRef* pDelMed; @@ -69,7 +69,7 @@ public: bool bSynchron = false ) SAL_OVERRIDE; virtual bool Connect( sfx2::SvBaseLink* ) SAL_OVERRIDE; - virtual void Edit( vcl::Window *, sfx2::SvBaseLink *, const Link<>& rEndEditHdl ) SAL_OVERRIDE; + virtual void Edit( vcl::Window *, sfx2::SvBaseLink *, const Link<const OUString&, void>& rEndEditHdl ) SAL_OVERRIDE; // Ask whether you can access data directly or whether it has to be triggered virtual bool IsPending() const SAL_OVERRIDE; diff --git a/sfx2/source/appl/impldde.cxx b/sfx2/source/appl/impldde.cxx index d0a270c..920ebe0 100644 --- a/sfx2/source/appl/impldde.cxx +++ b/sfx2/source/appl/impldde.cxx @@ -266,13 +266,13 @@ bool SvDDEObject::Connect( SvBaseLink * pSvLink ) return true; } -void SvDDEObject::Edit( vcl::Window* pParent, sfx2::SvBaseLink* pBaseLink, const Link<>& rEndEditHdl ) +void SvDDEObject::Edit( vcl::Window* pParent, sfx2::SvBaseLink* pBaseLink, const Link<const OUString&, void>& rEndEditHdl ) { ScopedVclPtrInstance< SvDDELinkEditDialog > aDlg(pParent, pBaseLink); if ( RET_OK == aDlg->Execute() && rEndEditHdl.IsSet() ) { OUString sCommand = aDlg->GetCmd(); - rEndEditHdl.Call( &sCommand ); + rEndEditHdl.Call( sCommand ); } } diff --git a/sfx2/source/appl/impldde.hxx b/sfx2/source/appl/impldde.hxx index 0185c0a..d4db1e1 100644 --- a/sfx2/source/appl/impldde.hxx +++ b/sfx2/source/appl/impldde.hxx @@ -59,7 +59,7 @@ public: bool bSynchron = false ) SAL_OVERRIDE; virtual bool Connect( SvBaseLink * ) SAL_OVERRIDE; - virtual void Edit( vcl::Window* pParent, sfx2::SvBaseLink* pBaseLink, const Link<>& rEndEditHdl ) SAL_OVERRIDE; + virtual void Edit( vcl::Window* pParent, sfx2::SvBaseLink* pBaseLink, const Link<const OUString&, void>& rEndEditHdl ) SAL_OVERRIDE; virtual bool IsPending() const SAL_OVERRIDE; virtual bool IsDataComplete() const SAL_OVERRIDE; diff --git a/sfx2/source/appl/linksrc.cxx b/sfx2/source/appl/linksrc.cxx index 1ce7a44..f0c9ff4 100644 --- a/sfx2/source/appl/linksrc.cxx +++ b/sfx2/source/appl/linksrc.cxx @@ -435,7 +435,7 @@ bool SvLinkSource::GetData( ::com::sun::star::uno::Any &, const OUString &, bool return false; } -void SvLinkSource::Edit( vcl::Window *, SvBaseLink *, const Link<>& ) +void SvLinkSource::Edit( vcl::Window *, SvBaseLink *, const Link<const OUString&, void>& ) { } diff --git a/sfx2/source/appl/lnkbase2.cxx b/sfx2/source/appl/lnkbase2.cxx index 87ace2f..a899d9e 100644 --- a/sfx2/source/appl/lnkbase2.cxx +++ b/sfx2/source/appl/lnkbase2.cxx @@ -247,17 +247,14 @@ SvBaseLink::~SvBaseLink() delete pImpl; } -IMPL_LINK( SvBaseLink, EndEditHdl, OUString*, _pNewName ) +IMPL_LINK_TYPED( SvBaseLink, EndEditHdl, const OUString&, _rNewName, void ) { - OUString sNewName; - if ( _pNewName ) - sNewName = *_pNewName; + OUString sNewName = _rNewName; if ( !ExecuteEdit( sNewName ) ) sNewName.clear(); bWasLastEditOK = !sNewName.isEmpty(); if ( pImpl->m_aEndEditLink.IsSet() ) pImpl->m_aEndEditLink.Call( this ); - return 0; } @@ -484,7 +481,7 @@ void SvBaseLink::Edit( vcl::Window* pParent, const Link<>& rEndEditHdl ) _GetRealObject( xObj.Is() ); bool bAsync = false; - Link<> aLink = LINK( this, SvBaseLink, EndEditHdl ); + Link<const OUString&, void> aLink = LINK( this, SvBaseLink, EndEditHdl ); if( OBJECT_CLIENT_SO & nObjType && pImplData->ClientType.bIntrnlLnk ) { commit 87004ba29ac513d92da1608679cb065404f51215 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 13:18:30 2015 +0200 convert Link<> to typed Change-Id: Ie9b937c100b44dd914b55d75530e6b6a5fbe2969 diff --git a/sfx2/inc/srchdlg.hxx b/sfx2/inc/srchdlg.hxx index 444a8b74..34ac2ab 100644 --- a/sfx2/inc/srchdlg.hxx +++ b/sfx2/inc/srchdlg.hxx @@ -44,7 +44,7 @@ private: VclPtr<PushButton> m_pFindBtn; Link<SearchDialog&,void> m_aFindHdl; - Link<> m_aCloseHdl; + Link<SearchDialog*,void> m_aCloseHdl; OUString m_sConfigName; OString m_sWinState; @@ -62,7 +62,7 @@ public: virtual void dispose() SAL_OVERRIDE; void SetFindHdl( const Link<SearchDialog&,void>& rLink ) { m_aFindHdl = rLink; } - void SetCloseHdl( const Link<>& rLink ) { m_aCloseHdl = rLink; } + void SetCloseHdl( const Link<SearchDialog*,void>& rLink ) { m_aCloseHdl = rLink; } OUString GetSearchText() const { return m_pSearchEdit->GetText(); } void SetSearchText( const OUString& _rText ) { m_pSearchEdit->SetText( _rText ); } diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx index 8ef07fa..35a081b 100644 --- a/sfx2/source/appl/newhelp.cxx +++ b/sfx2/source/appl/newhelp.cxx @@ -2342,10 +2342,9 @@ void SfxHelpTextWindow_Impl::FindHdl(sfx2::SearchDialog* pDlg) -IMPL_LINK( SfxHelpTextWindow_Impl, CloseHdl, sfx2::SearchDialog*, /*pDlg*/ ) +IMPL_LINK_NOARG_TYPED( SfxHelpTextWindow_Impl, CloseHdl, sfx2::SearchDialog*, void ) { pSrchDlg.clear(); - return 0; } diff --git a/sfx2/source/appl/newhelp.hxx b/sfx2/source/appl/newhelp.hxx index 2738a91..33fec1f 100644 --- a/sfx2/source/appl/newhelp.hxx +++ b/sfx2/source/appl/newhelp.hxx @@ -454,7 +454,7 @@ private: DECL_LINK_TYPED( SelectHdl, Idle *, void); DECL_LINK_TYPED( NotifyHdl, LinkParamNone*, void ); DECL_LINK_TYPED( FindHdl, sfx2::SearchDialog&, void ); - DECL_LINK( CloseHdl, sfx2::SearchDialog* ); + DECL_LINK_TYPED( CloseHdl, sfx2::SearchDialog*, void ); DECL_LINK_TYPED( CheckHdl, Button*, void ); void FindHdl(sfx2::SearchDialog*); commit 1323f9ff9b2bbe07ce107e0c7c2559274d56e020 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 13:16:58 2015 +0200 convert Link<> to typed Change-Id: I39b8eac11eb59594c7fbca8c5fd3b1383167f577 diff --git a/sfx2/inc/srchdlg.hxx b/sfx2/inc/srchdlg.hxx index fd35c93..444a8b74 100644 --- a/sfx2/inc/srchdlg.hxx +++ b/sfx2/inc/srchdlg.hxx @@ -43,7 +43,7 @@ private: VclPtr<CheckBox> m_pBackwardsBox; VclPtr<PushButton> m_pFindBtn; - Link<> m_aFindHdl; + Link<SearchDialog&,void> m_aFindHdl; Link<> m_aCloseHdl; OUString m_sConfigName; @@ -61,7 +61,7 @@ public: virtual ~SearchDialog(); virtual void dispose() SAL_OVERRIDE; - void SetFindHdl( const Link<>& rLink ) { m_aFindHdl = rLink; } + void SetFindHdl( const Link<SearchDialog&,void>& rLink ) { m_aFindHdl = rLink; } void SetCloseHdl( const Link<>& rLink ) { m_aCloseHdl = rLink; } OUString GetSearchText() const { return m_pSearchEdit->GetText(); } diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx index 9e60bd7..8ef07fa 100644 --- a/sfx2/source/appl/newhelp.cxx +++ b/sfx2/source/appl/newhelp.cxx @@ -2256,7 +2256,11 @@ IMPL_LINK_NOARG_TYPED( SfxHelpTextWindow_Impl, NotifyHdl, LinkParamNone*, void ) -IMPL_LINK( SfxHelpTextWindow_Impl, FindHdl, sfx2::SearchDialog*, pDlg ) +IMPL_LINK_TYPED( SfxHelpTextWindow_Impl, FindHdl, sfx2::SearchDialog&, rDlg, void ) +{ + FindHdl(&rDlg); +} +void SfxHelpTextWindow_Impl::FindHdl(sfx2::SearchDialog* pDlg) { bool bWrapAround = ( NULL == pDlg ); if ( bWrapAround ) @@ -2334,8 +2338,6 @@ IMPL_LINK( SfxHelpTextWindow_Impl, FindHdl, sfx2::SearchDialog*, pDlg ) { OSL_FAIL( "SfxHelpTextWindow_Impl::SelectHdl(): unexpected exception" ); } - - return 0; } diff --git a/sfx2/source/appl/newhelp.hxx b/sfx2/source/appl/newhelp.hxx index 89c7d55..2738a91 100644 --- a/sfx2/source/appl/newhelp.hxx +++ b/sfx2/source/appl/newhelp.hxx @@ -453,9 +453,10 @@ private: DECL_LINK_TYPED( SelectHdl, Idle *, void); DECL_LINK_TYPED( NotifyHdl, LinkParamNone*, void ); - DECL_LINK( FindHdl, sfx2::SearchDialog* ); + DECL_LINK_TYPED( FindHdl, sfx2::SearchDialog&, void ); DECL_LINK( CloseHdl, sfx2::SearchDialog* ); DECL_LINK_TYPED( CheckHdl, Button*, void ); + void FindHdl(sfx2::SearchDialog*); public: SfxHelpTextWindow_Impl( SfxHelpWindow_Impl* pParent ); diff --git a/sfx2/source/dialog/srchdlg.cxx b/sfx2/source/dialog/srchdlg.cxx index 9f4d099..8a57056 100644 --- a/sfx2/source/dialog/srchdlg.cxx +++ b/sfx2/source/dialog/srchdlg.cxx @@ -140,7 +140,7 @@ IMPL_LINK_NOARG_TYPED(SearchDialog, FindHdl, Button*, void) m_pSearchEdit->RemoveEntryAt(nPos); if ( nPos > 0 ) m_pSearchEdit->InsertEntry( sSrchTxt, 0 ); - m_aFindHdl.Call( this ); + m_aFindHdl.Call( *this ); } void SearchDialog::SetFocusOnEdit() commit 95be2bbe0fa82f4602fba2dedc73667d117bb5dc Author: Noel Grandin <[email protected]> Date: Tue Sep 15 13:08:53 2015 +0200 remove unused Link<> fields Change-Id: I9898e04da6bebd1e08ab141e43439908fe1860b0 diff --git a/fpicker/source/office/iodlg.cxx b/fpicker/source/office/iodlg.cxx index a482e9b0..b684ae9 100644 --- a/fpicker/source/office/iodlg.cxx +++ b/fpicker/source/office/iodlg.cxx @@ -1220,18 +1220,7 @@ void SvtFileDialog::OpenHdl_Impl(void* pVoid) OSL_FAIL("SvtFileDialog, OpenHdl_Impl: invalid mode!"); } - // notify interested parties - long nRet; - - if ( _aOKHdl.IsSet() ) - nRet = _aOKHdl.Call( this ); - else - nRet = 1; - - if ( nRet ) - { - EndDialog( RET_OK ); - } + EndDialog( RET_OK ); } @@ -1475,16 +1464,7 @@ void SvtFileDialog::OpenMultiSelection_Impl() if ( nCount && pEntry ) _aPath = SvtFileView::GetURL( pEntry ); - // notify interested parties - long nRet; - - if ( _aOKHdl.IsSet() ) - nRet = _aOKHdl.Call( this ); - else - nRet = 1; - - if ( nRet ) - EndDialog( RET_OK ); + EndDialog( RET_OK ); } diff --git a/fpicker/source/office/iodlg.hxx b/fpicker/source/office/iodlg.hxx index f214c3d..93c4934 100644 --- a/fpicker/source/office/iodlg.hxx +++ b/fpicker/source/office/iodlg.hxx @@ -137,11 +137,6 @@ private: protected: virtual bool Notify( NotifyEvent& rNEvt ) SAL_OVERRIDE; - // originally from VclFileDialog - Link<> _aOKHdl; - Link<> _aFileSelectHdl; - Link<> _aFilterSelectHdl; - OUString _aPath; OUString _aDefExt; commit ffb4d56c20b6866e5d0a732ba74b5cd3aace0770 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 13:04:06 2015 +0200 remove unused Link field Change-Id: If79a5031d60bd88fa8a3ad4d0ab1664c18f46a67 diff --git a/svtools/source/table/tablecontrol.cxx b/svtools/source/table/tablecontrol.cxx index 289b935..6f643dc1 100644 --- a/svtools/source/table/tablecontrol.cxx +++ b/svtools/source/table/tablecontrol.cxx @@ -651,7 +651,7 @@ namespace svt { namespace table void TableControl::Select() { - ImplCallEventListenersAndHandler( VCLEVENT_TABLEROW_SELECT, [this] () { m_pImpl->getSelectHandler().Call(this); } ); + ImplCallEventListenersAndHandler( VCLEVENT_TABLEROW_SELECT, nullptr ); if ( m_pImpl->isAccessibleAlive() ) { diff --git a/svtools/source/table/tablecontrol_impl.hxx b/svtools/source/table/tablecontrol_impl.hxx index 6a4e122..b589a10 100644 --- a/svtools/source/table/tablecontrol_impl.hxx +++ b/svtools/source/table/tablecontrol_impl.hxx @@ -134,8 +134,6 @@ namespace svt { namespace table RowPos m_nAnchor; bool m_bUpdatingColWidths; - Link<> m_aSelectHdl; - AccessibleFactoryAccess m_aFactoryAccess; IAccessibleTableControl* m_pAccessibleTable; @@ -246,8 +244,6 @@ namespace svt { namespace table */ bool markAllRowsAsSelected(); - Link<> const& getSelectHandler() const { return m_aSelectHdl; } - void commitAccessibleEvent( sal_Int16 const i_eventID, const com::sun::star::uno::Any& i_newValue, const com::sun::star::uno::Any& i_oldValue ); void commitCellEvent( sal_Int16 const i_eventID, const com::sun::star::uno::Any& i_newValue, const com::sun::star::uno::Any& i_oldValue ); void commitTableEvent( sal_Int16 const i_eventID, const com::sun::star::uno::Any& i_newValue, const com::sun::star::uno::Any& i_oldValue ); commit 192bd9054a97de3aed0c8f8a385b1d4a865c36ba Author: Noel Grandin <[email protected]> Date: Tue Sep 15 13:02:10 2015 +0200 convert Link<> to typed Change-Id: I55596ac8fd5cc0a052b821fca48523f9f5a5a294 diff --git a/svtools/inc/table/tablecontrol.hxx b/svtools/inc/table/tablecontrol.hxx index 6fe21b3..004cd48 100644 --- a/svtools/inc/table/tablecontrol.hxx +++ b/svtools/inc/table/tablecontrol.hxx @@ -171,7 +171,7 @@ namespace svt { namespace table private: - DECL_DLLPRIVATE_LINK( ImplSelectHdl, void* ); + DECL_DLLPRIVATE_LINK_TYPED( ImplSelectHdl, LinkParamNone*, void ); private: TableControl( const TableControl& ) SAL_DELETED_FUNCTION; diff --git a/svtools/source/table/tablecontrol.cxx b/svtools/source/table/tablecontrol.cxx index 4a9632c..289b935 100644 --- a/svtools/source/table/tablecontrol.cxx +++ b/svtools/source/table/tablecontrol.cxx @@ -643,10 +643,9 @@ namespace svt { namespace table } - IMPL_LINK_NOARG(TableControl, ImplSelectHdl) + IMPL_LINK_NOARG_TYPED(TableControl, ImplSelectHdl, LinkParamNone*, void) { Select(); - return 1; } diff --git a/svtools/source/table/tabledatawindow.hxx b/svtools/source/table/tabledatawindow.hxx index f59e99f..784dce4 100644 --- a/svtools/source/table/tabledatawindow.hxx +++ b/svtools/source/table/tabledatawindow.hxx @@ -37,7 +37,7 @@ namespace svt { namespace table friend class TableFunctionSet; private: TableControl_Impl& m_rTableControl; - Link<> m_aSelectHdl; + Link<LinkParamNone*,void> m_aSelectHdl; sal_uLong m_nTipWindowHandle; public: @@ -45,7 +45,7 @@ namespace svt { namespace table virtual ~TableDataWindow(); virtual void dispose() SAL_OVERRIDE; - inline void SetSelectHdl(const Link<>& rLink) + inline void SetSelectHdl(const Link<LinkParamNone*,void>& rLink) { m_aSelectHdl = rLink; } commit c52baea785109ff546159128c7502533477c9331 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 12:18:40 2015 +0200 clean up VclEventListeners and VclEventListeners2 Move them inside the vcl module. there is no need to expose their implementation. Make the VclEventListeners2 implementation similar to the VclEventListeners implemenation - I can't see the benefit of this extra complication with invalidated iterators, given the very small number of listeners typically on such a list. Change-Id: I040ddd24b10d2109af13ee25b5181703af17a109 diff --git a/include/vcl/menu.hxx b/include/vcl/menu.hxx index 089cd8b..4566082 100644 --- a/include/vcl/menu.hxx +++ b/include/vcl/menu.hxx @@ -404,7 +404,8 @@ public: namespace vcl { namespace MenuInvalidator { -VCL_DLLPUBLIC VclEventListeners2* GetMenuInvalidateListeners(); +VCL_DLLPUBLIC void AddMenuInvalidateListener(const Link<>&); +VCL_DLLPUBLIC void CallMenuInvalidateListeners(VclSimpleEvent* pEvent); VCL_DLLPUBLIC void Invalidated(); }} diff --git a/include/vcl/vclevent.hxx b/include/vcl/vclevent.hxx index f9e8b51..e564100 100644 --- a/include/vcl/vclevent.hxx +++ b/include/vcl/vclevent.hxx @@ -29,9 +29,6 @@ #include <com/sun/star/uno/Reference.hxx> -#include <list> -#include <vector> - class Menu; namespace com { namespace sun { namespace star { @@ -252,44 +249,6 @@ private: ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > mxAccessible; }; -class VCL_DLLPUBLIC VclEventListeners -{ -public: - void Call( VclSimpleEvent* pEvent ) const; - void addListener( const Link<>& rListener ); - void removeListener( const Link<>& rListener ); -private: - std::vector<Link<>> m_aListeners; -}; - -class VCL_DLLPUBLIC VclEventListeners2 : public vcl::DeletionNotifier -{ - std::list< Link<> > m_aListeners; - - struct ListenerIt - { - std::list< Link<> >::iterator m_aIt; - bool m_bWasInvalidated; - - ListenerIt(const std::list<Link<>>::iterator& rIt) - : m_aIt(rIt) - , m_bWasInvalidated( false ) - {} - }; - - std::vector< ListenerIt > m_aIterators; - - -public: - VclEventListeners2(); - ~VclEventListeners2(); - - void addListener( const Link<>& ); - void removeListener( const Link<>& ); - - void callListeners( VclSimpleEvent* ); -}; - #endif // INCLUDED_VCL_VCLEVENT_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx index 0d8e02c..e7496aa 100644 --- a/vcl/inc/svdata.hxx +++ b/vcl/inc/svdata.hxx @@ -35,6 +35,7 @@ #include "vcl/keycod.hxx" #include "vcl/svapp.hxx" #include "vcl/vclevent.hxx" +#include "vcleventlisteners.hxx" #include "unotools/options.hxx" diff --git a/vcl/inc/vcleventlisteners.hxx b/vcl/inc/vcleventlisteners.hxx new file mode 100644 index 0000000..8e3b026 --- /dev/null +++ b/vcl/inc/vcleventlisteners.hxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_VCL_INC_VCLEVENTLISTENERS_HXX +#define INCLUDED_VCL_INC_VCLEVENTLISTENERS_HXX + +#include <tools/link.hxx> +#include <tools/rtti.hxx> +#include <vcl/dllapi.h> +#include <vcl/impdel.hxx> +#include <vcl/vclptr.hxx> +#include <vcl/window.hxx> + +#include <com/sun/star/uno/Reference.hxx> + +#include <vector> + +class VCL_DLLPUBLIC VclEventListeners +{ +public: + void Call( VclSimpleEvent* pEvent ) const; + void addListener( const Link<>& rListener ); + void removeListener( const Link<>& rListener ); +private: + std::vector<Link<>> m_aListeners; +}; + +class VCL_DLLPUBLIC VclEventListeners2 : public vcl::DeletionNotifier +{ + std::vector<Link<>> m_aListeners; +public: + VclEventListeners2(); + ~VclEventListeners2(); + + void addListener( const Link<>& ); + void removeListener( const Link<>& ); + void callListeners( VclSimpleEvent* ); +}; + +#endif // INCLUDED_VCL_INC_VCLEVENTLISTENERS_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/window.h b/vcl/inc/window.h index 2e56cc7..4745bf6 100644 --- a/vcl/inc/window.h +++ b/vcl/inc/window.h @@ -37,6 +37,7 @@ #include <vcl/vclevent.hxx> #include <vcl/vclptr.hxx> #include <vcl/rendersettings.hxx> +#include "vcleventlisteners.hxx" #include <vector> struct SalPaintEvent; diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx index fefa381..05c1000 100644 --- a/vcl/opengl/salbmp.cxx +++ b/vcl/opengl/salbmp.cxx @@ -27,6 +27,7 @@ #include "vcl/salbtype.hxx" #include "svdata.hxx" #include "salgdi.hxx" +#include "vcleventlisteners.hxx" #include "opengl/zone.hxx" #include "opengl/program.hxx" diff --git a/vcl/source/app/vclevent.cxx b/vcl/source/app/vclevent.cxx index bc3ca53..7cb291d 100644 --- a/vcl/source/app/vclevent.cxx +++ b/vcl/source/app/vclevent.cxx @@ -21,6 +21,7 @@ #include "vcl/window.hxx" #include "svdata.hxx" +#include "vcleventlisteners.hxx" #include <com/sun/star/accessibility/XAccessible.hpp> @@ -94,47 +95,35 @@ VclEventListeners2::~VclEventListeners2() { } -void VclEventListeners2::addListener( const Link<>& i_rLink ) +void VclEventListeners2::addListener( const Link<>& rListener ) { // ensure uniqueness - for( std::list< Link<> >::const_iterator it = m_aListeners.begin(); it != m_aListeners.end(); ++it ) - { - if( *it == i_rLink ) - return; - } - m_aListeners.push_back( i_rLink ); + if (std::find(m_aListeners.begin(), m_aListeners.end(), rListener) == m_aListeners.end()) + m_aListeners.push_back( rListener ); } -void VclEventListeners2::removeListener( const Link<>& i_rLink ) +void VclEventListeners2::removeListener( const Link<>& rListener ) { - size_t n = m_aIterators.size(); - for( size_t i = 0; i < n; i++ ) - { - if( m_aIterators[i].m_aIt != m_aListeners.end() && *m_aIterators[i].m_aIt == i_rLink ) - { - m_aIterators[i].m_bWasInvalidated = true; - ++m_aIterators[i].m_aIt; - } - } - m_aListeners.remove( i_rLink ); + m_aListeners.erase( std::remove(m_aListeners.begin(), m_aListeners.end(), rListener ), m_aListeners.end() ); } -void VclEventListeners2::callListeners( VclSimpleEvent* i_pEvent ) +void VclEventListeners2::callListeners( VclSimpleEvent* pEvent ) { vcl::DeletionListener aDel( this ); - m_aIterators.push_back(ListenerIt(m_aListeners.begin())); - size_t nIndex = m_aIterators.size() - 1; - while( ! aDel.isDeleted() && m_aIterators[ nIndex ].m_aIt != m_aListeners.end() ) + // Copy the list, because this can be destroyed when calling a Link... + std::vector<Link<>> aCopy( m_aListeners ); + std::vector<Link<>>::iterator aIter( aCopy.begin() ); + std::vector<Link<>>::const_iterator aEnd( aCopy.end() ); + + while ( aIter != aEnd && ! aDel.isDeleted() ) { - m_aIterators[ nIndex ].m_aIt->Call( i_pEvent ); - if( m_aIterators[ nIndex ].m_bWasInvalidated ) - // check if the current element was removed and the iterator increased in the meantime - m_aIterators[ nIndex ].m_bWasInvalidated = false; - else - ++m_aIterators[ nIndex ].m_aIt; + Link<> &rLink = *aIter; + // check this hasn't been removed in some re-enterancy scenario fdo#47368 + if( std::find(m_aListeners.begin(), m_aListeners.end(), rLink) != m_aListeners.end() ) + rLink.Call( pEvent ); + ++aIter; } - m_aIterators.pop_back(); } diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index e49ff60..e5acc2e 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -3240,16 +3240,24 @@ ImplMenuDelData::~ImplMenuDelData() namespace vcl { namespace MenuInvalidator { static VclEventListeners2* pMenuInvalidateListeners = NULL; - VclEventListeners2* GetMenuInvalidateListeners() + void AddMenuInvalidateListener(const Link<>& rLink) { if(!pMenuInvalidateListeners) pMenuInvalidateListeners = new VclEventListeners2(); - return pMenuInvalidateListeners; + pMenuInvalidateListeners->addListener(rLink); + } + void CallMenuInvalidateListeners(VclSimpleEvent* pEvent) + { + if(pMenuInvalidateListeners) + pMenuInvalidateListeners->callListeners(pEvent); } void Invalidated() { - VclSimpleEvent aEvent(0); - GetMenuInvalidateListeners()->callListeners(&aEvent); + if(pMenuInvalidateListeners) + { + VclSimpleEvent aEvent(0); + pMenuInvalidateListeners->callListeners(&aEvent); + } }; } } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/unx/gtk/window/gtksalmenu.cxx b/vcl/unx/gtk/window/gtksalmenu.cxx index 0dce1c4..ba2c894 100644 --- a/vcl/unx/gtk/window/gtksalmenu.cxx +++ b/vcl/unx/gtk/window/gtksalmenu.cxx @@ -414,7 +414,7 @@ void GtkSalMenu::SetFrame( const SalFrame* pFrame ) { SolarMutexGuard aGuard; { - vcl::MenuInvalidator::GetMenuInvalidateListeners()->addListener(*getRefreshLinkInstance()); + vcl::MenuInvalidator::AddMenuInvalidateListener(*getRefreshLinkInstance()); } assert(mbMenuBar); commit 91d06b09ae019f09bca54718c1c24907762aa3ea Author: Noel Grandin <[email protected]> Date: Tue Sep 15 11:51:30 2015 +0200 convert Link<> to typed Change-Id: I58b31530b4a29851abe9eccdf8f832b9d0348c2c diff --git a/include/svtools/transfer.hxx b/include/svtools/transfer.hxx index 675b191..b58031d 100644 --- a/include/svtools/transfer.hxx +++ b/include/svtools/transfer.hxx @@ -515,7 +515,7 @@ public: using TransferableHelper::StartDrag; void StartDrag( vcl::Window* pWindow, sal_Int8 nDragSourceActions, - const Link<>& rCallbck, + const Link<sal_Int8,void>& rCallbck, sal_Int32 nDragPointer = DND_POINTER_NONE, sal_Int32 nDragImage = DND_IMAGE_NONE ); }; diff --git a/include/svtools/treelistbox.hxx b/include/svtools/treelistbox.hxx index 76113ad..b64b4ad 100644 --- a/include/svtools/treelistbox.hxx +++ b/include/svtools/treelistbox.hxx @@ -307,7 +307,7 @@ private: // called for a deleted object. SVT_DLLPRIVATE static void AddBoxToDDList_Impl( const SvTreeListBox& rB ); SVT_DLLPRIVATE static void RemoveBoxFromDDList_Impl( const SvTreeListBox& rB ); - DECL_DLLPRIVATE_LINK( DragFinishHdl_Impl, sal_Int8* ); + DECL_DLLPRIVATE_LINK_TYPED( DragFinishHdl_Impl, sal_Int8, void ); protected: @@ -347,7 +347,7 @@ protected: // The Remove will be called from the handler, which then calls DragFinish. // The Remove is also called in the DTOR of the SvTreeListBox - // so it can't be called for a deleted object. - Link<> GetDragFinishedHdl() const; + Link<sal_Int8,void> GetDragFinishedHdl() const; // For asynchronous D'n'D sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt, SvTreeListBox* pSourceView ); diff --git a/svtools/source/contnr/treelistbox.cxx b/svtools/source/contnr/treelistbox.cxx index f86ff4a..66d3a49 100644 --- a/svtools/source/contnr/treelistbox.cxx +++ b/svtools/source/contnr/treelistbox.cxx @@ -1364,20 +1364,19 @@ void SvTreeListBox::RemoveBoxFromDDList_Impl( const SvTreeListBox& rB ) SortLBoxes::get().erase( nVal ); } -IMPL_LINK( SvTreeListBox, DragFinishHdl_Impl, sal_Int8*, pAction ) +IMPL_LINK_TYPED( SvTreeListBox, DragFinishHdl_Impl, sal_Int8, nAction, void ) { sal_uLong nVal = reinterpret_cast<sal_uLong>(this); std::set<sal_uLong> &rSortLBoxes = SortLBoxes::get(); std::set<sal_uLong>::const_iterator it = rSortLBoxes.find(nVal); if( it != rSortLBoxes.end() ) { - DragFinished( *pAction ); + DragFinished( nAction ); rSortLBoxes.erase( it ); } - return 0; } -Link<> SvTreeListBox::GetDragFinishedHdl() const +Link<sal_Int8,void> SvTreeListBox::GetDragFinishedHdl() const { AddBoxToDDList_Impl( *this ); return LINK( const_cast<SvTreeListBox*>(this), SvTreeListBox, DragFinishHdl_Impl ); diff --git a/svtools/source/misc/transfer2.cxx b/svtools/source/misc/transfer2.cxx index b74bcd5..dc4122f 100644 --- a/svtools/source/misc/transfer2.cxx +++ b/svtools/source/misc/transfer2.cxx @@ -358,7 +358,7 @@ typedef ::std::list< TDataCntnrEntry_Impl > TDataCntnrEntryList; struct TransferDataContainer_Impl { TDataCntnrEntryList aFmtList; - Link<> aFinshedLnk; + Link<sal_Int8,void> aFinshedLnk; INetBookmark* pBookmk; Graphic* pGrf; @@ -579,7 +579,7 @@ bool TransferDataContainer::HasAnyData() const void TransferDataContainer::StartDrag( vcl::Window* pWindow, sal_Int8 nDragSourceActions, - const Link<>& rLnk, sal_Int32 nDragPointer, sal_Int32 nDragImage ) + const Link<sal_Int8,void>& rLnk, sal_Int32 nDragPointer, sal_Int32 nDragImage ) { pImpl->aFinshedLnk = rLnk; TransferableHelper::StartDrag( pWindow, nDragSourceActions, @@ -591,7 +591,7 @@ void TransferDataContainer::StartDrag( void TransferDataContainer::DragFinished( sal_Int8 nDropAction ) { if( pImpl->aFinshedLnk.IsSet() ) - pImpl->aFinshedLnk.Call( &nDropAction ); + pImpl->aFinshedLnk.Call( nDropAction ); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/dbui/dbtree.cxx b/sw/source/uibase/dbui/dbtree.cxx index 0defde0..290aa7f 100644 --- a/sw/source/uibase/dbui/dbtree.cxx +++ b/sw/source/uibase/dbui/dbtree.cxx @@ -512,7 +512,7 @@ void SwDBTreeList::StartDrag( sal_Int8 /*nAction*/, const Point& /*rPosPixel*/ ) pContainer->CopyString( SotClipboardFormatId::STRING, sDBName ); pContainer->StartDrag( this, DND_ACTION_COPY | DND_ACTION_LINK, - Link<>() ); + Link<sal_Int8,void>() ); } } commit 44404a0c8ae8a7a12e7d9133323d0f7e32061c03 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 10:50:45 2015 +0200 convert Link<> to typed Change-Id: If6334d32abbec379acbb9def98fdf6cb5144238b diff --git a/extensions/source/update/ui/updatecheckui.cxx b/extensions/source/update/ui/updatecheckui.cxx index 9847eac..b046ab6 100644 --- a/extensions/source/update/ui/updatecheckui.cxx +++ b/extensions/source/update/ui/updatecheckui.cxx @@ -144,7 +144,7 @@ class UpdateCheckUI : public ::cppu::WeakImplHelper private: DECL_LINK_TYPED(ClickHdl, MenuBar::MenuBarButtonCallbackArg&, bool); - DECL_LINK( HighlightHdl, MenuBar::MenuBarButtonCallbackArg* ); + DECL_LINK_TYPED(HighlightHdl, MenuBar::MenuBarButtonCallbackArg&, bool); DECL_LINK_TYPED(WaitTimeOutHdl, Idle *, void); DECL_LINK_TYPED(TimeOutHdl, Timer *, void); DECL_LINK_TYPED(UserEventHdl, void *, void); @@ -601,14 +601,14 @@ IMPL_LINK_NOARG_TYPED(UpdateCheckUI, ClickHdl, MenuBar::MenuBarButtonCallbackArg } -IMPL_LINK( UpdateCheckUI, HighlightHdl, MenuBar::MenuBarButtonCallbackArg*, pData ) +IMPL_LINK_TYPED( UpdateCheckUI, HighlightHdl, MenuBar::MenuBarButtonCallbackArg&, rData, bool ) { - if ( pData->bHighlight ) + if ( rData.bHighlight ) maWaitIdle.Start(); else RemoveBubbleWindow( false ); - return 0; + return false; } diff --git a/include/vcl/menu.hxx b/include/vcl/menu.hxx index 654880a..089cd8b 100644 --- a/include/vcl/menu.hxx +++ b/include/vcl/menu.hxx @@ -488,7 +488,7 @@ public: // set the highlight link for additional button with ID nId // highlight link will be called with a MenuBarButtonHighlightArg // the bHighlight member of that struct shall contain the new state - void SetMenuBarButtonHighlightHdl( sal_uInt16 nId, const Link<>& ); + void SetMenuBarButtonHighlightHdl( sal_uInt16 nId, const Link<MenuBar::MenuBarButtonCallbackArg&,bool>& ); // returns the rectangle occupied by the additional button named nId // coordinates are relative to the systemwindiow the menubar is attached to // if the menubar is unattached an empty rectangle is returned diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index 574bdf7..e49ff60 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -2737,7 +2737,7 @@ sal_uInt16 MenuBar::AddMenuBarButton( const Image& i_rImage, const Link<MenuBar: return pMenuWin ? pMenuWin->AddMenuBarButton(i_rImage, i_rLink, i_rToolTip) : 0; } -void MenuBar::SetMenuBarButtonHighlightHdl( sal_uInt16 nId, const Link<>& rLink ) +void MenuBar::SetMenuBarButtonHighlightHdl( sal_uInt16 nId, const Link<MenuBar::MenuBarButtonCallbackArg&,bool>& rLink ) { MenuBarWindow* pMenuWin = getMenuBarWindow(); if (!pMenuWin) diff --git a/vcl/source/window/menubarwindow.cxx b/vcl/source/window/menubarwindow.cxx index 7116eb1..5380b05 100644 --- a/vcl/source/window/menubarwindow.cxx +++ b/vcl/source/window/menubarwindow.cxx @@ -270,7 +270,7 @@ IMPL_LINK( MenuBarWindow, ToolboxEventHdl, VclWindowEvent*, pEvent ) std::map< sal_uInt16, AddButtonEntry >::iterator it = m_aAddButtons.find( aArg.nId ); if( it != m_aAddButtons.end() ) { - it->second.m_aHighlightLink.Call( &aArg ); + it->second.m_aHighlightLink.Call( aArg ); } return 0; } @@ -1150,7 +1150,7 @@ sal_uInt16 MenuBarWindow::AddMenuBarButton( const Image& i_rImage, const Link<Me return nId; } -void MenuBarWindow::SetMenuBarButtonHighlightHdl( sal_uInt16 nId, const Link<>& rLink ) +void MenuBarWindow::SetMenuBarButtonHighlightHdl( sal_uInt16 nId, const Link<MenuBar::MenuBarButtonCallbackArg&,bool>& rLink ) { std::map< sal_uInt16, AddButtonEntry >::iterator it = m_aAddButtons.find( nId ); if( it != m_aAddButtons.end() ) diff --git a/vcl/source/window/menubarwindow.hxx b/vcl/source/window/menubarwindow.hxx index 34c3aa1..f460a77 100644 --- a/vcl/source/window/menubarwindow.hxx +++ b/vcl/source/window/menubarwindow.hxx @@ -69,7 +69,7 @@ private: { sal_uInt16 m_nId; Link<MenuBar::MenuBarButtonCallbackArg&,bool> m_aSelectLink; - Link<> m_aHighlightLink; + Link<MenuBar::MenuBarButtonCallbackArg&,bool> m_aHighlightLink; AddButtonEntry() : m_nId( 0 ) {} }; @@ -143,7 +143,7 @@ public: /// Add an arbitrary button to the menubar that will appear next to the close button. sal_uInt16 AddMenuBarButton(const Image&, const Link<MenuBar::MenuBarButtonCallbackArg&,bool>&, const OUString&); - void SetMenuBarButtonHighlightHdl(sal_uInt16 nId, const Link<>&); + void SetMenuBarButtonHighlightHdl(sal_uInt16 nId, const Link<MenuBar::MenuBarButtonCallbackArg&,bool>&); Rectangle GetMenuBarButtonRectPixel(sal_uInt16 nId); void RemoveMenuBarButton(sal_uInt16 nId); bool HandleMenuButtonEvent(sal_uInt16 i_nButtonId); commit c4fb1122b3b6c55d479c68c14101972254aa72a8 Author: Noel Grandin <[email protected]> Date: Tue Sep 15 10:47:17 2015 +0200 convert Link<> to typed Change-Id: I628de57f87b4ba20a797d345bdf71cf10cf148fc diff --git a/extensions/source/update/ui/updatecheckui.cxx b/extensions/source/update/ui/updatecheckui.cxx index 5c83bd8..9847eac 100644 --- a/extensions/source/update/ui/updatecheckui.cxx +++ b/extensions/source/update/ui/updatecheckui.cxx @@ -143,7 +143,7 @@ class UpdateCheckUI : public ::cppu::WeakImplHelper sal_uInt16 mnIconID; private: - DECL_LINK(ClickHdl, void *); + DECL_LINK_TYPED(ClickHdl, MenuBar::MenuBarButtonCallbackArg&, bool); DECL_LINK( HighlightHdl, MenuBar::MenuBarButtonCallbackArg* ); DECL_LINK_TYPED(WaitTimeOutHdl, Idle *, void); DECL_LINK_TYPED(TimeOutHdl, Timer *, void); @@ -578,7 +578,7 @@ void UpdateCheckUI::RemoveBubbleWindow( bool bRemoveIcon ) } -IMPL_LINK_NOARG(UpdateCheckUI, ClickHdl) +IMPL_LINK_NOARG_TYPED(UpdateCheckUI, ClickHdl, MenuBar::MenuBarButtonCallbackArg&, bool) { SolarMutexGuard aGuard; @@ -597,7 +597,7 @@ IMPL_LINK_NOARG(UpdateCheckUI, ClickHdl) } } - return 0; + return false; } diff --git a/include/vcl/menu.hxx b/include/vcl/menu.hxx index b1c1b9b..654880a 100644 --- a/include/vcl/menu.hxx +++ b/include/vcl/menu.hxx @@ -484,7 +484,7 @@ public: // add an arbitrary button to the menubar (will appear next to closer) // passed link will be call with a MenuBarButtonCallbackArg on press // passed string will be set as tooltip - sal_uInt16 AddMenuBarButton( const Image&, const Link<>&, const OUString& ); + sal_uInt16 AddMenuBarButton( const Image&, const Link<MenuBar::MenuBarButtonCallbackArg&,bool>&, const OUString& ); // set the highlight link for additional button with ID nId // highlight link will be called with a MenuBarButtonHighlightArg // the bHighlight member of that struct shall contain the new state diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index e627377..574bdf7 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -2731,7 +2731,7 @@ bool MenuBar::HandleMenuCommandEvent( Menu *pMenu, sal_uInt16 nCommandEventId ) return false; } -sal_uInt16 MenuBar::AddMenuBarButton( const Image& i_rImage, const Link<>& i_rLink, const OUString& i_rToolTip ) +sal_uInt16 MenuBar::AddMenuBarButton( const Image& i_rImage, const Link<MenuBar::MenuBarButtonCallbackArg&,bool>& i_rLink, const OUString& i_rToolTip ) { MenuBarWindow* pMenuWin = getMenuBarWindow(); return pMenuWin ? pMenuWin->AddMenuBarButton(i_rImage, i_rLink, i_rToolTip) : 0; diff --git a/vcl/source/window/menubarwindow.cxx b/vcl/source/window/menubarwindow.cxx index 7728943..7116eb1 100644 --- a/vcl/source/window/menubarwindow.cxx +++ b/vcl/source/window/menubarwindow.cxx @@ -246,7 +246,7 @@ IMPL_LINK_NOARG_TYPED(MenuBarWindow, CloseHdl, ToolBox *, void) aArg.nId = it->first; aArg.bHighlight = (aCloseBtn->GetHighlightItemId() == it->first); aArg.pMenuBar = dynamic_cast<MenuBar*>(pMenu); - it->second.m_aSelectLink.Call( &aArg ); + it->second.m_aSelectLink.Call( aArg ); } } } @@ -1125,7 +1125,7 @@ css::uno::Reference<css::accessibility::XAccessible> MenuBarWindow::CreateAccess return xAcc; } -sal_uInt16 MenuBarWindow::AddMenuBarButton( const Image& i_rImage, const Link<>& i_rLink, const OUString& i_rToolTip ) +sal_uInt16 MenuBarWindow::AddMenuBarButton( const Image& i_rImage, const Link<MenuBar::MenuBarButtonCallbackArg&,bool>& i_rLink, const OUString& i_rToolTip ) { // find first free button id sal_uInt16 nId = IID_DOCUMENTCLOSE; @@ -1203,7 +1203,7 @@ bool MenuBarWindow::HandleMenuButtonEvent( sal_uInt16 i_nButtonId ) aArg.nId = it->first; aArg.bHighlight = true; aArg.pMenuBar = dynamic_cast<MenuBar*>(pMenu); - return it->second.m_aSelectLink.Call( &aArg ); + return it->second.m_aSelectLink.Call( aArg ); } return false; } diff --git a/vcl/source/window/menubarwindow.hxx b/vcl/source/window/menubarwindow.hxx index da15f86..34c3aa1 100644 --- a/vcl/source/window/menubarwindow.hxx ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
