summaryrefslogtreecommitdiff
path: root/include/editeng
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 /include/editeng
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 'include/editeng')
-rw-r--r--include/editeng/brushitem.hxx2
-rw-r--r--include/editeng/editeng.hxx34
-rw-r--r--include/editeng/editview.hxx4
-rw-r--r--include/editeng/edtdlg.hxx18
-rw-r--r--include/editeng/outliner.hxx112
5 files changed, 85 insertions, 85 deletions
diff --git a/include/editeng/brushitem.hxx b/include/editeng/brushitem.hxx
index b529d318dcd9..0dd5f5c23058 100644
--- a/include/editeng/brushitem.hxx
+++ b/include/editeng/brushitem.hxx
@@ -98,7 +98,7 @@ public:
Color& GetColor() { return aColor; }
void SetColor( const Color& rCol) { aColor = rCol; }
- void SetDoneLink( const Link& rLink );
+ void SetDoneLink( const Link<>& rLink );
SvxGraphicPosition GetGraphicPos() const { return eGraphicPos; }
diff --git a/include/editeng/editeng.hxx b/include/editeng/editeng.hxx
index 65c57db23329..4ead58f533c9 100644
--- a/include/editeng/editeng.hxx
+++ b/include/editeng/editeng.hxx
@@ -33,6 +33,7 @@
#include <i18nlangtag/lang.h>
#include <tools/lineend.hxx>
+#include <tools/link.hxx>
#include <tools/rtti.hxx>
#include <editeng/eedata.hxx>
@@ -84,7 +85,6 @@ class Size;
class Point;
class Rectangle;
class SvStream;
-class Link;
class OutputDevice;
namespace vcl { class Window; }
class SfxPoolItem;
@@ -345,8 +345,8 @@ public:
void SetModified();
bool IsModified() const;
- void SetModifyHdl( const Link& rLink );
- Link GetModifyHdl() const;
+ void SetModifyHdl( const Link<>& rLink );
+ Link<> GetModifyHdl() const;
bool IsInSelectionMode() const;
@@ -368,14 +368,14 @@ 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<>& rLink );
+ Link<> GetStatusEventHdl() const;
- void SetNotifyHdl( const Link& rLink );
- Link GetNotifyHdl() const;
+ void SetNotifyHdl( const Link<>& rLink );
+ Link<> GetNotifyHdl() const;
- void SetImportHdl( const Link& rLink );
- Link GetImportHdl() const;
+ void SetImportHdl( const Link<>& rLink );
+ Link<> GetImportHdl() const;
// Do not evaluate font formatting => For Outliner
bool IsFlatMode() const;
@@ -464,10 +464,10 @@ public:
CreateTransferable( const ESelection& rSelection ) const;
// MT: Can't create new virtual functions like for ParagraphInserted/Deleted, musst be compatible in SRC638, change later...
- void SetBeginMovingParagraphsHdl( const Link& rLink );
- void SetEndMovingParagraphsHdl( const Link& rLink );
- void SetBeginPasteOrDropHdl( const Link& rLink );
- void SetEndPasteOrDropHdl( const Link& rLink );
+ void SetBeginMovingParagraphsHdl( const Link<>& rLink );
+ void SetEndMovingParagraphsHdl( const Link<>& rLink );
+ void SetBeginPasteOrDropHdl( const Link<>& rLink );
+ void SetEndPasteOrDropHdl( const Link<>& rLink );
virtual void PaintingFirstLine( sal_Int32 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev );
virtual void ParagraphInserted( sal_Int32 nNewParagraph );
@@ -519,12 +519,12 @@ public:
static bool IsPrintable( sal_Unicode c ) { return ( ( c >= 32 ) && ( c != 127 ) ); }
static bool HasValidData( const ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable >& rTransferable );
/** sets a link that is called at the beginning of a drag operation at an edit view */
- void SetBeginDropHdl( const Link& rLink );
- Link GetBeginDropHdl() const;
+ void SetBeginDropHdl( const Link<>& rLink );
+ Link<> GetBeginDropHdl() const;
/** sets a link that is called at the end of a drag operation at an edit view */
- void SetEndDropHdl( const Link& rLink );
- Link GetEndDropHdl() const;
+ void SetEndDropHdl( const Link<>& rLink );
+ Link<> GetEndDropHdl() const;
/// specifies if auto-correction should capitalize the first word or not (default is on)
void SetFirstWordCapitalization( bool bCapitalize );
diff --git a/include/editeng/editview.hxx b/include/editeng/editview.hxx
index aec7f03c9939..bb091172c9ba 100644
--- a/include/editeng/editview.hxx
+++ b/include/editeng/editview.hxx
@@ -26,6 +26,7 @@
#include <i18nlangtag/lang.h>
#include <tools/color.hxx>
#include <tools/gen.hxx>
+#include <tools/link.hxx>
#include <vcl/cursor.hxx>
#include <editeng/editstat.hxx>
#include <svl/languageoptions.hxx>
@@ -44,7 +45,6 @@ class MouseEvent;
class DropEvent;
class CommandEvent;
class Rectangle;
-class Link;
class Pair;
class Point;
class Range;
@@ -213,7 +213,7 @@ public:
bool IsWrongSpelledWordAtPos( const Point& rPosPixel, bool bMarkIfWrong = false );
bool IsShapeParaFocusable();
bool WrongSpelledBreakPara(sal_Int32 nPara, sal_Int32& nStartIndex, sal_Int32& nEndIndex, sal_Int32 nIndex);
- void ExecuteSpellPopup( const Point& rPosPixel, Link* pCallBack = 0 );
+ void ExecuteSpellPopup( const Point& rPosPixel, Link<>* pCallBack = 0 );
void InsertField( const SvxFieldItem& rFld );
const SvxFieldItem* GetFieldUnderMousePointer() const;
diff --git a/include/editeng/edtdlg.hxx b/include/editeng/edtdlg.hxx
index a767061454cb..01ff1ea7b9a6 100644
--- a/include/editeng/edtdlg.hxx
+++ b/include/editeng/edtdlg.hxx
@@ -20,6 +20,7 @@
#define INCLUDED_EDITENG_EDTDLG_HXX
#include <rtl/ustring.hxx>
+#include <tools/link.hxx>
#include <editeng/editengdllapi.h>
#include <i18nlangtag/lang.h>
#include <com/sun/star/uno/Reference.hxx>
@@ -34,7 +35,6 @@ namespace com { namespace sun { namespace star { namespace linguistic2
namespace vcl { class Window; }
class ResId;
-class Link;
class SvxSpellWrapper;
class AbstractThesaurusDialog : public VclAbstractDialog
@@ -60,14 +60,14 @@ class AbstractHangulHanjaConversionDialog : public VclAbstractTerminatedDialog
virtual void SetByCharacter( bool _bByCharacter ) = 0;
virtual void SetConversionDirectionState( bool _bTryBothDirections, editeng::HangulHanjaConversion::ConversionDirection _ePrimaryConversionDirection ) = 0;
virtual void SetConversionFormat( editeng::HangulHanjaConversion::ConversionFormat _eType ) = 0;
- virtual void SetOptionsChangedHdl( const Link& _rHdl ) = 0;
- virtual void SetIgnoreHdl( const Link& _rHdl ) = 0;
- virtual void SetIgnoreAllHdl( const Link& _rHdl ) = 0;
- virtual void SetChangeHdl( const Link& _rHdl ) = 0;
- virtual void SetChangeAllHdl( const Link& _rHdl ) = 0;
- virtual void SetClickByCharacterHdl( const Link& _rHdl ) = 0;
- virtual void SetConversionFormatChangedHdl( const Link& _rHdl ) = 0;
- virtual void SetFindHdl( const Link& _rHdl ) = 0;
+ virtual void SetOptionsChangedHdl( const Link<>& _rHdl ) = 0;
+ virtual void SetIgnoreHdl( const Link<>& _rHdl ) = 0;
+ virtual void SetIgnoreAllHdl( const Link<>& _rHdl ) = 0;
+ virtual void SetChangeHdl( const Link<>& _rHdl ) = 0;
+ virtual void SetChangeAllHdl( const Link<>& _rHdl ) = 0;
+ virtual void SetClickByCharacterHdl( const Link<>& _rHdl ) = 0;
+ virtual void SetConversionFormatChangedHdl( const Link<>& _rHdl ) = 0;
+ virtual void SetFindHdl( const Link<>& _rHdl ) = 0;
virtual bool GetUseBothDirections() const= 0;
virtual editeng::HangulHanjaConversion::ConversionDirection
GetDirection( editeng::HangulHanjaConversion::ConversionDirection _eDefaultDirection ) const = 0;
diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx
index 81fb3561575d..4b47caeb97ec 100644
--- a/include/editeng/outliner.hxx
+++ b/include/editeng/outliner.hxx
@@ -364,7 +364,7 @@ public:
bool IsCursorAtWrongSpelledWord( bool bMarkIfWrong = false );
bool IsWrongSpelledWordAtPos( const Point& rPosPixel, bool bMarkIfWrong = false );
- void ExecuteSpellPopup( const Point& rPosPixel, Link* pCallBack = 0 );
+ void ExecuteSpellPopup( const Point& rPosPixel, Link<>* pCallBack = 0 );
void SetInvalidateMore( sal_uInt16 nPixel );
sal_uInt16 GetInvalidateMore() const;
@@ -589,22 +589,22 @@ class EDITENG_DLLPUBLIC Outliner : public SfxBroadcaster
Paragraph* pHdlParagraph;
sal_Int32 mnFirstSelPage;
- Link aDrawPortionHdl;
- Link aDrawBulletHdl;
- Link aExpandHdl;
- Link aParaInsertedHdl;
- Link aParaRemovingHdl;
- Link aDepthChangedHdl;
- Link aWidthArrReqHdl;
- Link aBeginMovingHdl;
- Link aEndMovingHdl;
- Link aIndentingPagesHdl;
- Link aRemovingPagesHdl;
- Link aFieldClickedHdl;
- Link aCalcFieldValueHdl;
- Link maPaintFirstLineHdl;
- Link maBeginPasteOrDropHdl;
- Link maEndPasteOrDropHdl;
+ Link<> aDrawPortionHdl;
+ Link<> aDrawBulletHdl;
+ Link<> aExpandHdl;
+ Link<> aParaInsertedHdl;
+ Link<> aParaRemovingHdl;
+ Link<> aDepthChangedHdl;
+ Link<> aWidthArrReqHdl;
+ Link<> aBeginMovingHdl;
+ Link<> aEndMovingHdl;
+ Link<> aIndentingPagesHdl;
+ Link<> aRemovingPagesHdl;
+ Link<> aFieldClickedHdl;
+ Link<> aCalcFieldValueHdl;
+ Link<> maPaintFirstLineHdl;
+ Link<> maBeginPasteOrDropHdl;
+ Link<> maEndPasteOrDropHdl;
sal_Int32 nDepthChangedHdlPrevDepth;
ParaFlag mnDepthChangeHdlPrevFlags;
@@ -761,57 +761,57 @@ public:
bool IsExpanding() const { return bIsExpanding; }
void ExpandHdl();
- void SetExpandHdl( const Link& rLink ) { aExpandHdl = rLink; }
- Link GetExpandHdl() const { return aExpandHdl; }
+ void SetExpandHdl( const Link<>& rLink ) { aExpandHdl = rLink; }
+ Link<> GetExpandHdl() const { return aExpandHdl; }
void ParagraphInsertedHdl();
- void SetParaInsertedHdl(const Link& rLink){aParaInsertedHdl=rLink;}
- Link GetParaInsertedHdl() const { return aParaInsertedHdl; }
+ void SetParaInsertedHdl(const Link<>& rLink){aParaInsertedHdl=rLink;}
+ Link<> GetParaInsertedHdl() const { return aParaInsertedHdl; }
void ParagraphRemovingHdl();
- void SetParaRemovingHdl(const Link& rLink){aParaRemovingHdl=rLink;}
- Link GetParaRemovingHdl() const { return aParaRemovingHdl; }
+ void SetParaRemovingHdl(const Link<>& rLink){aParaRemovingHdl=rLink;}
+ Link<> GetParaRemovingHdl() const { return aParaRemovingHdl; }
void DepthChangedHdl();
- void SetDepthChangedHdl(const Link& rLink){aDepthChangedHdl=rLink;}
- Link GetDepthChangedHdl() const { return aDepthChangedHdl; }
+ void SetDepthChangedHdl(const Link<>& rLink){aDepthChangedHdl=rLink;}
+ Link<> GetDepthChangedHdl() const { return aDepthChangedHdl; }
sal_Int16 GetPrevDepth() const { return static_cast<sal_Int16>(nDepthChangedHdlPrevDepth); }
ParaFlag GetPrevFlags() const { return mnDepthChangeHdlPrevFlags; }
bool RemovingPagesHdl( OutlinerView* );
- void SetRemovingPagesHdl(const Link& rLink){aRemovingPagesHdl=rLink;}
- Link GetRemovingPagesHdl() const { return aRemovingPagesHdl; }
+ void SetRemovingPagesHdl(const Link<>& rLink){aRemovingPagesHdl=rLink;}
+ Link<> GetRemovingPagesHdl() const { return aRemovingPagesHdl; }
long IndentingPagesHdl( OutlinerView* );
- void SetIndentingPagesHdl(const Link& rLink){aIndentingPagesHdl=rLink;}
- Link GetIndentingPagesHdl() const { return aIndentingPagesHdl; }
+ void SetIndentingPagesHdl(const Link<>& rLink){aIndentingPagesHdl=rLink;}
+ Link<> GetIndentingPagesHdl() const { return aIndentingPagesHdl; }
// valid only in the two upper handlers
sal_Int32 GetSelPageCount() const { return nDepthChangedHdlPrevDepth; }
// valid only in the two upper handlers
sal_Int32 GetFirstSelPage() const { return mnFirstSelPage; }
- void SetCalcFieldValueHdl(const Link& rLink ) { aCalcFieldValueHdl= rLink; }
- Link GetCalcFieldValueHdl() const { return aCalcFieldValueHdl; }
+ void SetCalcFieldValueHdl(const Link<>& rLink ) { aCalcFieldValueHdl= rLink; }
+ Link<> GetCalcFieldValueHdl() const { return aCalcFieldValueHdl; }
- void SetFieldClickedHdl(const Link& rLink ) { aFieldClickedHdl= rLink; }
- Link GetFieldClickedHdl() const { return aFieldClickedHdl; }
+ void SetFieldClickedHdl(const Link<>& rLink ) { aFieldClickedHdl= rLink; }
+ Link<> GetFieldClickedHdl() const { return aFieldClickedHdl; }
- void SetDrawPortionHdl(const Link& rLink){aDrawPortionHdl=rLink;}
- Link GetDrawPortionHdl() const { return aDrawPortionHdl; }
+ void SetDrawPortionHdl(const Link<>& rLink){aDrawPortionHdl=rLink;}
+ Link<> GetDrawPortionHdl() const { return aDrawPortionHdl; }
- void SetDrawBulletHdl(const Link& rLink){aDrawBulletHdl=rLink;}
- Link GetDrawBulletHdl() const { return aDrawBulletHdl; }
+ void SetDrawBulletHdl(const Link<>& rLink){aDrawBulletHdl=rLink;}
+ Link<> GetDrawBulletHdl() const { return aDrawBulletHdl; }
- void SetPaintFirstLineHdl(const Link& rLink) { maPaintFirstLineHdl = rLink; }
- Link GetPaintFirstLineHdl() const { return maPaintFirstLineHdl; }
+ void SetPaintFirstLineHdl(const Link<>& rLink) { maPaintFirstLineHdl = rLink; }
+ Link<> GetPaintFirstLineHdl() const { return maPaintFirstLineHdl; }
- void SetModifyHdl( const Link& rLink );
- Link GetModifyHdl() const;
+ void SetModifyHdl( const Link<>& rLink );
+ Link<> GetModifyHdl() const;
- void SetNotifyHdl( const Link& rLink );
+ void SetNotifyHdl( const Link<>& rLink );
- void SetStatusEventHdl( const Link& rLink );
- Link GetStatusEventHdl() const;
+ void SetStatusEventHdl( const Link<>& rLink );
+ Link<> GetStatusEventHdl() const;
void Draw( OutputDevice* pOutDev, const Rectangle& rOutRect );
void Draw( OutputDevice* pOutDev, const Point& rStartPos, short nOrientation = 0 );
@@ -893,16 +893,16 @@ public:
// Returns an array containing the widths of the Bullet Indentations
// Last value must be -1. Is deleted by the outliner.
- Link GetWidthArrReqHdl() const{ return aWidthArrReqHdl; }
- void SetWidthArrReqHdl(const Link& rLink){aWidthArrReqHdl=rLink; }
+ Link<> GetWidthArrReqHdl() const{ return aWidthArrReqHdl; }
+ void SetWidthArrReqHdl(const Link<>& rLink){aWidthArrReqHdl=rLink; }
void SetControlWord( EEControlBits nWord );
EEControlBits GetControlWord() const;
- Link GetBeginMovingHdl() const { return aBeginMovingHdl; }
- void SetBeginMovingHdl(const Link& rLink) {aBeginMovingHdl=rLink;}
- Link GetEndMovingHdl() const {return aEndMovingHdl;}
- void SetEndMovingHdl( const Link& rLink){aEndMovingHdl=rLink;}
+ Link<> GetBeginMovingHdl() const { return aBeginMovingHdl; }
+ void SetBeginMovingHdl(const Link<>& rLink) {aBeginMovingHdl=rLink;}
+ Link<> GetEndMovingHdl() const {return aEndMovingHdl;}
+ void SetEndMovingHdl( const Link<>& rLink){aEndMovingHdl=rLink;}
sal_uLong GetLineCount( sal_Int32 nParagraph ) const;
sal_Int32 GetLineLen( sal_Int32 nParagraph, sal_Int32 nLine ) const;
@@ -989,18 +989,18 @@ public:
void ApplyChangedSentence(EditView& rEditView, const svx::SpellPortions& rNewPortions, bool bRecheck );
/** sets a link that is called at the beginning of a drag operation at an edit view */
- void SetBeginDropHdl( const Link& rLink );
+ void SetBeginDropHdl( const Link<>& rLink );
/** sets a link that is called at the end of a drag operation at an edit view */
- void SetEndDropHdl( const Link& rLink );
+ void SetEndDropHdl( const Link<>& rLink );
/** sets a link that is called before a drop or paste operation. */
- void SetBeginPasteOrDropHdl( const Link& rLink );
- Link GetBeginPasteOrDropHdl() const { return maBeginPasteOrDropHdl; }
+ void SetBeginPasteOrDropHdl( const Link<>& rLink );
+ Link<> GetBeginPasteOrDropHdl() const { return maBeginPasteOrDropHdl; }
/** sets a link that is called after a drop or paste operation. */
- void SetEndPasteOrDropHdl( const Link& rLink );
- Link GetEndPasteOrDropHdl() const { return maEndPasteOrDropHdl; }
+ void SetEndPasteOrDropHdl( const Link<>& rLink );
+ Link<> GetEndPasteOrDropHdl() const { return maEndPasteOrDropHdl; }
sal_Int16 GetNumberingStartValue( sal_Int32 nPara );
void SetNumberingStartValue( sal_Int32 nPara, sal_Int16 nNumberingStartValue );