diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2015-04-30 10:20:00 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2015-04-30 10:20:00 +0200 |
commit | 3ead3ad52f9bb2f9d1d6cf8dfc73a0a25e6778ed (patch) | |
tree | bdfd28afe5a452060e3d985c5f01b45f4b7bc2cd /formula | |
parent | 57d254d42b6e1d836bd21e6fb2e968af2b511c7d (diff) |
Gradually typed Link
Turn the Link class into a template abstracting over the link's argument and
return types, but provide default template arguments that keep the generic,
unsafe "void* in, sal_IntPtr out" behvior. That way, individual uses of the
Link class can be updated over time.
All the related macros are duplicated with ..._TYPED counterparts, that
additionally take the RetType (except for LINK_TYPED, which manages to infer the
relevant types from the supplied Member).
(It would have been attractive to change the "untyped" LinkStubs from taking a
void* to a properly typed ArgType parameter, too, but that would cause
-fsanitize=function to flag uses of "untyped" Link::Call.)
Change-Id: I3b0140378bad99abbf240140ebb4a46a05d2d2f8
Diffstat (limited to 'formula')
-rw-r--r-- | formula/source/ui/dlg/ControlHelper.hxx | 42 | ||||
-rw-r--r-- | formula/source/ui/dlg/formula.cxx | 2 | ||||
-rw-r--r-- | formula/source/ui/dlg/funcpage.hxx | 12 | ||||
-rw-r--r-- | formula/source/ui/dlg/funcutl.cxx | 6 | ||||
-rw-r--r-- | formula/source/ui/dlg/parawin.cxx | 2 | ||||
-rw-r--r-- | formula/source/ui/dlg/parawin.hxx | 18 | ||||
-rw-r--r-- | formula/source/ui/dlg/structpg.hxx | 6 |
7 files changed, 44 insertions, 44 deletions
diff --git a/formula/source/ui/dlg/ControlHelper.hxx b/formula/source/ui/dlg/ControlHelper.hxx index aba773361dcf..dea58d335484 100644 --- a/formula/source/ui/dlg/ControlHelper.hxx +++ b/formula/source/ui/dlg/ControlHelper.hxx @@ -30,7 +30,7 @@ class EditBox : public Control private: VclPtr<MultiLineEdit> pMEdit; - Link aSelChangedLink; + Link<> aSelChangedLink; Selection aOldSel; bool bMouseFlag; @@ -52,8 +52,8 @@ public: MultiLineEdit* GetEdit() {return pMEdit;} - void SetSelChangedHdl( const Link& rLink ) { aSelChangedLink = rLink; } - const Link& GetSelChangedHdl() const { return aSelChangedLink; } + void SetSelChangedHdl( const Link<>& rLink ) { aSelChangedLink = rLink; } + const Link<>& GetSelChangedHdl() const { return aSelChangedLink; } void UpdateOldSel(); }; @@ -89,12 +89,12 @@ class ArgInput { private: - Link aFxClickLink; - Link aRefClickLink; - Link aFxFocusLink; - Link aRefFocusLink; - Link aEdFocusLink; - Link aEdModifyLink; + Link<> aFxClickLink; + Link<> aRefClickLink; + Link<> aFxFocusLink; + Link<> aRefFocusLink; + Link<> aEdFocusLink; + Link<> aEdModifyLink; VclPtr<FixedText> pFtArg; VclPtr<PushButton> pBtnFx; @@ -141,23 +141,23 @@ public: ArgEdit* GetArgEdPtr() {return pEdArg;} - void SetFxClickHdl( const Link& rLink ) { aFxClickLink = rLink; } - const Link& GetFxClickHdl() const { return aFxClickLink; } + void SetFxClickHdl( const Link<>& rLink ) { aFxClickLink = rLink; } + const Link<>& GetFxClickHdl() const { return aFxClickLink; } - void SetRefClickHdl( const Link& rLink ) { aRefClickLink = rLink; } - const Link& GetRefClickHdl() const { return aRefClickLink; } + void SetRefClickHdl( const Link<>& rLink ) { aRefClickLink = rLink; } + const Link<>& GetRefClickHdl() const { return aRefClickLink; } - void SetFxFocusHdl( const Link& rLink ) { aFxFocusLink = rLink; } - const Link& GetFxFocusHdl() const { return aFxFocusLink; } + void SetFxFocusHdl( const Link<>& rLink ) { aFxFocusLink = rLink; } + const Link<>& GetFxFocusHdl() const { return aFxFocusLink; } - void SetRefFocusHdl( const Link& rLink ) { aRefFocusLink = rLink; } - const Link& GetRefFocusHdl() const { return aRefFocusLink; } + void SetRefFocusHdl( const Link<>& rLink ) { aRefFocusLink = rLink; } + const Link<>& GetRefFocusHdl() const { return aRefFocusLink; } - void SetEdFocusHdl( const Link& rLink ) { aEdFocusLink = rLink; } - const Link& GetEdFocusHdl() const { return aEdFocusLink; } + void SetEdFocusHdl( const Link<>& rLink ) { aEdFocusLink = rLink; } + const Link<>& GetEdFocusHdl() const { return aEdFocusLink; } - void SetEdModifyHdl( const Link& rLink ) { aEdModifyLink = rLink; } - const Link& GetEdModifyHdl() const { return aEdModifyLink; } + void SetEdModifyHdl( const Link<>& rLink ) { aEdModifyLink = rLink; } + const Link<>& GetEdModifyHdl() const { return aEdModifyLink; } void Hide(); void Show(); diff --git a/formula/source/ui/dlg/formula.cxx b/formula/source/ui/dlg/formula.cxx index 7f20431ab1bb..1d731535bf1e 100644 --- a/formula/source/ui/dlg/formula.cxx +++ b/formula/source/ui/dlg/formula.cxx @@ -356,7 +356,7 @@ FormulaDlg_Impl::~FormulaDlg_Impl() { if(aIdle.IsActive()) { - aIdle.SetIdleHdl(Link()); + aIdle.SetIdleHdl(Link<>()); aIdle.Stop(); }// if(aIdle.IsActive()) bIsShutDown=true;// Set it in order to PreNotify not to save GetFocus. diff --git a/formula/source/ui/dlg/funcpage.hxx b/formula/source/ui/dlg/funcpage.hxx index 87a2799dcfac..f49a00dde4d3 100644 --- a/formula/source/ui/dlg/funcpage.hxx +++ b/formula/source/ui/dlg/funcpage.hxx @@ -62,8 +62,8 @@ class FuncPage : public TabPage { private: OModuleClient m_aModuleClient; - Link aDoubleClickLink; - Link aSelectionLink; + Link<> aDoubleClickLink; + Link<> aSelectionLink; VclPtr<ListBox> m_pLbCategory; VclPtr<FormulaListBox> m_pLbFunction; const IFunctionManager* @@ -100,11 +100,11 @@ public: const IFunctionDescription* GetFuncDesc( sal_Int32 nPos ) const; OUString GetSelFunctionName() const; - void SetDoubleClickHdl( const Link& rLink ) { aDoubleClickLink = rLink; } - const Link& GetDoubleClickHdl() const { return aDoubleClickLink; } + void SetDoubleClickHdl( const Link<>& rLink ) { aDoubleClickLink = rLink; } + const Link<>& GetDoubleClickHdl() const { return aDoubleClickLink; } - void SetSelectHdl( const Link& rLink ) { aSelectionLink = rLink; } - const Link& GetSelectHdl() const { return aSelectionLink; } + void SetSelectHdl( const Link<>& rLink ) { aSelectionLink = rLink; } + const Link<>& GetSelectHdl() const { return aSelectionLink; } }; diff --git a/formula/source/ui/dlg/funcutl.cxx b/formula/source/ui/dlg/funcutl.cxx index 271d8b83cafa..4fe03a17f037 100644 --- a/formula/source/ui/dlg/funcutl.cxx +++ b/formula/source/ui/dlg/funcutl.cxx @@ -133,7 +133,7 @@ void ArgEdit::KeyInput( const KeyEvent& rKEvt ) if ( bDoScroll ) { pSlider->SetThumbPos( nThumb ); - ((Link&)pSlider->GetEndScrollHdl()).Call( pSlider ); + ((Link<>&)pSlider->GetEndScrollHdl()).Call( pSlider ); } else if ( bChangeFocus ) { @@ -503,7 +503,7 @@ RefEdit::~RefEdit() void RefEdit::dispose() { - aIdle.SetIdleHdl( Link() ); + aIdle.SetIdleHdl( Link<>() ); aIdle.Stop(); pLabelWidget.clear(); Edit::dispose(); @@ -551,7 +551,7 @@ void RefEdit::SetReferences( IControlReferenceHandler* pDlg, vcl::Window* pLabel } else { - aIdle.SetIdleHdl( Link() ); + aIdle.SetIdleHdl( Link<>() ); aIdle.Stop(); } } diff --git a/formula/source/ui/dlg/parawin.cxx b/formula/source/ui/dlg/parawin.cxx index 539661b05b1c..f990deae1472 100644 --- a/formula/source/ui/dlg/parawin.cxx +++ b/formula/source/ui/dlg/parawin.cxx @@ -228,7 +228,7 @@ void ParaWin::dispose() { // #i66422# if the focus changes during destruction of the controls, // don't call the focus handlers - Link aEmptyLink; + Link<> aEmptyLink; m_pBtnFx1->SetGetFocusHdl( aEmptyLink ); m_pBtnFx2->SetGetFocusHdl( aEmptyLink ); m_pBtnFx3->SetGetFocusHdl( aEmptyLink ); diff --git a/formula/source/ui/dlg/parawin.hxx b/formula/source/ui/dlg/parawin.hxx index 6a83c4d59218..471efa0dfd3c 100644 --- a/formula/source/ui/dlg/parawin.hxx +++ b/formula/source/ui/dlg/parawin.hxx @@ -45,9 +45,9 @@ class ParaWin : public TabPage { private: OModuleClient m_aModuleClient; - Link aScrollLink; - Link aFxLink; - Link aArgModifiedLink; + Link<> aScrollLink; + Link<> aFxLink; + Link<> aArgModifiedLink; ::std::vector<sal_uInt16> aVisibleArgMapping; const IFunctionDescription* pFuncDesc; @@ -149,14 +149,14 @@ public: sal_uInt16 GetSliderPos(); void SetSliderPos(sal_uInt16 nSliderPos); - void SetScrollHdl( const Link& rLink ) { aScrollLink = rLink; } - const Link& GetScrollHdl() const { return aScrollLink; } + void SetScrollHdl( const Link<>& rLink ) { aScrollLink = rLink; } + const Link<>& GetScrollHdl() const { return aScrollLink; } - void SetArgModifiedHdl( const Link& rLink ) { aArgModifiedLink = rLink; } - const Link& GetArgModifiedHdl() const { return aArgModifiedLink; } + void SetArgModifiedHdl( const Link<>& rLink ) { aArgModifiedLink = rLink; } + const Link<>& GetArgModifiedHdl() const { return aArgModifiedLink; } - void SetFxHdl( const Link& rLink ) { aFxLink = rLink; } - const Link& GetFxHdl() const { return aFxLink; } + void SetFxHdl( const Link<>& rLink ) { aFxLink = rLink; } + const Link<>& GetFxHdl() const { return aFxLink; } }; diff --git a/formula/source/ui/dlg/structpg.hxx b/formula/source/ui/dlg/structpg.hxx index d0a3b35066e9..250c0f5e12c4 100644 --- a/formula/source/ui/dlg/structpg.hxx +++ b/formula/source/ui/dlg/structpg.hxx @@ -71,7 +71,7 @@ class StructPage : public TabPage { private: OModuleClient m_aModuleClient; - Link aSelLink; + Link<> aSelLink; VclPtr<StructListBox> m_pTlbStruct; Image maImgEnd; @@ -100,8 +100,8 @@ public: virtual OUString GetEntryText(SvTreeListEntry* pEntry) const SAL_OVERRIDE; virtual SvTreeListEntry* GetParent(SvTreeListEntry* pEntry) const SAL_OVERRIDE; - void SetSelectionHdl( const Link& rLink ) { aSelLink = rLink; } - const Link& GetSelectionHdl() const { return aSelLink; } + void SetSelectionHdl( const Link<>& rLink ) { aSelLink = rLink; } + const Link<>& GetSelectionHdl() const { return aSelLink; } }; } // formula |