summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2017-01-23 19:37:51 +0100
committerJan-Marek Glogowski <glogow@fbihome.de>2017-01-23 20:49:05 +0100
commitbf110d40efcc79efb9247fdce5d2f54bafa6550b (patch)
tree4e9fad96d91adfd5159b009b430a64d4a6863bd6 /include
parent75d8b305bbc1c2377f23361ecd64816a350baa4c (diff)
Change all Idle* LINKs to be Timer*
Seem UBSAN doesn't like my forced reinterpret_cast to set the Idles Link in the Timer class. Now there are two possible solution: 1. convert all (DECL|IMPL).*_LINK call sites to use a Timer* or 2. split the inheritance of Idle from Timer again to maintain different Link<>s and move all common code into a TimerBase. While the 1st is more correct, the 2nd has a better indicator for Idles. This implements the first solution. And while at it, this also converts all call sites of SetTimeoutHdl and SetIdleHdl to SetInvokeHandler and gets rid of some local Link objects, which are just passed to the SetInvokeHandler call. It also introduces ClearInvokeHandler() and replaces the respective call sites of SetInvokeHandler( Link<Timer *, void>() ). Change-Id: I40c4167b1493997b7f136add4dad2f4ff5504b69
Diffstat (limited to 'include')
-rw-r--r--include/formula/formula.hxx2
-rw-r--r--include/formula/funcutl.hxx2
-rw-r--r--include/sfx2/basedlgs.hxx4
-rw-r--r--include/sfx2/dinfdlg.hxx4
-rw-r--r--include/sfx2/dispatch.hxx2
-rw-r--r--include/sfx2/dockwin.hxx2
-rw-r--r--include/svtools/asynclink.hxx3
-rw-r--r--include/svtools/filechangedchecker.hxx2
-rw-r--r--include/svtools/treelistbox.hxx2
-rw-r--r--include/svtools/wizdlg.hxx2
-rw-r--r--include/svx/fontwork.hxx2
-rw-r--r--include/svx/graphctl.hxx2
-rw-r--r--include/svx/imapdlg.hxx2
-rw-r--r--include/svx/modctrl.hxx2
-rw-r--r--include/svx/numvset.hxx2
-rw-r--r--include/svx/sidebar/PanelLayout.hxx2
-rw-r--r--include/svx/svdpntv.hxx2
-rw-r--r--include/vcl/dockwin.hxx2
-rw-r--r--include/vcl/idle.hxx13
-rw-r--r--include/vcl/syswin.hxx2
-rw-r--r--include/vcl/texteng.hxx2
-rw-r--r--include/vcl/timer.hxx13
-rw-r--r--include/vcl/toolbox.hxx2
-rw-r--r--include/vcl/window.hxx4
24 files changed, 27 insertions, 50 deletions
diff --git a/include/formula/formula.hxx b/include/formula/formula.hxx
index 8ef48eaf3051..164c673fe6d1 100644
--- a/include/formula/formula.hxx
+++ b/include/formula/formula.hxx
@@ -107,7 +107,7 @@ public:
private:
::std::unique_ptr<FormulaDlg_Impl> m_pImpl;
- DECL_LINK( UpdateFocusHdl, Idle*, void );
+ DECL_LINK( UpdateFocusHdl, Timer*, void );
protected:
void disableOk();
diff --git a/include/formula/funcutl.hxx b/include/formula/funcutl.hxx
index 99a3e4e71325..5bb490d648a2 100644
--- a/include/formula/funcutl.hxx
+++ b/include/formula/funcutl.hxx
@@ -47,7 +47,7 @@ private:
IControlReferenceHandler* pAnyRefDlg; // parent dialog
VclPtr<vcl::Window> pLabelWidget;
- DECL_LINK( UpdateHdl, Idle*, void );
+ DECL_LINK( UpdateHdl, Timer*, void );
protected:
virtual void KeyInput( const KeyEvent& rKEvt ) override;
diff --git a/include/sfx2/basedlgs.hxx b/include/sfx2/basedlgs.hxx
index 1ed1eb4166ac..b5c06c515e16 100644
--- a/include/sfx2/basedlgs.hxx
+++ b/include/sfx2/basedlgs.hxx
@@ -105,7 +105,7 @@ public:
SfxBindings& GetBindings()
{ return *pBindings; }
- DECL_LINK(TimerHdl, Idle *, void);
+ DECL_LINK(TimerHdl, Timer *, void);
};
@@ -145,7 +145,7 @@ public:
virtual void FillInfo(SfxChildWinInfo&) const;
void Initialize (SfxChildWinInfo* pInfo);
- DECL_LINK(TimerHdl, Idle *, void);
+ DECL_LINK(TimerHdl, Timer *, void);
};
diff --git a/include/sfx2/dinfdlg.hxx b/include/sfx2/dinfdlg.hxx
index 9ffbb3370e94..bea1e06311d8 100644
--- a/include/sfx2/dinfdlg.hxx
+++ b/include/sfx2/dinfdlg.hxx
@@ -420,8 +420,8 @@ private:
DECL_LINK( BoxLoseFocusHdl, Control&, void );
//add lose focus handlers of Date/TimeField?
- DECL_LINK(EditTimeoutHdl, Idle *, void);
- DECL_LINK(BoxTimeoutHdl, Idle *, void);
+ DECL_LINK(EditTimeoutHdl, Timer *, void);
+ DECL_LINK(BoxTimeoutHdl, Timer *, void);
bool IsLineValid( CustomPropertyLine* pLine ) const;
void ValidateLine( CustomPropertyLine* pLine, bool bIsFromTypeBox );
diff --git a/include/sfx2/dispatch.hxx b/include/sfx2/dispatch.hxx
index a172ced137de..441254a5490f 100644
--- a/include/sfx2/dispatch.hxx
+++ b/include/sfx2/dispatch.hxx
@@ -91,7 +91,7 @@ friend class SfxStateCache;
friend class SfxPopupMenuManager;
friend class SfxHelp;
- DECL_DLLPRIVATE_LINK( EventHdl_Impl, Idle *, void );
+ DECL_DLLPRIVATE_LINK( EventHdl_Impl, Timer *, void );
DECL_DLLPRIVATE_LINK( PostMsgHandler, SfxRequest *, void );
SAL_DLLPRIVATE void Call_Impl( SfxShell& rShell, const SfxSlot &rSlot, SfxRequest &rReq, bool bRecord );
diff --git a/include/sfx2/dockwin.hxx b/include/sfx2/dockwin.hxx
index cadc84000ab1..d9b3109e4466 100644
--- a/include/sfx2/dockwin.hxx
+++ b/include/sfx2/dockwin.hxx
@@ -99,7 +99,7 @@ public:
void SetMinOutputSizePixel( const Size& rSize );
const Size& GetMinOutputSizePixel() const;
virtual bool EventNotify( NotifyEvent& rNEvt ) override;
- DECL_LINK(TimerHdl, Idle *, void);
+ DECL_LINK(TimerHdl, Timer *, void);
SAL_DLLPRIVATE void Initialize_Impl();
SAL_DLLPRIVATE void SetItemSize_Impl( const Size& rSize );
diff --git a/include/svtools/asynclink.hxx b/include/svtools/asynclink.hxx
index ceee99b4bacc..d037504b0464 100644
--- a/include/svtools/asynclink.hxx
+++ b/include/svtools/asynclink.hxx
@@ -26,6 +26,7 @@
#include <osl/mutex.hxx>
class Idle;
+class Timer;
struct ImplSVEvent;
namespace svtools {
@@ -40,7 +41,7 @@ class SVT_DLLPUBLIC AsynchronLink
void* _pArg;
::osl::Mutex* _pMutex;
- DECL_DLLPRIVATE_LINK( HandleCall_Idle, Idle*, void );
+ DECL_DLLPRIVATE_LINK( HandleCall_Idle, Timer*, void );
DECL_DLLPRIVATE_LINK( HandleCall_PostUserEvent, void*, void );
SVT_DLLPRIVATE void Call_Impl( void* pArg );
diff --git a/include/svtools/filechangedchecker.hxx b/include/svtools/filechangedchecker.hxx
index 0a1bc42b9200..f9634e18919b 100644
--- a/include/svtools/filechangedchecker.hxx
+++ b/include/svtools/filechangedchecker.hxx
@@ -32,7 +32,7 @@ private:
::std::function<void ()> mpCallback;
bool SVT_DLLPRIVATE getCurrentModTime(TimeValue& o_rValue) const;
- DECL_LINK(TimerHandler, Idle *, void);
+ DECL_LINK(TimerHandler, Timer *, void);
public:
void resetTimer();
diff --git a/include/svtools/treelistbox.hxx b/include/svtools/treelistbox.hxx
index da18634d1f4e..c4e9d8847e45 100644
--- a/include/svtools/treelistbox.hxx
+++ b/include/svtools/treelistbox.hxx
@@ -790,7 +790,7 @@ class SvInplaceEdit2
bool bAlreadyInCallBack;
void CallCallBackHdl_Impl();
- DECL_LINK( Timeout_Impl, Idle *, void );
+ DECL_LINK( Timeout_Impl, Timer *, void );
DECL_LINK( ReturnHdl_Impl, Accelerator&, void );
DECL_LINK( EscapeHdl_Impl, Accelerator&, void );
diff --git a/include/svtools/wizdlg.hxx b/include/svtools/wizdlg.hxx
index 9f9ffe177738..cd21d66c4fb8 100644
--- a/include/svtools/wizdlg.hxx
+++ b/include/svtools/wizdlg.hxx
@@ -203,7 +203,7 @@ private:
sal_Int16 mnLeftAlignCount;
bool mbEmptyViewMargin;
- DECL_DLLPRIVATE_LINK( ImplHandleWizardLayoutTimerHdl, Idle*, void );
+ DECL_DLLPRIVATE_LINK( ImplHandleWizardLayoutTimerHdl, Timer*, void );
protected:
long LogicalCoordinateToPixel(int iCoordinate);
diff --git a/include/svx/fontwork.hxx b/include/svx/fontwork.hxx
index 83d1f3c11ec3..1bb4359f2117 100644
--- a/include/svx/fontwork.hxx
+++ b/include/svx/fontwork.hxx
@@ -147,7 +147,7 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow
DECL_LINK( SelectShadowHdl_Impl, ToolBox *, void );
DECL_LINK( ModifyInputHdl_Impl, Edit&, void );
- DECL_LINK( InputTimoutHdl_Impl, Idle *, void );
+ DECL_LINK( InputTimoutHdl_Impl, Timer *, void );
DECL_LINK( ColorSelectHdl_Impl, SvxColorListBox&, void );
diff --git a/include/svx/graphctl.hxx b/include/svx/graphctl.hxx
index b4dab163f1c8..05e752430126 100644
--- a/include/svx/graphctl.hxx
+++ b/include/svx/graphctl.hxx
@@ -54,7 +54,7 @@ class SVX_DLLPUBLIC GraphCtrl : public Control
bool bAnim;
bool mbInIdleUpdate;
- DECL_LINK( UpdateHdl, Idle*, void );
+ DECL_LINK( UpdateHdl, Timer*, void );
rtl::Reference<SvxGraphCtrlAccessibleContext> mpAccContext;
diff --git a/include/svx/imapdlg.hxx b/include/svx/imapdlg.hxx
index 284b38fd30f7..e328ab8b1e78 100644
--- a/include/svx/imapdlg.hxx
+++ b/include/svx/imapdlg.hxx
@@ -126,7 +126,7 @@ class SVX_DLLPUBLIC SvxIMapDlg : public SfxModelessDialog // SfxFloatingWindow
DECL_LINK( URLModifyHdl, Edit&, void );
DECL_LINK( URLModifyComboBoxHdl, ComboBox&, void );
DECL_LINK( URLLoseFocusHdl, Control&, void );
- DECL_LINK( UpdateHdl, Idle *, void );
+ DECL_LINK( UpdateHdl, Timer *, void );
DECL_LINK( StateHdl, GraphCtrl*, void );
DECL_LINK( MiscHdl, LinkParamNone*, void );
diff --git a/include/svx/modctrl.hxx b/include/svx/modctrl.hxx
index d820fb21cb39..37bfc7af3f03 100644
--- a/include/svx/modctrl.hxx
+++ b/include/svx/modctrl.hxx
@@ -43,7 +43,7 @@ public:
SvxModifyControl( sal_uInt16 nSlotId, sal_uInt16 nId, StatusBar& rStb );
private: // Links
- DECL_LINK( OnTimer, Idle *, void );
+ DECL_LINK( OnTimer, Timer *, void );
private: // Functions
void _repaint();
diff --git a/include/svx/numvset.hxx b/include/svx/numvset.hxx
index bc63ae1033fd..1c2da29a55ee 100644
--- a/include/svx/numvset.hxx
+++ b/include/svx/numvset.hxx
@@ -101,7 +101,7 @@ class SVX_DLLPUBLIC SvxBmpNumValueSet : public SvxNumValueSet
void init();
protected:
- DECL_LINK(FormatHdl_Impl, Idle *, void);
+ DECL_LINK(FormatHdl_Impl, Timer *, void);
public:
SvxBmpNumValueSet(vcl::Window* pParent, WinBits nWinBits);
diff --git a/include/svx/sidebar/PanelLayout.hxx b/include/svx/sidebar/PanelLayout.hxx
index 7492b887d41f..856785eb8cdf 100644
--- a/include/svx/sidebar/PanelLayout.hxx
+++ b/include/svx/sidebar/PanelLayout.hxx
@@ -28,7 +28,7 @@ private:
Idle m_aPanelLayoutIdle;
bool m_bInClose;
- DECL_DLLPRIVATE_LINK(ImplHandlePanelLayoutTimerHdl, Idle*, void);
+ DECL_DLLPRIVATE_LINK(ImplHandlePanelLayoutTimerHdl, Timer*, void);
public:
PanelLayout(vcl::Window* pParent, const OString& rID, const OUString& rUIXMLDescription,
diff --git a/include/svx/svdpntv.hxx b/include/svx/svdpntv.hxx
index dcf686230561..52b9b904d9e9 100644
--- a/include/svx/svdpntv.hxx
+++ b/include/svx/svdpntv.hxx
@@ -221,7 +221,7 @@ public:
private:
SVX_DLLPRIVATE void ImpClearVars();
- DECL_LINK(ImpComeBackHdl, Idle*, void);
+ DECL_LINK(ImpComeBackHdl, Timer*, void);
protected:
sal_uInt16 ImpGetMinMovLogic(short nMinMov, const OutputDevice* pOut) const;
diff --git a/include/vcl/dockwin.hxx b/include/vcl/dockwin.hxx
index c6d8fdb065f9..4d9c48963e93 100644
--- a/include/vcl/dockwin.hxx
+++ b/include/vcl/dockwin.hxx
@@ -242,7 +242,7 @@ private:
SAL_DLLPRIVATE void ImplInitDockingWindowData();
SAL_DLLPRIVATE void setPosSizeOnContainee(Size aSize, Window &rBox);
- DECL_DLLPRIVATE_LINK( ImplHandleLayoutTimerHdl, Idle*, void );
+ DECL_DLLPRIVATE_LINK( ImplHandleLayoutTimerHdl, Timer*, void );
DockingWindow (const DockingWindow &) = delete;
DockingWindow & operator= (const DockingWindow &) = delete;
diff --git a/include/vcl/idle.hxx b/include/vcl/idle.hxx
index 8d79c2f92527..707cc1248872 100644
--- a/include/vcl/idle.hxx
+++ b/include/vcl/idle.hxx
@@ -45,21 +45,8 @@ public:
Idle( const sal_Char *pDebugName = nullptr );
virtual void Start() override;
-
- /**
- * Convenience function for more readable code
- *
- * TODO: actually rename it and it's instances to SetInvokeHandler
- */
- inline void SetIdleHdl( const Link<Idle *, void>& rLink );
};
-inline void Idle::SetIdleHdl( const Link<Idle*, void> &rLink )
-{
- SetInvokeHandler( Link<Timer*, void>( rLink.GetInstance(),
- reinterpret_cast< Link<Timer*, void>::Stub* >( rLink.GetFunction()) ) );
-}
-
#endif // INCLUDED_VCL_IDLE_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/syswin.hxx b/include/vcl/syswin.hxx
index a0c3b6972059..ac7a0d765c26 100644
--- a/include/vcl/syswin.hxx
+++ b/include/vcl/syswin.hxx
@@ -177,7 +177,7 @@ public:
private:
SAL_DLLPRIVATE void ImplMoveToScreen( long& io_rX, long& io_rY, long i_nWidth, long i_nHeight, vcl::Window* i_pConfigureWin );
SAL_DLLPRIVATE void setPosSizeOnContainee(Size aSize, Window &rBox);
- DECL_DLLPRIVATE_LINK( ImplHandleLayoutTimerHdl, Idle*, void );
+ DECL_DLLPRIVATE_LINK( ImplHandleLayoutTimerHdl, Timer*, void );
protected:
// Single argument ctors shall be explicit.
diff --git a/include/vcl/texteng.hxx b/include/vcl/texteng.hxx
index 43fb1e245665..af678144e3e3 100644
--- a/include/vcl/texteng.hxx
+++ b/include/vcl/texteng.hxx
@@ -167,7 +167,7 @@ protected:
void ImpCharsRemoved( sal_uInt32 nPara, sal_Int32 nPos, sal_Int32 nChars );
void ImpCharsInserted( sal_uInt32 nPara, sal_Int32 nPos, sal_Int32 nChars );
- DECL_LINK( IdleFormatHdl, Idle *, void );
+ DECL_LINK( IdleFormatHdl, Timer *, void );
void CheckIdleFormatter();
void IdleFormatAndUpdate( TextView* pCurView, sal_uInt16 nMaxTimerRestarts = 5 );
diff --git a/include/vcl/timer.hxx b/include/vcl/timer.hxx
index e7d539fdabf4..49d9aa7fb4a3 100644
--- a/include/vcl/timer.hxx
+++ b/include/vcl/timer.hxx
@@ -57,24 +57,13 @@ public:
void Invoke( Timer *arg );
void SetInvokeHandler( const Link<Timer *, void>& rLink ) { maInvokeHandler = rLink; }
bool HasInvokeHandler() const { return maInvokeHandler.IsSet(); };
-
- /**
- * Convenience function for more readable code
- *
- * TODO: actually use SetInvokeHandler and drop it
- */
- inline void SetTimeoutHdl( const Link<Timer *, void>& rLink );
+ void ClearInvokeHandler() { SetInvokeHandler( Link<Timer *, void>() ); }
void SetTimeout( sal_uInt64 nTimeoutMs );
sal_uInt64 GetTimeout() const { return mnTimeout; }
virtual void Start() override;
};
-inline void Timer::SetTimeoutHdl( const Link<Timer *, void>& rLink )
-{
- SetInvokeHandler( rLink );
-}
-
/// An auto-timer is a multi-shot timer re-emitting itself at
/// interval until destroyed.
class VCL_DLLPUBLIC AutoTimer : public Timer
diff --git a/include/vcl/toolbox.hxx b/include/vcl/toolbox.hxx
index 083e6e602096..3dbcb3441547 100644
--- a/include/vcl/toolbox.hxx
+++ b/include/vcl/toolbox.hxx
@@ -210,7 +210,7 @@ private:
SAL_DLLPRIVATE void ImplDrawFloatwinBorder(vcl::RenderContext& rRenderContext, ImplToolItem* pItem );
DECL_DLLPRIVATE_LINK( ImplCallExecuteCustomMenu, void*, void );
- DECL_DLLPRIVATE_LINK( ImplUpdateHdl, Idle*, void );
+ DECL_DLLPRIVATE_LINK( ImplUpdateHdl, Timer*, void );
DECL_DLLPRIVATE_LINK( ImplCustomMenuListener, VclMenuEvent&, void );
DECL_DLLPRIVATE_LINK( ImplDropdownLongClickHdl, Timer*, void );
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 1b5759b23f12..ae214c294cae 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -531,11 +531,11 @@ private:
public:
- DECL_DLLPRIVATE_LINK( ImplHandlePaintHdl, Idle*, void );
+ DECL_DLLPRIVATE_LINK( ImplHandlePaintHdl, Timer*, void );
DECL_DLLPRIVATE_LINK( ImplGenerateMouseMoveHdl, void*, void );
DECL_DLLPRIVATE_LINK( ImplTrackTimerHdl, Timer*, void );
DECL_DLLPRIVATE_LINK( ImplAsyncFocusHdl, void*, void );
- DECL_DLLPRIVATE_LINK( ImplHandleResizeTimerHdl, Idle*, void );
+ DECL_DLLPRIVATE_LINK( ImplHandleResizeTimerHdl, Timer*, void );
SAL_DLLPRIVATE static void ImplInitAppFontData( vcl::Window* pWindow );