diff options
author | Michael Stahl <michael.stahl@allotropia.de> | 2022-06-16 11:28:05 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2022-06-18 09:03:30 +0200 |
commit | 37ec4442d70339dc8ec5fb8e4ec8984420b6e14d (patch) | |
tree | 4175e83124d5fbcb79208966e29b2156093e5106 | |
parent | 20b8c7f38ae1c03dc0405a2da006ab6b2dbf3627 (diff) |
o3tl: ensure that the initializer of enumarray contains enough elements
Currently this silently succeeds. Turns out oox already contains some
too-short initializers, let's guess the missing properties are all
invalid.
One downside of the templated parameter pack approach in the enumarray ctor, as
witnessed in vcl/win/window/salframe.cxx, is that argument types can no longer
be implicitly deduced and thus need to be spelled explicitly now in certain
cases.
There were also three uses of enumarry with V being unsigned short (aka
sal_uInt16) that started to cause narrowing conversion errors now and needed to
be adapted: In editeng/source/uno/unonrule.cxx the obvious fix was to use the
proper type for V. In sw/source/core/unocore/unosett.cxx with its odd mix of
saL_Int16 and USHRT_MAX, lets keep things that way for now (probably awaiting
later clean up) and use casts to avoid the implicit narrowing. And in
sw/source/filter/ww8/wrtw8esh.cxx the ESCHER_Prop_* values, while presumably
conceptionally of type sal_uInt16, are plain #defines (thus of type int), so
rather than changing V to int it looked more consistent to explicitly cast the
ESCHER_Prop_* vlaues to sal_uInt16.
(And in tools/source/fsys/urlobj.cxx the poor loplugin:redundantfcast started to
unhelpfully kick in for (only) the first argument now.)
Change-Id: If06c29e673ec7e565e283c6f447889cf1f777cb7
Co-authored-by: Stephan Bergmann <sbergman@redhat.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135970
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
-rw-r--r-- | editeng/source/uno/unonrule.cxx | 2 | ||||
-rw-r--r-- | include/o3tl/enumarray.hxx | 17 | ||||
-rw-r--r-- | oox/source/drawingml/chart/objectformatter.cxx | 9 | ||||
-rw-r--r-- | sw/source/core/unocore/unosett.cxx | 12 | ||||
-rw-r--r-- | sw/source/filter/ww8/wrtw8esh.cxx | 4 | ||||
-rw-r--r-- | tools/source/fsys/urlobj.cxx | 1 | ||||
-rw-r--r-- | vcl/win/window/salframe.cxx | 184 |
7 files changed, 124 insertions, 105 deletions
diff --git a/editeng/source/uno/unonrule.cxx b/editeng/source/uno/unonrule.cxx index 3e33d8e46237..5bd84cc10b42 100644 --- a/editeng/source/uno/unonrule.cxx +++ b/editeng/source/uno/unonrule.cxx @@ -67,7 +67,7 @@ const SvxAdjust aUnoToSvxAdjust[] = SvxAdjust::Block }; -const o3tl::enumarray<SvxAdjust, unsigned short> aSvxToUnoAdjust +const o3tl::enumarray<SvxAdjust, sal_Int16> aSvxToUnoAdjust { text::HoriOrientation::LEFT, text::HoriOrientation::RIGHT, diff --git a/include/o3tl/enumarray.hxx b/include/o3tl/enumarray.hxx index a3c09d56bea0..6abfc9ac53ba 100644 --- a/include/o3tl/enumarray.hxx +++ b/include/o3tl/enumarray.hxx @@ -22,6 +22,7 @@ #include <iterator> #include <type_traits> +#include <utility> #include <cassert> namespace o3tl { @@ -55,6 +56,20 @@ public: static const size_type max_index = static_cast<size_type>(E::LAST); + // If this ctor only had the args parameter pack, it would erroneously get picked as a better + // choice than the (implicit) copy ctor (taking a const lvalue reference) when a copy is made + // from a non-const lvalue enumarray; the easiest way to avoid that is the additional arg + // parameter; and to keep things simple that parameter is always passed by const lvalue + // reference for now even if there could be cases where passing it by rvalue reference might be + // beneficial or even necessary if V is a move-only type: + template<typename... T> constexpr enumarray(V const & arg, T && ...args): + detail_values{arg, std::forward<T>(args)...} + { + static_assert(sizeof... (T) == max_index); + } + + enumarray() {} + const V& operator[](E index) const { assert(index>=static_cast<E>(0) && index<=E::LAST); @@ -78,7 +93,7 @@ public: V* data() { return detail_values; } -//private: +private: V detail_values[max_index + 1]; }; diff --git a/oox/source/drawingml/chart/objectformatter.cxx b/oox/source/drawingml/chart/objectformatter.cxx index 44b3d3a3f0ea..24094db5234a 100644 --- a/oox/source/drawingml/chart/objectformatter.cxx +++ b/oox/source/drawingml/chart/objectformatter.cxx @@ -450,7 +450,8 @@ const ShapePropertyIds spnCommonPropIds = PROP_FillStyle, PROP_FillColor, PROP_FillTransparence, PROP_FillTransparenceGradientName, PROP_FillGradientName, PROP_FillBitmapName, PROP_FillBitmapMode, PROP_FillBitmapSizeX, PROP_FillBitmapSizeY, PROP_FillBitmapPositionOffsetX, PROP_FillBitmapPositionOffsetY, PROP_FillBitmapRectanglePoint, - PROP_FillHatchName, PROP_FillBackground + PROP_FillHatchName, PROP_FillBackground, + PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID }; const ShapePropertyIds spnLinearPropIds = @@ -460,7 +461,8 @@ const ShapePropertyIds spnLinearPropIds = PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, - PROP_INVALID, PROP_INVALID + PROP_INVALID, PROP_INVALID, + PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID }; const ShapePropertyIds spnFilledPropIds = @@ -491,7 +493,8 @@ const ShapePropertyIds spnFilledPropIds = PROP_FillBitmapPositionOffsetY, PROP_FillBitmapRectanglePoint, PROP_HatchName, - PROP_FillBackground + PROP_FillBackground, + PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID }; /** Property info for common chart objects, to be used in ShapePropertyMap. */ diff --git a/sw/source/core/unocore/unosett.cxx b/sw/source/core/unocore/unosett.cxx index 648110971c33..e06e5fe42e50 100644 --- a/sw/source/core/unocore/unosett.cxx +++ b/sw/source/core/unocore/unosett.cxx @@ -242,12 +242,12 @@ static SwPageDesc* lcl_GetPageDesc(SwDoc* pDoc, const uno::Any& aValue) // Numbering const o3tl::enumarray<SvxAdjust, unsigned short> aSvxToUnoAdjust { - text::HoriOrientation::LEFT, //3 - text::HoriOrientation::RIGHT, //1 - USHRT_MAX, - text::HoriOrientation::CENTER, //2 - USHRT_MAX, - USHRT_MAX + static_cast<unsigned short>(text::HoriOrientation::LEFT), //3 + static_cast<unsigned short>(text::HoriOrientation::RIGHT), //1 + static_cast<unsigned short>(USHRT_MAX), + static_cast<unsigned short>(text::HoriOrientation::CENTER), //2 + static_cast<unsigned short>(USHRT_MAX), + static_cast<unsigned short>(USHRT_MAX) }; const unsigned short aUnoToSvxAdjust[] = diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx index 9881868a9e17..d2de899f2d3d 100644 --- a/sw/source/filter/ww8/wrtw8esh.cxx +++ b/sw/source/filter/ww8/wrtw8esh.cxx @@ -1880,8 +1880,8 @@ sal_Int32 SwBasicEscherEx::WriteFlyFrameAttr(const SwFrameFormat& rFormat, { static const o3tl::enumarray<SvxBoxItemLine, sal_uInt16> aExhperProp = { - ESCHER_Prop_dyTextTop, ESCHER_Prop_dyTextBottom, - ESCHER_Prop_dxTextLeft, ESCHER_Prop_dxTextRight + sal_uInt16(ESCHER_Prop_dyTextTop), sal_uInt16(ESCHER_Prop_dyTextBottom), + sal_uInt16(ESCHER_Prop_dxTextLeft), sal_uInt16(ESCHER_Prop_dxTextRight) }; const SvxBorderLine* pLine; diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx index 00e3207b2d3b..12a1a797fba0 100644 --- a/tools/source/fsys/urlobj.cxx +++ b/tools/source/fsys/urlobj.cxx @@ -348,6 +348,7 @@ INetURLObject::getSchemeInfo(INetProtocol eTheScheme) static constexpr OUStringLiteral VND_CMIS = u"vnd.libreoffice.cmis"; static o3tl::enumarray<INetProtocol, SchemeInfo> const map = { + // [-loplugin:redundantfcast]: SchemeInfo{ EMPTY, "", false, false, false, false, false, false, false, false}, SchemeInfo{ diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx index 567d95eec233..fac5bbfac242 100644 --- a/vcl/win/window/salframe.cxx +++ b/vcl/win/window/salframe.cxx @@ -2025,102 +2025,102 @@ void WinSalFrame::SetPointer( PointerStyle ePointerStyle ) static o3tl::enumarray<PointerStyle, ImplPtrData> aImplPtrTab = { ImplPtrData{ nullptr, IDC_ARROW, 0 }, // POINTER_ARROW - { nullptr, nullptr, SAL_RESID_POINTER_NULL }, // POINTER_NULL - { nullptr, IDC_WAIT, 0 }, // POINTER_WAIT - { nullptr, IDC_IBEAM, 0 }, // POINTER_TEXT - { nullptr, IDC_HELP, 0 }, // POINTER_HELP - { nullptr, IDC_CROSS, 0 }, // POINTER_CROSS - { nullptr, IDC_SIZEALL, 0 }, // POINTER_MOVE - { nullptr, IDC_SIZENS, 0 }, // POINTER_NSIZE - { nullptr, IDC_SIZENS, 0 }, // POINTER_SSIZE - { nullptr, IDC_SIZEWE, 0 }, // POINTER_WSIZE - { nullptr, IDC_SIZEWE, 0 }, // POINTER_ESIZE - { nullptr, IDC_SIZENWSE, 0 }, // POINTER_NWSIZE - { nullptr, IDC_SIZENESW, 0 }, // POINTER_NESIZE - { nullptr, IDC_SIZENESW, 0 }, // POINTER_SWSIZE - { nullptr, IDC_SIZENWSE, 0 }, // POINTER_SESIZE - { nullptr, IDC_SIZENS, 0 }, // POINTER_WINDOW_NSIZE - { nullptr, IDC_SIZENS, 0 }, // POINTER_WINDOW_SSIZE - { nullptr, IDC_SIZEWE, 0 }, // POINTER_WINDOW_WSIZE - { nullptr, IDC_SIZEWE, 0 }, // POINTER_WINDOW_ESIZE - { nullptr, IDC_SIZENWSE, 0 }, // POINTER_WINDOW_NWSIZE - { nullptr, IDC_SIZENESW, 0 }, // POINTER_WINDOW_NESIZE - { nullptr, IDC_SIZENESW, 0 }, // POINTER_WINDOW_SWSIZE - { nullptr, IDC_SIZENWSE, 0 }, // POINTER_WINDOW_SESIZE - { nullptr, IDC_SIZEWE, 0 }, // POINTER_HSPLIT - { nullptr, IDC_SIZENS, 0 }, // POINTER_VSPLIT - { nullptr, IDC_SIZEWE, 0 }, // POINTER_HSIZEBAR - { nullptr, IDC_SIZENS, 0 }, // POINTER_VSIZEBAR - { nullptr, IDC_HAND, 0 }, // POINTER_HAND - { nullptr, IDC_HAND, 0 }, // POINTER_REFHAND - { nullptr, IDC_PEN, 0 }, // POINTER_PEN - { nullptr, nullptr, SAL_RESID_POINTER_MAGNIFY }, // POINTER_MAGNIFY - { nullptr, nullptr, SAL_RESID_POINTER_FILL }, // POINTER_FILL - { nullptr, nullptr, SAL_RESID_POINTER_ROTATE }, // POINTER_ROTATE - { nullptr, nullptr, SAL_RESID_POINTER_HSHEAR }, // POINTER_HSHEAR - { nullptr, nullptr, SAL_RESID_POINTER_VSHEAR }, // POINTER_VSHEAR - { nullptr, nullptr, SAL_RESID_POINTER_MIRROR }, // POINTER_MIRROR - { nullptr, nullptr, SAL_RESID_POINTER_CROOK }, // POINTER_CROOK - { nullptr, nullptr, SAL_RESID_POINTER_CROP }, // POINTER_CROP - { nullptr, nullptr, SAL_RESID_POINTER_MOVEPOINT }, // POINTER_MOVEPOINT - { nullptr, nullptr, SAL_RESID_POINTER_MOVEBEZIERWEIGHT }, // POINTER_MOVEBEZIERWEIGHT - { nullptr, nullptr, SAL_RESID_POINTER_MOVEDATA }, // POINTER_MOVEDATA - { nullptr, nullptr, SAL_RESID_POINTER_COPYDATA }, // POINTER_COPYDATA - { nullptr, nullptr, SAL_RESID_POINTER_LINKDATA }, // POINTER_LINKDATA - { nullptr, nullptr, SAL_RESID_POINTER_MOVEDATALINK }, // POINTER_MOVEDATALINK - { nullptr, nullptr, SAL_RESID_POINTER_COPYDATALINK }, // POINTER_COPYDATALINK - { nullptr, nullptr, SAL_RESID_POINTER_MOVEFILE }, // POINTER_MOVEFILE - { nullptr, nullptr, SAL_RESID_POINTER_COPYFILE }, // POINTER_COPYFILE - { nullptr, nullptr, SAL_RESID_POINTER_LINKFILE }, // POINTER_LINKFILE - { nullptr, nullptr, SAL_RESID_POINTER_MOVEFILELINK }, // POINTER_MOVEFILELINK - { nullptr, nullptr, SAL_RESID_POINTER_COPYFILELINK }, // POINTER_COPYFILELINK - { nullptr, nullptr, SAL_RESID_POINTER_MOVEFILES }, // POINTER_MOVEFILES - { nullptr, nullptr, SAL_RESID_POINTER_COPYFILES }, // POINTER_COPYFILES - { nullptr, IDC_NO, 0 }, // POINTER_NOTALLOWED - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_LINE }, // POINTER_DRAW_LINE - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_RECT }, // POINTER_DRAW_RECT - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_POLYGON }, // POINTER_DRAW_POLYGON - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_BEZIER }, // POINTER_DRAW_BEZIER - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_ARC }, // POINTER_DRAW_ARC - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_PIE }, // POINTER_DRAW_PIE - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_CIRCLECUT }, // POINTER_DRAW_CIRCLECUT - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_ELLIPSE }, // POINTER_DRAW_ELLIPSE - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_FREEHAND }, // POINTER_DRAW_FREEHAND - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_CONNECT }, // POINTER_DRAW_CONNECT - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_TEXT }, // POINTER_DRAW_TEXT - { nullptr, nullptr, SAL_RESID_POINTER_DRAW_CAPTION }, // POINTER_DRAW_CAPTION - { nullptr, nullptr, SAL_RESID_POINTER_CHART }, // POINTER_CHART - { nullptr, nullptr, SAL_RESID_POINTER_DETECTIVE }, // POINTER_DETECTIVE - { nullptr, nullptr, SAL_RESID_POINTER_PIVOT_COL }, // POINTER_PIVOT_COL - { nullptr, nullptr, SAL_RESID_POINTER_PIVOT_ROW }, // POINTER_PIVOT_ROW - { nullptr, nullptr, SAL_RESID_POINTER_PIVOT_FIELD }, // POINTER_PIVOT_FIELD - { nullptr, nullptr, SAL_RESID_POINTER_CHAIN }, // POINTER_CHAIN - { nullptr, nullptr, SAL_RESID_POINTER_CHAIN_NOTALLOWED }, // POINTER_CHAIN_NOTALLOWED - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_N }, // POINTER_AUTOSCROLL_N - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_S }, // POINTER_AUTOSCROLL_S - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_W }, // POINTER_AUTOSCROLL_W - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_E }, // POINTER_AUTOSCROLL_E - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NW }, // POINTER_AUTOSCROLL_NW - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NE }, // POINTER_AUTOSCROLL_NE - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_SW }, // POINTER_AUTOSCROLL_SW - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_SE }, // POINTER_AUTOSCROLL_SE - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NS }, // POINTER_AUTOSCROLL_NS - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_WE }, // POINTER_AUTOSCROLL_WE - { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NSWE }, // POINTER_AUTOSCROLL_NSWE - { nullptr, nullptr, SAL_RESID_POINTER_TEXT_VERTICAL }, // POINTER_TEXT_VERTICAL - { nullptr, nullptr, SAL_RESID_POINTER_PIVOT_DELETE }, // POINTER_PIVOT_DELETE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_NULL }, // POINTER_NULL + ImplPtrData{ nullptr, IDC_WAIT, 0 }, // POINTER_WAIT + ImplPtrData{ nullptr, IDC_IBEAM, 0 }, // POINTER_TEXT + ImplPtrData{ nullptr, IDC_HELP, 0 }, // POINTER_HELP + ImplPtrData{ nullptr, IDC_CROSS, 0 }, // POINTER_CROSS + ImplPtrData{ nullptr, IDC_SIZEALL, 0 }, // POINTER_MOVE + ImplPtrData{ nullptr, IDC_SIZENS, 0 }, // POINTER_NSIZE + ImplPtrData{ nullptr, IDC_SIZENS, 0 }, // POINTER_SSIZE + ImplPtrData{ nullptr, IDC_SIZEWE, 0 }, // POINTER_WSIZE + ImplPtrData{ nullptr, IDC_SIZEWE, 0 }, // POINTER_ESIZE + ImplPtrData{ nullptr, IDC_SIZENWSE, 0 }, // POINTER_NWSIZE + ImplPtrData{ nullptr, IDC_SIZENESW, 0 }, // POINTER_NESIZE + ImplPtrData{ nullptr, IDC_SIZENESW, 0 }, // POINTER_SWSIZE + ImplPtrData{ nullptr, IDC_SIZENWSE, 0 }, // POINTER_SESIZE + ImplPtrData{ nullptr, IDC_SIZENS, 0 }, // POINTER_WINDOW_NSIZE + ImplPtrData{ nullptr, IDC_SIZENS, 0 }, // POINTER_WINDOW_SSIZE + ImplPtrData{ nullptr, IDC_SIZEWE, 0 }, // POINTER_WINDOW_WSIZE + ImplPtrData{ nullptr, IDC_SIZEWE, 0 }, // POINTER_WINDOW_ESIZE + ImplPtrData{ nullptr, IDC_SIZENWSE, 0 }, // POINTER_WINDOW_NWSIZE + ImplPtrData{ nullptr, IDC_SIZENESW, 0 }, // POINTER_WINDOW_NESIZE + ImplPtrData{ nullptr, IDC_SIZENESW, 0 }, // POINTER_WINDOW_SWSIZE + ImplPtrData{ nullptr, IDC_SIZENWSE, 0 }, // POINTER_WINDOW_SESIZE + ImplPtrData{ nullptr, IDC_SIZEWE, 0 }, // POINTER_HSPLIT + ImplPtrData{ nullptr, IDC_SIZENS, 0 }, // POINTER_VSPLIT + ImplPtrData{ nullptr, IDC_SIZEWE, 0 }, // POINTER_HSIZEBAR + ImplPtrData{ nullptr, IDC_SIZENS, 0 }, // POINTER_VSIZEBAR + ImplPtrData{ nullptr, IDC_HAND, 0 }, // POINTER_HAND + ImplPtrData{ nullptr, IDC_HAND, 0 }, // POINTER_REFHAND + ImplPtrData{ nullptr, IDC_PEN, 0 }, // POINTER_PEN + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MAGNIFY }, // POINTER_MAGNIFY + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_FILL }, // POINTER_FILL + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_ROTATE }, // POINTER_ROTATE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_HSHEAR }, // POINTER_HSHEAR + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_VSHEAR }, // POINTER_VSHEAR + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MIRROR }, // POINTER_MIRROR + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_CROOK }, // POINTER_CROOK + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_CROP }, // POINTER_CROP + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEPOINT }, // POINTER_MOVEPOINT + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEBEZIERWEIGHT }, // POINTER_MOVEBEZIERWEIGHT + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEDATA }, // POINTER_MOVEDATA + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_COPYDATA }, // POINTER_COPYDATA + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_LINKDATA }, // POINTER_LINKDATA + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEDATALINK }, // POINTER_MOVEDATALINK + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_COPYDATALINK }, // POINTER_COPYDATALINK + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEFILE }, // POINTER_MOVEFILE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_COPYFILE }, // POINTER_COPYFILE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_LINKFILE }, // POINTER_LINKFILE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEFILELINK }, // POINTER_MOVEFILELINK + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_COPYFILELINK }, // POINTER_COPYFILELINK + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEFILES }, // POINTER_MOVEFILES + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_COPYFILES }, // POINTER_COPYFILES + ImplPtrData{ nullptr, IDC_NO, 0 }, // POINTER_NOTALLOWED + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_LINE }, // POINTER_DRAW_LINE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_RECT }, // POINTER_DRAW_RECT + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_POLYGON }, // POINTER_DRAW_POLYGON + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_BEZIER }, // POINTER_DRAW_BEZIER + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_ARC }, // POINTER_DRAW_ARC + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_PIE }, // POINTER_DRAW_PIE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_CIRCLECUT }, // POINTER_DRAW_CIRCLECUT + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_ELLIPSE }, // POINTER_DRAW_ELLIPSE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_FREEHAND }, // POINTER_DRAW_FREEHAND + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_CONNECT }, // POINTER_DRAW_CONNECT + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_TEXT }, // POINTER_DRAW_TEXT + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_CAPTION }, // POINTER_DRAW_CAPTION + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_CHART }, // POINTER_CHART + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DETECTIVE }, // POINTER_DETECTIVE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_PIVOT_COL }, // POINTER_PIVOT_COL + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_PIVOT_ROW }, // POINTER_PIVOT_ROW + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_PIVOT_FIELD }, // POINTER_PIVOT_FIELD + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_CHAIN }, // POINTER_CHAIN + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_CHAIN_NOTALLOWED }, // POINTER_CHAIN_NOTALLOWED + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_N }, // POINTER_AUTOSCROLL_N + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_S }, // POINTER_AUTOSCROLL_S + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_W }, // POINTER_AUTOSCROLL_W + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_E }, // POINTER_AUTOSCROLL_E + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NW }, // POINTER_AUTOSCROLL_NW + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NE }, // POINTER_AUTOSCROLL_NE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_SW }, // POINTER_AUTOSCROLL_SW + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_SE }, // POINTER_AUTOSCROLL_SE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NS }, // POINTER_AUTOSCROLL_NS + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_WE }, // POINTER_AUTOSCROLL_WE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NSWE }, // POINTER_AUTOSCROLL_NSWE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TEXT_VERTICAL }, // POINTER_TEXT_VERTICAL + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_PIVOT_DELETE }, // POINTER_PIVOT_DELETE // #i32329# - { nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_S }, // POINTER_TAB_SELECT_S - { nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_E }, // POINTER_TAB_SELECT_E - { nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_SE }, // POINTER_TAB_SELECT_SE - { nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_W }, // POINTER_TAB_SELECT_W - { nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_SW }, // POINTER_TAB_SELECT_SW + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_S }, // POINTER_TAB_SELECT_S + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_E }, // POINTER_TAB_SELECT_E + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_SE }, // POINTER_TAB_SELECT_SE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_W }, // POINTER_TAB_SELECT_W + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_SW }, // POINTER_TAB_SELECT_SW - { nullptr, nullptr, SAL_RESID_POINTER_HIDEWHITESPACE }, // POINTER_HIDEWHITESPACE - { nullptr, nullptr, SAL_RESID_POINTER_SHOWWHITESPACE }, // POINTER_UNHIDEWHITESPACE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_HIDEWHITESPACE }, // POINTER_HIDEWHITESPACE + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_SHOWWHITESPACE }, // POINTER_UNHIDEWHITESPACE - { nullptr, nullptr, SAL_RESID_POINTER_FATCROSS } // POINTER_FATCROSS + ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_FATCROSS } // POINTER_FATCROSS }; // Mousepointer loaded ? |