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 /include/svx/charmap.hxx | |
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 'include/svx/charmap.hxx')
-rw-r--r-- | include/svx/charmap.hxx | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/include/svx/charmap.hxx b/include/svx/charmap.hxx index db9e95361a75..6423076a09eb 100644 --- a/include/svx/charmap.hxx +++ b/include/svx/charmap.hxx @@ -53,14 +53,14 @@ public: void SelectCharacter( sal_uInt32 cNew, bool bFocus = false ); sal_UCS4 GetSelectCharacter() const; - Link GetDoubleClickHdl() const { return aDoubleClkHdl; } - void SetDoubleClickHdl( const Link& rLink ) { aDoubleClkHdl = rLink; } - Link GetSelectHdl() const { return aSelectHdl; } - void SetSelectHdl( const Link& rHdl ) { aSelectHdl = rHdl; } - Link GetHighlightHdl() const { return aHighHdl; } - void SetHighlightHdl( const Link& rHdl ) { aHighHdl = rHdl; } - Link GetPreSelectHdl() const { return aHighHdl; } - void SetPreSelectHdl( const Link& rHdl ) { aPreSelectHdl = rHdl; } + Link<> GetDoubleClickHdl() const { return aDoubleClkHdl; } + void SetDoubleClickHdl( const Link<>& rLink ) { aDoubleClkHdl = rLink; } + Link<> GetSelectHdl() const { return aSelectHdl; } + void SetSelectHdl( const Link<>& rHdl ) { aSelectHdl = rHdl; } + Link<> GetHighlightHdl() const { return aHighHdl; } + void SetHighlightHdl( const Link<>& rHdl ) { aHighHdl = rHdl; } + Link<> GetPreSelectHdl() const { return aHighHdl; } + void SetPreSelectHdl( const Link<>& rHdl ) { aPreSelectHdl = rHdl; } static sal_uInt32& getSelectedChar(); svx::SvxShowCharSetItem* ImplGetItem( int _nPos ); @@ -100,10 +100,10 @@ protected: private: typedef std::map<sal_Int32, std::shared_ptr<svx::SvxShowCharSetItem> > ItemsMap; ItemsMap m_aItems; - Link aDoubleClkHdl; - Link aSelectHdl; - Link aHighHdl; - Link aPreSelectHdl; + Link<> aDoubleClkHdl; + Link<> aSelectHdl; + Link<> aHighHdl; + Link<> aPreSelectHdl; svx::SvxShowCharSetVirtualAcc* m_pAccessible; ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xAccessible; long nX; |