summaryrefslogtreecommitdiff
path: root/formula
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-04-30 10:20:00 +0200
committerStephan Bergmann <sbergman@redhat.com>2015-04-30 10:20:00 +0200
commit3ead3ad52f9bb2f9d1d6cf8dfc73a0a25e6778ed (patch)
treebdfd28afe5a452060e3d985c5f01b45f4b7bc2cd /formula
parent57d254d42b6e1d836bd21e6fb2e968af2b511c7d (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.hxx42
-rw-r--r--formula/source/ui/dlg/formula.cxx2
-rw-r--r--formula/source/ui/dlg/funcpage.hxx12
-rw-r--r--formula/source/ui/dlg/funcutl.cxx6
-rw-r--r--formula/source/ui/dlg/parawin.cxx2
-rw-r--r--formula/source/ui/dlg/parawin.hxx18
-rw-r--r--formula/source/ui/dlg/structpg.hxx6
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